diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2022-08-26 01:30:08 +0300 |
---|---|---|
committer | Thibault Saunier <tsaunier@igalia.com> | 2022-08-30 01:33:22 +0300 |
commit | 31a53bba8ae22d4be44861c868fb663fd46a69a3 (patch) | |
tree | 480e63405d0f1fc51ad147eb795879cc7bac644b | |
parent | 25465fd9f3c65ecc3ce089d56a0c746fcd6a839c (diff) |
Generate plugins documentation using hotdoc
Which will automatically be integrated in gstreamer documentation
88 files changed, 6966 insertions, 5 deletions
diff --git a/audio/audiofx/Cargo.toml b/audio/audiofx/Cargo.toml index 9c4a067a7..e90a6774f 100644 --- a/audio/audiofx/Cargo.toml +++ b/audio/audiofx/Cargo.toml @@ -38,6 +38,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/audio/audiofx/src/ebur128level/imp.rs b/audio/audiofx/src/ebur128level/imp.rs index 71c3811da..7c889c546 100644 --- a/audio/audiofx/src/ebur128level/imp.rs +++ b/audio/audiofx/src/ebur128level/imp.rs @@ -33,7 +33,7 @@ static CAT: Lazy<gst::DebugCategory> = Lazy::new(|| { }); #[glib::flags(name = "EbuR128LevelMode")] -enum Mode { +pub(crate) enum Mode { #[flags_value(name = "Calculate momentary loudness (400ms)", nick = "momentary")] MOMENTARY = 0b00000001, #[flags_value(name = "Calculate short-term loudness (3s)", nick = "short-term")] diff --git a/audio/audiofx/src/ebur128level/mod.rs b/audio/audiofx/src/ebur128level/mod.rs index 722789ba6..3908d21ce 100644 --- a/audio/audiofx/src/ebur128level/mod.rs +++ b/audio/audiofx/src/ebur128level/mod.rs @@ -16,6 +16,9 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + imp::Mode::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "ebur128level", diff --git a/audio/audiofx/src/lib.rs b/audio/audiofx/src/lib.rs index ecf90b51a..345317b12 100644 --- a/audio/audiofx/src/lib.rs +++ b/audio/audiofx/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rsaudiofx: + * + * Since: plugins-rs-0.1 + */ use gst::glib; mod audioecho; diff --git a/audio/claxon/Cargo.toml b/audio/claxon/Cargo.toml index 9748cceb1..1163f7a78 100644 --- a/audio/claxon/Cargo.toml +++ b/audio/claxon/Cargo.toml @@ -30,6 +30,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/audio/claxon/src/lib.rs b/audio/claxon/src/lib.rs index dff703877..6483a8719 100644 --- a/audio/claxon/src/lib.rs +++ b/audio/claxon/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-claxon: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod claxondec; diff --git a/audio/csound/Cargo.toml b/audio/csound/Cargo.toml index 10c9d8fe9..7269f332a 100644 --- a/audio/csound/Cargo.toml +++ b/audio/csound/Cargo.toml @@ -34,6 +34,7 @@ gst-plugin-version-helper = { path = "../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/audio/csound/src/lib.rs b/audio/csound/src/lib.rs index c156b88c8..f38b09a55 100644 --- a/audio/csound/src/lib.rs +++ b/audio/csound/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-csound: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod filter; diff --git a/audio/lewton/Cargo.toml b/audio/lewton/Cargo.toml index 6c988fd52..6d31e3b47 100644 --- a/audio/lewton/Cargo.toml +++ b/audio/lewton/Cargo.toml @@ -30,6 +30,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/audio/lewton/src/lib.rs b/audio/lewton/src/lib.rs index 6e49a70bd..7338be3ce 100644 --- a/audio/lewton/src/lib.rs +++ b/audio/lewton/src/lib.rs @@ -11,6 +11,11 @@ use gst::glib; +/** + * plugin-lewton: + * + * Since: plugins-rs-0.6.0 + */ mod lewtondec; fn plugin_init(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { diff --git a/audio/spotify/Cargo.toml b/audio/spotify/Cargo.toml index 5e6b9c4b7..0f796c873 100644 --- a/audio/spotify/Cargo.toml +++ b/audio/spotify/Cargo.toml @@ -28,6 +28,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/audio/spotify/src/lib.rs b/audio/spotify/src/lib.rs index 72771b28e..6bd716277 100644 --- a/audio/spotify/src/lib.rs +++ b/audio/spotify/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-spotify: + * + * Since: plugins-rs-0.8.0 + */ use gst::glib; mod spotifyaudiosrc; diff --git a/cargo_wrapper.py b/cargo_wrapper.py index 75f6fe43b..87834b924 100644 --- a/cargo_wrapper.py +++ b/cargo_wrapper.py @@ -23,6 +23,7 @@ PARSER.add_argument('libdir', type=P) PARSER.add_argument('--version', default=None) PARSER.add_argument('--exts', nargs="+", default=[]) PARSER.add_argument('--depfile') +PARSER.add_argument('--disable-doc', action="store_true", default=False) def generate_depfile_for(libfile): @@ -76,6 +77,8 @@ if __name__ == "__main__": cargo_cmd = ['cargo', 'cbuild'] if opts.target == 'release': cargo_cmd.append('--release') + if not opts.disable_doc: + cargo_cmd += ['--features', "doc"] elif opts.command == 'test': # cargo test cargo_cmd = ['cargo', 'ctest', '--no-fail-fast', '--color=always'] diff --git a/docs/meson.build b/docs/meson.build new file mode 100644 index 000000000..6d710715c --- /dev/null +++ b/docs/meson.build @@ -0,0 +1,111 @@ +build_hotdoc = false + +if meson.is_cross_build() + if get_option('doc').enabled() + error('Documentation enabled but building the doc while cross building is not supported yet.') + endif + + message('Documentation not built as building it while cross building is not supported yet.') + subdir_done() +endif + +if static_build + if get_option('doc').enabled() + error('Documentation enabled but not supported when building statically.') + endif + + message('Building statically, can\'t build the documentation') + subdir_done() +endif + +required_hotdoc_extensions = ['gst-extension'] +if gst_dep.type_name() == 'internal' + gst_proj = subproject('gstreamer') + plugins_cache_generator = gst_proj.get_variable('plugins_cache_generator') +else + plugins_cache_generator = find_program(join_paths(gst_dep.get_variable('libexecdir'), 'gstreamer-1.0' , 'gst-plugins-doc-cache-generator'), + required: false) + if not plugins_cache_generator.found() + plugins_cache_generator = find_program('gst-plugins-doc-cache-generator', required: false) + endif +endif +libs_doc = [] +plugins_cache = join_paths(meson.current_source_dir(), 'plugins', 'gst_plugins_cache.json') +if plugins.length() == 0 + message('All base plugins have been disabled') +elif plugins_cache_generator.found() + plugins_paths = [] + foreach plugin: plugins + plugins_paths += [plugin.full_path()] + endforeach + # We do not let gstreamer update our cache + _plugins_doc_dep = custom_target('rs-plugins-doc-cache', + command: [plugins_cache_generator, plugins_cache, '@OUTPUT@', plugins_paths], + input: plugins, + output: 'gst_plugins_cache.json', + build_always_stale: true, + ) +else + warning('GStreamer plugin inspector for documentation not found, can\'t update the cache') +endif + +hotdoc_p = find_program('hotdoc', required: get_option('doc')) +if not hotdoc_p.found() + message('Hotdoc not found, not building the documentation') + subdir_done() +endif + +hotdoc_req = '>= 0.11.0' +hotdoc_version = run_command(hotdoc_p, '--version', check: false).stdout() +if not hotdoc_version.version_compare(hotdoc_req) + if get_option('doc').enabled() + error('Hotdoc version @0@ not found, got @1@'.format(hotdoc_req, hotdoc_version)) + else + message('Hotdoc version @0@ not found, got @1@'.format(hotdoc_req, hotdoc_version)) + subdir_done() + endif +endif + +hotdoc = import('hotdoc') +foreach extension: required_hotdoc_extensions + if not hotdoc.has_extensions(extension) + if get_option('doc').enabled() + error('Documentation enabled but @0@ missing'.format(extension)) + endif + + message('@0@ extension not found, not building documentation'.format(extension)) + subdir_done() + endif +endforeach + +build_hotdoc = true +plugins_doc = [] +sitemap = 'all_index.md\n' + +list_plugin_res = run_command(python3, '-c', +''' +import sys +import json + +with open("@0@") as f: + print(':'.join(json.load(f).keys()), end='') +'''.format(plugins_cache), + check: true) +foreach plugin_name: list_plugin_res.stdout().split(':') + plugins_doc += [hotdoc.generate_doc(plugin_name, + project_version: '1.0', + sitemap: 'plugins/sitemap.txt', + index: 'plugins/index.md', + gst_index: 'plugins/index.md', + gst_smart_index: true, + gst_c_sources: [ + '../*/*/*/*.rs', + '../*/*/*/*/*.rs', + ], + dependencies: [gst_dep], + gst_order_generated_subpages: true, + gst_cache_file: plugins_cache, + gst_plugin_name: plugin_name, + )] + sitemap += ' @0@-doc.json\n'.format(plugin_name) +endforeach diff --git a/docs/plugins/all_index.md b/docs/plugins/all_index.md new file mode 100644 index 000000000..f9f41b01d --- /dev/null +++ b/docs/plugins/all_index.md @@ -0,0 +1,5 @@ +--- +short-description: Plugins from gst-plugins-rs +... + +# Plugins diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json new file mode 100644 index 000000000..d34056aa5 --- /dev/null +++ b/docs/plugins/gst_plugins_cache.json @@ -0,0 +1,6580 @@ +{ + "aws": { + "description": "Amazon Web Services plugin", + "elements": { + "awss3hlssink": { + "author": "Daily. Co", + "description": "Streams HLS data to S3", + "hierarchy": [ + "S3HlsSink", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Generic", + "long-name": "S3 HLS Sink", + "pad-templates": { + "audio": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "video": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + } + }, + "properties": { + "access-key": { + "blurb": "AWS Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "acl": { + "blurb": "Canned ACL to use for uploading to S3", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "private", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "bucket": { + "blurb": "The bucket of the file to write", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "endpoint-uri": { + "blurb": "The S3 endpoint URI to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "hlssink": { + "blurb": "The underlying HLS sink being used", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GstElement", + "writable": false + }, + "key-prefix": { + "blurb": "The key prefix for segment and playlist files", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "region": { + "blurb": "The AWS region for the S3 bucket (e.g. eu-west-2).", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "us-west-2", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "request-timeout": { + "blurb": "Timeout for request to S3 service (in ms)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15000", + "max": "18446744073709551615", + "min": "1", + "mutable": "null", + "readable": true, + "type": "guint64", + "writable": true + }, + "retry-attempts": { + "blurb": "Number of times AWS SDK attempts a request before abandoning the request", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5", + "max": "10", + "min": "1", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "secret-access-key": { + "blurb": "AWS Secret Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "session-token": { + "blurb": "AWS temporary session token from STS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + }, + "awss3sink": { + "author": "Marcin Kolny <mkolny@amazon.com>", + "description": "Writes an object to Amazon S3", + "hierarchy": [ + "AwsS3Sink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstURIHandler" + ], + "klass": "Source/Network", + "long-name": "Amazon S3 sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "access-key": { + "blurb": "AWS Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "bucket": { + "blurb": "The bucket of the file to write", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "complete-upload-request-timeout": { + "blurb": "Timeout for the complete multipart upload request (in ms, set to -1 for infinity) (Deprecated. Use request-timeout.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "complete-upload-retry-duration": { + "blurb": "How long we should retry complete multipart upload requests before giving up (in ms, set to -1 for infinity) (Deprecated. Use retry-attempts.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "75000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "endpoint-uri": { + "blurb": "The S3 endpoint URI to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "key": { + "blurb": "The key of the file to write", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "metadata": { + "blurb": "A map of metadata to store with the object in S3; field values need to be convertible to strings.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GstStructure", + "writable": true + }, + "on-error": { + "blurb": "Do nothing, abort or complete a multipart upload request on error", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "nothing (2)", + "mutable": "ready", + "readable": true, + "type": "GstS3SinkOnError", + "writable": true + }, + "part-size": { + "blurb": "A size (in bytes) of an individual part used for multipart upload.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5242880", + "max": "5368709120", + "min": "5242880", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "region": { + "blurb": "An AWS region (e.g. eu-west-2).", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "us-west-2", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "request-timeout": { + "blurb": "Timeout for general S3 requests (in ms, set to -1 for infinity)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "retry-attempts": { + "blurb": "Number of times AWS SDK attempts a request before abandoning the request", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5", + "max": "10", + "min": "1", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "retry-duration": { + "blurb": "How long we should retry general S3 requests before giving up (in ms, set to -1 for infinity) (Deprecated. Use retry-attempts.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "75000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "secret-access-key": { + "blurb": "AWS Secret Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "session-token": { + "blurb": "AWS temporary Session Token from STS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "upload-part-request-timeout": { + "blurb": "Timeout for a single upload part request (in ms, set to -1 for infinity) (Deprecated. Use request-timeout.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "upload-part-retry-duration": { + "blurb": "How long we should retry upload part requests before giving up (in ms, set to -1 for infinity) (Deprecated. Use retry-attempts.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "75000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "uri": { + "blurb": "The S3 object URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + }, + "awss3src": { + "author": "Arun Raghavan <arun@arunraghavan.net>", + "description": "Reads an object from Amazon S3", + "hierarchy": [ + "AwsS3Src", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstURIHandler" + ], + "klass": "Source/Network", + "long-name": "Amazon S3 source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "access-key": { + "blurb": "AWS Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "endpoint-uri": { + "blurb": "The S3 endpoint URI to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "request-timeout": { + "blurb": "Timeout for each S3 request (in ms, set to -1 for infinity)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "retry-attempts": { + "blurb": "Number of times AWS SDK attempts a request before abandoning the request", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5", + "max": "10", + "min": "1", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "retry-duration": { + "blurb": "How long we should retry S3 requests before giving up (in ms, set to -1 for infinity) (Deprecated. Use retry-attempts.)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "75000", + "max": "9223372036854775807", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint64", + "writable": true + }, + "secret-access-key": { + "blurb": "AWS Secret Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "session-token": { + "blurb": "AWS temporary Session Token from STS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "uri": { + "blurb": "The S3 object URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + }, + "awstranscribeparse": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Parses AWS transcripts into timed text buffers", + "hierarchy": [ + "RsAWSTranscribeParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Text/Subtitle", + "long-name": "AWS transcript parser", + "pad-templates": { + "sink": { + "caps": "application/x-json:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "none" + }, + "awstranscriber": { + "author": "Jordan Petridis <jordan@centricular.com>, Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Speech to Text filter, using AWS transcribe", + "hierarchy": [ + "RsAwsTranscriber", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Audio/Text/Filter", + "long-name": "Transcriber", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: S16LE\n rate: [ 8000, 48000 ]\n channels: 1\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "access-key": { + "blurb": "AWS Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "language-code": { + "blurb": "The Language of the Stream, see <https://docs.aws.amazon.com/transcribe/latest/dg/how-streaming-transcription.html> for an up to date list of allowed languages", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "en-US", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "latency": { + "blurb": "Amount of milliseconds to allow AWS transcribe", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "8000", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "lateness": { + "blurb": "Amount of milliseconds to introduce as lateness", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "results-stability": { + "blurb": "Defines how fast results should stabilize", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "low (2)", + "mutable": "ready", + "readable": true, + "type": "GstAwsTranscriberResultStability", + "writable": true + }, + "secret-access-key": { + "blurb": "AWS Secret Access Key", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "session-id": { + "blurb": "The ID of the transcription session, must be length 36", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "session-token": { + "blurb": "AWS temporary Session Token from STS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "vocabulary-filter-method": { + "blurb": "Defines how filtered words will be edited, has no effect when vocabulary-filter-name isn't set", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "mask (0)", + "mutable": "ready", + "readable": true, + "type": "GstAwsTranscriberVocabularyFilterMethod", + "writable": true + }, + "vocabulary-filter-name": { + "blurb": "The name of a custom filter vocabulary, see <https://docs.aws.amazon.com/transcribe/latest/help-panel/vocab-filter.html> for more information", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "vocabulary-name": { + "blurb": "The name of a custom vocabulary, see <https://docs.aws.amazon.com/transcribe/latest/dg/how-vocabulary.html> for more information", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstaws", + "license": "MPL", + "other-types": { + "GstAwsTranscriberResultStability": { + "kind": "enum", + "values": [ + { + "desc": "High: stabilize results as fast as possible", + "name": "high", + "value": "0" + }, + { + "desc": "Medium: balance between stability and accuracy", + "name": "medium", + "value": "1" + }, + { + "desc": "Low: relatively less stable partial transcription results with higher accuracy", + "name": "low", + "value": "2" + } + ] + }, + "GstAwsTranscriberVocabularyFilterMethod": { + "kind": "enum", + "values": [ + { + "desc": "Mask: replace words with ***", + "name": "mask", + "value": "0" + }, + { + "desc": "Remove: delete words", + "name": "remove", + "value": "1" + }, + { + "desc": "Tag: flag words without changing them", + "name": "tag", + "value": "2" + } + ] + }, + "GstS3SinkOnError": { + "kind": "enum", + "values": [ + { + "desc": "Abort: Abort multipart upload on error.", + "name": "abort", + "value": "0" + }, + { + "desc": "Complete: Complete multipart upload on error.", + "name": "complete", + "value": "1" + }, + { + "desc": "DoNothing: Do nothing on error.", + "name": "nothing", + "value": "2" + } + ] + } + }, + "package": "gst-plugin-aws", + "source": "gst-plugin-aws", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "cdg": { + "description": "CDG Plugin", + "elements": { + "cdgdec": { + "author": "Guillaume Desmottes <guillaume.desmottes@collabora.com>", + "description": "CDG decoder", + "hierarchy": [ + "CdgDec", + "GstVideoDecoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Decoder/Video", + "long-name": "CDG decoder", + "pad-templates": { + "sink": { + "caps": "video/x-cdg:\n parsed: true\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: RGBA\n width: 300\n height: 216\n framerate: 0/1\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "cdgparse": { + "author": "Guillaume Desmottes <guillaume.desmottes@collabora.com>", + "description": "CDG parser", + "hierarchy": [ + "CdgParse", + "GstBaseParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Parser/Video", + "long-name": "CDG parser", + "pad-templates": { + "sink": { + "caps": "video/x-cdg:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-cdg:\n width: 300\n height: 216\n framerate: 0/1\n parsed: true\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + } + }, + "filename": "gstcdg", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-cdg", + "source": "gst-plugin-cdg", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "claxon": { + "description": "Claxon FLAC Decoder Plugin", + "elements": { + "claxondec": { + "author": "Ruben Gonzalez <rgonzalez@fluendo.com>", + "description": "Claxon FLAC decoder", + "hierarchy": [ + "ClaxonDec", + "GstAudioDecoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Decoder/Audio", + "long-name": "Claxon FLAC decoder", + "pad-templates": { + "sink": { + "caps": "audio/x-flac:\n framed: true\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: [ 1, 655349 ]\n channels: [ 1, 7 ]\n layout: interleaved\n format: { S8, S16LE, S24_32LE, S32LE }\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "marginal" + } + }, + "filename": "gstclaxon", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-claxon", + "source": "gst-plugin-claxon", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "csound": { + "description": "An Audio filter plugin based on Csound", + "elements": { + "csoundfilter": { + "author": "Natanael Mojica <neithanmo@gmail.com>", + "description": "Implement an audio filter/effects using Csound", + "hierarchy": [ + "CsoundFilter", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Audio", + "long-name": "Audio filter", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n rate: [ 1, 2147483647 ]\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F64LE\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: [ 1, 2147483647 ]\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F64LE\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "csd-text": { + "blurb": "The content of a csd file passed as a String.\n Use either location or csd-text but not both at the same time, if so and error would be triggered", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "location": { + "blurb": "Location of the csd file to be used by csound.\n Use either location or CSD-text but not both at the same time, if so and error would be triggered", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "loop": { + "blurb": "loop over the score (can be changed in PLAYING or PAUSED state)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + }, + "score-offset": { + "blurb": "Score offset in seconds to start the performance", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1.79769e+308", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstcsound", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-csound", + "source": "gst-plugin-csound", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "fallbackswitch": { + "description": "Fallback Switcher Plugin", + "elements": { + "fallbacksrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Live source with uridecodebin3 or custom source, and fallback image stream", + "hierarchy": [ + "FallbackSrc", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Generic/Source", + "long-name": "Fallback Source", + "pad-templates": { + "audio": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + }, + "video": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "buffer-duration": { + "blurb": "Buffer duration when buffering streams (-1 default value)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "18446744073709551615", + "max": "9223372036854775806", + "min": "-1", + "mutable": "ready", + "readable": true, + "type": "gint64", + "writable": true + }, + "enable-audio": { + "blurb": "Enable the audio stream, this will output silence if there's no audio in the configured URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "enable-video": { + "blurb": "Enable the video stream, this will output black or the fallback video if there's no video in the configured URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "fallback-audio-caps": { + "blurb": "Raw audio caps for fallback stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "ANY", + "mutable": "ready", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "fallback-uri": { + "blurb": "Fallback URI to use for video in case the main stream doesn't work", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "fallback-video-caps": { + "blurb": "Raw video caps for fallback stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "ANY", + "mutable": "ready", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "immediate-fallback": { + "blurb": "Forward the fallback streams immediately at startup, when the primary streams are slow to start up and immediate output is required", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "manual-unblock": { + "blurb": "When enabled, the application must call the unblock signal, except for live streams", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "min-latency": { + "blurb": "When the main source has a higher latency than the fallback source this allows to configure a minimum latency that would be configured if initially the fallback is enabled", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "restart-on-eos": { + "blurb": "Restart source on EOS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "restart-timeout": { + "blurb": "Timeout for restarting an active source", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "retry-timeout": { + "blurb": "Timeout for stopping after repeated failure", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "60000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "source": { + "blurb": "Source to use instead of the URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GstElement", + "writable": true + }, + "statistics": { + "blurb": "Various statistics", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "application/x-fallbacksrc-stats, num-retry=(guint64)0, last-retry-reason=(GstFallbackSourceRetryReason)none, buffering-percent=(int)100;", + "mutable": "null", + "readable": true, + "type": "GstStructure", + "writable": false + }, + "status": { + "blurb": "Current source status", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "stopped (0)", + "mutable": "null", + "readable": true, + "type": "GstFallbackSourceStatus", + "writable": false + }, + "timeout": { + "blurb": "Timeout for switching to the fallback URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "uri": { + "blurb": "URI to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none", + "signals": { + "unblock": { + "action": true, + "args": [], + "return-type": "void", + "when": "last" + }, + "update-uri": { + "args": [ + { + "name": "arg0", + "type": "gchararray" + } + ], + "return-type": "gchararray", + "when": "last" + } + } + }, + "fallbackswitch": { + "author": "Jan Schmidt <jan@centricular.com>", + "description": "Priority-based automatic input selector element", + "hierarchy": [ + "FallbackSwitch", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Generic", + "long-name": "Priority-based input selector", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request", + "type": "FallbackSwitchSinkPad" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "active-pad": { + "blurb": "Currently active pad", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "playing", + "readable": true, + "type": "GstPad", + "writable": true + }, + "auto-switch": { + "blurb": "Automatically switch pads (If true, use the priority pad property, otherwise manual selection via the active-pad property)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "immediate-fallback": { + "blurb": "Forward lower-priority streams immediately at startup, when the stream with priority 0 is slow to start up and immediate output is required", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "latency": { + "blurb": "Additional latency in live mode to allow upstream to take longer to produce buffers for the current position (in nanoseconds)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "min-upstream-latency": { + "blurb": "When sources with a higher latency are expected to be plugged in dynamically after the fallbackswitch 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. (nanoseconds)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "timeout": { + "blurb": "Timeout on an input before switching to a lower priority input.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstfallbackswitch", + "license": "MPL", + "other-types": { + "FallbackSwitchSinkPad": { + "hierarchy": [ + "FallbackSwitchSinkPad", + "GstPad", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "kind": "object", + "properties": { + "is-healthy": { + "blurb": "Whether this stream is healthy", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": false + }, + "priority": { + "blurb": "Selection priority for this stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + } + } + }, + "GstFallbackSourceStatus": { + "kind": "enum", + "values": [ + { + "desc": "Stopped", + "name": "stopped", + "value": "0" + }, + { + "desc": "Buffering", + "name": "buffering", + "value": "1" + }, + { + "desc": "Retrying", + "name": "retrying", + "value": "2" + }, + { + "desc": "Running", + "name": "running", + "value": "3" + } + ] + } + }, + "package": "gst-plugin-fallbackswitch", + "source": "gst-plugin-fallbackswitch", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "ffv1": { + "description": "FFV1 Decoder Plugin", + "elements": { + "ffv1dec": { + "author": "Arun Raghavan <arun@asymptotic.io>", + "description": "Decode FFV1 video streams", + "hierarchy": [ + "Ffv1Dec", + "GstVideoDecoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Decoder/Video", + "long-name": "FFV1 Decoder", + "pad-templates": { + "sink": { + "caps": "video/x-ffv:\n ffvversion: 1\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { GRAY8, GRAY16_LE, GRAY16_BE, Y444, Y444_10LE, Y444_10BE, A444_10LE, A444_10BE, Y444_12LE, Y444_12BE, Y444_16LE, Y444_16BE, A420, Y42B, I422_10LE, I422_10BE, A422_10LE, A422_10BE, I422_12LE, I422_12BE, I420, I420_10LE, I420_10BE, I420_12LE, I420_12BE, GBRA, GBR, GBR_10LE, GBR_10BE, GBRA_10LE, GBRA_10BE, GBR_12LE, GBR_12BE, GBRA_12LE, GBRA_12BE, Y41B, YUV9 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary + 1" + } + }, + "filename": "gstffv1", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-ffv1", + "source": "gst-plugin-ffv1", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "fmp4": { + "description": "Fragmented MP4 Plugin", + "elements": { + "cmafmux": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "CMAF fragmented MP4 muxer", + "hierarchy": [ + "GstCMAFMux", + "GstFMP4Mux", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Muxer", + "long-name": "CMAFMux", + "pad-templates": { + "sink": { + "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\nvideo/x-h265:\n stream-format: { (string)hvc1, (string)hev1 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\naudio/mpeg:\n mpegversion: 4\n stream-format: raw\n channels: [ 1, 65535 ]\n rate: [ 1, 2147483647 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/quicktime:\n variant: cmaf\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "dashmp4mux": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "DASH fragmented MP4 muxer", + "hierarchy": [ + "GstDASHMP4Mux", + "GstFMP4Mux", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Muxer", + "long-name": "DASHMP4Mux", + "pad-templates": { + "sink": { + "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\nvideo/x-h265:\n stream-format: { (string)hvc1, (string)hev1 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\naudio/mpeg:\n mpegversion: 4\n stream-format: raw\n channels: [ 1, 65535 ]\n rate: [ 1, 2147483647 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/quicktime:\n variant: iso-fragmented\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "isofmp4mux": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "ISO fragmented MP4 muxer", + "hierarchy": [ + "GstISOFMP4Mux", + "GstFMP4Mux", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Muxer", + "long-name": "ISOFMP4Mux", + "pad-templates": { + "sink_%%u": { + "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\nvideo/x-h265:\n stream-format: { (string)hvc1, (string)hev1 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\naudio/mpeg:\n mpegversion: 4\n stream-format: raw\n channels: [ 1, 65535 ]\n rate: [ 1, 2147483647 ]\n", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "video/quicktime:\n variant: iso-fragmented\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "onviffmp4mux": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "ONVIF fragmented MP4 muxer", + "hierarchy": [ + "GstONVIFFMP4Mux", + "GstFMP4Mux", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Muxer", + "long-name": "ONVIFFMP4Mux", + "pad-templates": { + "sink_%%u": { + "caps": "video/x-h264:\n stream-format: { (string)avc, (string)avc3 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\nvideo/x-h265:\n stream-format: { (string)hvc1, (string)hev1 }\n alignment: au\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\nimage/jpeg:\n width: [ 1, 65535 ]\n height: [ 1, 65535 ]\naudio/mpeg:\n mpegversion: 4\n stream-format: raw\n channels: [ 1, 65535 ]\n rate: [ 1, 2147483647 ]\naudio/x-alaw:\n channels: [ 1, 2 ]\n rate: [ 1, 2147483647 ]\naudio/x-mulaw:\n channels: [ 1, 2 ]\n rate: [ 1, 2147483647 ]\naudio/x-adpcm:\n layout: g726\n channels: 1\n rate: 8000\n bitrate: { (int)16000, (int)24000, (int)32000, (int)40000 }\napplication/x-onvif-metadata:\n parsed: true\n", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "video/quicktime:\n variant: iso-fragmented\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + } + }, + "filename": "gstfmp4", + "license": "MPL", + "other-types": { + "GstFMP4Mux": { + "hierarchy": [ + "GstFMP4Mux", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "kind": "object", + "properties": { + "fragment-duration": { + "blurb": "Duration for each FMP4 fragment", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10000000000", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "header-update-mode": { + "blurb": "Mode for updating the header at the end of the stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "none (0)", + "mutable": "ready", + "readable": true, + "type": "GstFMP4MuxHeaderUpdateMode", + "writable": true + }, + "interleave-bytes": { + "blurb": "Interleave between streams in bytes", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "interleave-time": { + "blurb": "Interleave between streams in nanoseconds", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "250000000", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "write-mehd": { + "blurb": "Write movie extends header box with the duration at the end of the stream (needs a header-update-mode enabled)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "write-mfra": { + "blurb": "Write fragment random access box at the end of the stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + } + } + }, + "GstFMP4MuxHeaderUpdateMode": { + "kind": "enum", + "values": [ + { + "desc": "None", + "name": "none", + "value": "0" + }, + { + "desc": "Rewrite", + "name": "rewrite", + "value": "1" + }, + { + "desc": "Update", + "name": "update", + "value": "2" + } + ] + } + }, + "package": "gst-plugin-fmp4", + "source": "gst-plugin-fmp4", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "gif": { + "description": "GStreamer GIF plugin", + "elements": { + "gifenc": { + "author": "Markus Ebner <info@ebner-markus.de>", + "description": "GIF encoder", + "hierarchy": [ + "GifEnc", + "GstVideoEncoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstPreset" + ], + "klass": "Encoder/Video", + "long-name": "GIF encoder", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { RGB, RGBA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 1/1, 2147483599/21474836 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "image/gif:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "repeat": { + "blurb": "Repeat (-1 to loop forever, 0 .. n finite repetitions)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "65535", + "min": "-1", + "mutable": "ready", + "readable": true, + "type": "gint", + "writable": true + }, + "speed": { + "blurb": "Speed (1 .. 30; higher value yields faster encoding)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10", + "max": "30", + "min": "1", + "mutable": "ready", + "readable": true, + "type": "gint", + "writable": true + } + }, + "rank": "primary" + } + }, + "filename": "gstgif", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-gif", + "source": "gst-plugin-gif", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "gtk4": { + "description": "GTK 4 Sink element and Paintable widget", + "elements": { + "gtk4paintablesink": { + "author": "Bilal Elmoussaoui <bil.elmoussaoui@gmail.com>, Jordan Petridis <jordan@centricular.com>, Sebastian Dröge <sebastian@centricular.com>", + "description": "A GTK 4 Paintable sink", + "hierarchy": [ + "Gtk4PaintableSink", + "GstVideoSink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink/Video", + "long-name": "GTK 4 Paintable Sink", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { BGRA, ARGB, RGBA, ABGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(memory:SystemMemory, meta:GstVideoOverlayComposition):\n format: { BGRA, ARGB, RGBA, ABGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n\nvideo/x-raw(meta:GstVideoOverlayComposition):\n format: { BGRA, ARGB, RGBA, ABGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "paintable": { + "blurb": "The Paintable the sink renders to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GdkPaintable", + "writable": false + } + }, + "rank": "none" + } + }, + "filename": "gstgtk4", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-gtk4", + "source": "gst-plugin-gtk4", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "hlssink3": { + "description": "HLS (HTTP Live Streaming) Plugin", + "elements": { + "hlssink3": { + "author": "Alessandro Decina <alessandro.d@gmail.com>, Sebastian Dröge <sebastian@centricular.com>, Rafael Caricio <rafael@caricio.com>", + "description": "HTTP Live Streaming sink", + "hierarchy": [ + "GstHlsSink3", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Sink/Muxer", + "long-name": "HTTP Live Streaming sink", + "pad-templates": { + "audio": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "video": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + } + }, + "properties": { + "location": { + "blurb": "Location of the file to write", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "segment%%05d.ts", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "max-files": { + "blurb": "Maximum number of files to keep on disk. Once the maximum is reached, old files start to be deleted to make room for new ones.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "playlist-length": { + "blurb": "Length of HLS playlist. To allow players to conform to section 6.3.3 of the HLS specification, this should be at least 3. If set to 0, the playlist will be infinite.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "playlist-location": { + "blurb": "Location of the playlist to write.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "playlist.m3u8", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "playlist-root": { + "blurb": "Base path for the segments in the playlist file.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "playlist-type": { + "blurb": "The type of the playlist to use. When VOD type is set, the playlist will be live until the pipeline ends execution.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "Unspecified (0)", + "mutable": "null", + "readable": true, + "type": "GstHlsSink3PlaylistType", + "writable": true + }, + "send-keyframe-requests": { + "blurb": "Send keyframe requests to ensure correct fragmentation. If this is disabled then the input must have keyframes in regular intervals.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "target-duration": { + "blurb": "The target duration in seconds of a segment/file. (0 - disabled, useful for management of segment duration by the streaming server)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none", + "signals": { + "delete-fragment": { + "args": [ + { + "name": "arg0", + "type": "gchararray" + } + ], + "return-type": "gboolean", + "when": "last" + }, + "get-fragment-stream": { + "args": [ + { + "name": "arg0", + "type": "gchararray" + } + ], + "return-type": "GOutputStream", + "when": "last" + }, + "get-playlist-stream": { + "args": [ + { + "name": "arg0", + "type": "gchararray" + } + ], + "return-type": "GOutputStream", + "when": "last" + } + } + } + }, + "filename": "gsthlssink3", + "license": "MPL", + "other-types": { + "GstHlsSink3PlaylistType": { + "kind": "enum", + "values": [ + { + "desc": "Unspecified: The tag `#EXT-X-PLAYLIST-TYPE` won't be present in the playlist during the pipeline processing.", + "name": "Unspecified", + "value": "0" + }, + { + "desc": "Event: No segments will be removed from the playlist. At the end of the processing, the tag `#EXT-X-ENDLIST` is added to the playlist. The tag `#EXT-X-PLAYLIST-TYPE:EVENT` will be present in the playlist.", + "name": "event", + "value": "1" + }, + { + "desc": "Vod: The playlist behaves like the `event` option (a live event), but at the end of the processing, the playlist will be set to `#EXT-X-PLAYLIST-TYPE:VOD`.", + "name": "vod", + "value": "2" + } + ] + } + }, + "package": "gst-plugin-hlssink3", + "source": "gst-plugin-hlssink3", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "hsv": { + "description": "HSV manipulation elements, written in Rust", + "elements": { + "hsvdetector": { + "author": "Julien Bardagi <julien.bardagi@gmail.com>", + "description": "Works within the HSV colorspace to mark positive pixels", + "hierarchy": [ + "HsvDetector", + "GstVideoFilter", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Converter/Video", + "long-name": "HSV detector", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { RGBx, xRGB, BGRx, xBGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { RGBA, ARGB, BGRA, ABGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "hue-ref": { + "blurb": "Hue reference in degrees", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "hue-var": { + "blurb": "Allowed hue variation from the reference hue angle, in degrees", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10", + "max": "180", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "saturation-ref": { + "blurb": "Reference saturation value", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "saturation-var": { + "blurb": "Allowed saturation variation from the reference value", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0.15", + "max": "1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "value-ref": { + "blurb": "Reference value value", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "value-var": { + "blurb": "Allowed value variation from the reference value", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0.3", + "max": "1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + } + }, + "rank": "none" + }, + "hsvfilter": { + "author": "Julien Bardagi <julien.bardagi@gmail.com>", + "description": "Works within the HSV colorspace to apply tranformations to incoming frames", + "hierarchy": [ + "HsvFilter", + "GstVideoFilter", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Converter/Video", + "long-name": "HSV filter", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { RGBx, xRGB, BGRx, xBGR, RGBA, ARGB, BGRA, ABGR, RGB, BGR }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "hue-shift": { + "blurb": "Hue shifting in degrees", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "saturation-mul": { + "blurb": "Saturation multiplier to apply to the saturation value (before offset)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "saturation-off": { + "blurb": "Saturation offset to add to the saturation value (after multiplier)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "value-mul": { + "blurb": "Value multiplier to apply to the value (before offset)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + }, + "value-off": { + "blurb": "Value offset to add to the value (after multiplier)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "3.40282e+38", + "min": "-3.40282e+38", + "mutable": "playing", + "readable": true, + "type": "gfloat", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gsthsv", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-hsv", + "source": "gst-plugin-hsv", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "lewton": { + "description": "lewton Vorbis Decoder Plugin", + "elements": { + "lewtondec": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "lewton Vorbis decoder", + "hierarchy": [ + "LewtonDec", + "GstAudioDecoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Decoder/Audio", + "long-name": "lewton Vorbis decoder", + "pad-templates": { + "sink": { + "caps": "audio/x-vorbis:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n format: F32LE\n rate: [ 1, 2147483647 ]\n channels: [ 1, 255 ]\n layout: interleaved\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "marginal" + } + }, + "filename": "gstlewton", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-lewton", + "source": "gst-plugin-lewton", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "raptorq": { + "description": "Rust Raptorq FEC Plugin", + "elements": { + "raptorqdec": { + "author": "Tomasz Andrzejak <andreiltd@gmail.com>", + "description": "Performs FEC using RaptorQ (RFC6681, RFC6682)", + "hierarchy": [ + "GstRaptorqDec", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "RTP RaptorQ FEC Decoding", + "long-name": "RTP RaptorQ FEC Decoder", + "pad-templates": { + "fec_%%u": { + "caps": "application/x-rtp:\nraptor-scheme-id: 6\n", + "direction": "sink", + "presence": "request" + }, + "sink": { + "caps": "application/x-rtp:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-rtp:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "media-packets-reset-threshold": { + "blurb": "This is the maximum allowed number of buffered packets, before we reset the decoder. It can only be triggered if we don't receive repair packets for too long, or packets have no valid timestamps, (0 - disable)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5000", + "max": "-2", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "repair-window-tolerance": { + "blurb": "The amount of time to add to repair-window reported by RaptorQ encoder (in ms)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "500", + "max": "-2", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "stats": { + "blurb": "Various statistics", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "application/x-rtp-raptorqdec-stats, received-packets=(guint64)0, lost-packets=(guint64)0, recovered-packets=(guint64)0, buffered-media-packets=(guint64)0, buffered-repair-packets=(guint64)0;", + "mutable": "null", + "readable": true, + "type": "GstStructure", + "writable": false + } + }, + "rank": "marginal" + }, + "raptorqenc": { + "author": "Tomasz Andrzejak <andreiltd@gmail.com>", + "description": "Performs FEC using RaptorQ (RFC6681, RFC6682)", + "hierarchy": [ + "GstRaptorqEnc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "RTP RaptorQ FEC Encoding", + "long-name": "RTP RaptorQ FEC Encoder", + "pad-templates": { + "fec_0": { + "caps": "application/x-rtp:\n clock-rate: [ 0, 2147483647 ]\n", + "direction": "src", + "presence": "always" + }, + "sink": { + "caps": "application/x-rtp:\n clock-rate: [ 0, 2147483647 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-rtp:\n clock-rate: [ 0, 2147483647 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "mtu": { + "blurb": "Maximum expected packet size", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1400", + "max": "2147483647", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "protected-packets": { + "blurb": "Number of packets to protect together", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "25", + "max": "-2", + "min": "1", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "pt": { + "blurb": "The payload type of FEC packets", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "97", + "max": "255", + "min": "96", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "repair-packets": { + "blurb": "Number of repair packets per block to send", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5", + "max": "-2", + "min": "1", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "repair-window": { + "blurb": "A time span in milliseconds in which repair packets are send", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "50", + "max": "-2", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "symbol-size": { + "blurb": "Size of RaptorQ data unit", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1408", + "max": "-2", + "min": "1", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "marginal" + } + }, + "filename": "gstraptorq", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-raptorq", + "source": "gst-plugin-raptorq", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rav1e": { + "description": "rav1e AV1 Encoder Plugin", + "elements": { + "rav1enc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "rav1e AV1 encoder", + "hierarchy": [ + "Rav1Enc", + "GstVideoEncoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstPreset" + ], + "klass": "Encoder/Video", + "long-name": "rav1e AV1 encoder", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { I420, Y42B, Y444, I420_10LE, I422_10LE, Y444_10LE, I420_12LE, I422_12LE, Y444_12LE, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-av1:\n stream-format: obu-stream\n alignment: tu\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "bitrate": { + "blurb": "Bitrate", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "2147483647", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "gint", + "writable": true + }, + "error-resilient": { + "blurb": "Error Resilient", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "low-latency": { + "blurb": "Low Latency", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "max-key-frame-interval": { + "blurb": "Max Key Frame Interval", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "240", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "min-key-frame-interval": { + "blurb": "Min Key Frame Interval", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "12", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "min-quantizer": { + "blurb": "Min Quantizer", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "255", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "quantizer": { + "blurb": "Quantizer", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "100", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "rdo-lookahead-frames": { + "blurb": "RDO Lookahead Frames", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-1", + "max": "2147483647", + "min": "-1", + "mutable": "ready", + "readable": true, + "type": "gint", + "writable": true + }, + "reservoir-frame-delay": { + "blurb": "Reservoir Frame Delay", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-2147483648", + "max": "2147483647", + "min": "-2147483648", + "mutable": "ready", + "readable": true, + "type": "gint", + "writable": true + }, + "speed-preset": { + "blurb": "Speed preset (10 fastest, 0 slowest)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "6", + "max": "10", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "switch-frame-interval": { + "blurb": "Switch Frame Interval", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "threads": { + "blurb": "Threads", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "tile-cols": { + "blurb": "Tile Cols", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "tile-rows": { + "blurb": "Tile Rows", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "tiles": { + "blurb": "Tiles", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "tune": { + "blurb": "Tune", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "psychovisual (1)", + "mutable": "ready", + "readable": true, + "type": "GstRav1eEncTune", + "writable": true + } + }, + "rank": "primary" + } + }, + "filename": "gstrav1e", + "license": "MIT/X11", + "other-types": { + "GstRav1eEncTune": { + "kind": "enum", + "values": [ + { + "desc": "Psnr", + "name": "psnr", + "value": "0" + }, + { + "desc": "Psychovisual", + "name": "psychovisual", + "value": "1" + } + ] + } + }, + "package": "gst-plugin-rav1e", + "source": "gst-plugin-rav1e", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "reqwest": { + "description": "Rust HTTP Plugin", + "elements": { + "reqwesthttpsrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Read stream from an HTTP/HTTPS location", + "hierarchy": [ + "ReqwestHttpSrc", + "GstPushSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstURIHandler" + ], + "klass": "Source/Network/HTTP", + "long-name": "HTTP Source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "compress": { + "blurb": "Allow compressed content encodings", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "cookies": { + "blurb": "NULL", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GStrv", + "writable": true + }, + "extra-headers": { + "blurb": "Extra headers to append to the HTTP request", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GstStructure", + "writable": true + }, + "iradio-mode": { + "blurb": "Enable internet radio mode (ask server to send shoutcast/icecast metadata interleaved with the actual stream data", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "is-live": { + "blurb": "Act like a live source", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "keep-alive": { + "blurb": "Use HTTP persistent connections", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "location": { + "blurb": "URL to read from", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "proxy": { + "blurb": "HTTP proxy server URI", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "proxy-id": { + "blurb": "HTTP proxy URI user id for authentication", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "proxy-pw": { + "blurb": "HTTP proxy URI user password for authentication", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "timeout": { + "blurb": "Value in seconds to timeout a blocking I/O (0 = No timeout).", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "15", + "max": "3600", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "user-agent": { + "blurb": "Value of the User-Agent HTTP request header field", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "GStreamer reqwesthttpsrc 0.9.0-1e55d9e1", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "user-id": { + "blurb": "HTTP location URI user id for authentication", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "user-pw": { + "blurb": "HTTP location URI user password for authentication", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "marginal" + } + }, + "filename": "gstreqwest", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-reqwest", + "source": "gst-plugin-reqwest", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsaudiofx": { + "description": "Rust AudioFx Plugin", + "elements": { + "audiornnoise": { + "author": "Philippe Normand <philn@igalia.com>", + "description": "Removes noise from an audio stream", + "hierarchy": [ + "AudioRNNoise", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Audio", + "long-name": "Audio denoise", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n rate: 48000\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F32LE\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: 48000\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F32LE\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "none" + }, + "ebur128level": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Measures different loudness metrics according to EBU R128", + "hierarchy": [ + "EbuR128Level", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Analyzer/Audio", + "long-name": "EBU R128 Loudness Level Measurement", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n rate: [ 1, 2822399 ]\n channels: [ 1, 63 ]\n layout: { (string)interleaved, (string)non-interleaved }\n format: { S16LE, S32LE, F32LE, F64LE }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: [ 1, 2822399 ]\n channels: [ 1, 63 ]\n layout: { (string)interleaved, (string)non-interleaved }\n format: { S16LE, S32LE, F32LE, F64LE }\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "interval": { + "blurb": "Interval in nanoseconds for posting messages", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "mode": { + "blurb": "Selection of metrics to calculate", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true-peak+sample-peak+loudness-range+global+short-term+momentary", + "mutable": "ready", + "readable": true, + "type": "EbuR128LevelMode", + "writable": true + }, + "post-messages": { + "blurb": "Whether to post messages on the bus for each interval", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + } + }, + "rank": "none", + "signals": { + "reset": { + "action": true, + "args": [], + "return-type": "void", + "when": "last" + } + } + }, + "hrtfrender": { + "author": "Tomasz Andrzejak <andreiltd@gmail.com>", + "description": "Renders spatial sounds to a given position", + "hierarchy": [ + "HrtfRender", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Audio", + "long-name": "Head-Related Transfer Function (HRTF) renderer", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n format: F32LE\n rate: [ 1, 2147483647 ]\n channels: [ 1, 64 ]\n layout: interleaved\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n format: F32LE\n rate: [ 1, 2147483647 ]\n channels: 2\n layout: interleaved\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "block-length": { + "blurb": "Block Length is the length of each slice", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "512", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "hrir-file": { + "blurb": "Head Transform Impulse Response file location to read from", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "hrir-raw": { + "blurb": "Head Transform Impulse Response raw bytes", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GBytes", + "writable": true + }, + "interpolation-steps": { + "blurb": "Interpolation Steps is the amount of slices to cut source to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "8", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "spatial-objects": { + "blurb": "Spatial object Metadata to apply on input channels", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "playing", + "readable": true, + "type": "GstValueArray", + "writable": true + } + }, + "rank": "none" + }, + "rsaudioecho": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Adds an echo or reverb effect to an audio stream", + "hierarchy": [ + "RsAudioEcho", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Audio", + "long-name": "Audio echo", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n rate: [ 1, 2147483647 ]\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: { F32LE, F64LE }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: [ 1, 2147483647 ]\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: { F32LE, F64LE }\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "delay": { + "blurb": "Delay of the echo in nanoseconds", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "500000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "feedback": { + "blurb": "Amount of feedback", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + }, + "intensity": { + "blurb": "Intensity of the echo", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0.5", + "max": "1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + }, + "max-delay": { + "blurb": "Maximum delay of the echo in nanoseconds (can't be changed in PLAYING or PAUSED state)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + }, + "rsaudioloudnorm": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Normalizes perceived loudness of an audio stream", + "hierarchy": [ + "RsAudioLoudNorm", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Audio", + "long-name": "Audio loudness normalizer", + "pad-templates": { + "sink": { + "caps": "audio/x-raw:\n rate: 192000\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F64LE\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "audio/x-raw:\n rate: 192000\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: F64LE\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "loudness-range-target": { + "blurb": "Loudness range target in LU", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "7", + "max": "20", + "min": "1", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + }, + "loudness-target": { + "blurb": "Loudness target in LUFS", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-24", + "max": "-5", + "min": "-70", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + }, + "max-true-peak": { + "blurb": "Maximum True Peak in dbTP", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-2", + "max": "0", + "min": "-9", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + }, + "offset": { + "blurb": "Offset Gain in LU", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "99", + "min": "-99", + "mutable": "ready", + "readable": true, + "type": "gdouble", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstrsaudiofx", + "license": "MPL", + "other-types": { + "EbuR128LevelMode": { + "kind": "flags", + "values": [ + { + "desc": "Calculate momentary loudness (400ms)", + "name": "momentary", + "value": "0x00000001" + }, + { + "desc": "Calculate short-term loudness (3s)", + "name": "short-term", + "value": "0x00000002" + }, + { + "desc": "Calculate relative threshold and global loudness", + "name": "global", + "value": "0x00000004" + }, + { + "desc": "Calculate loudness range", + "name": "loudness-range", + "value": "0x00000008" + }, + { + "desc": "Calculate sample peak", + "name": "sample-peak", + "value": "0x00000010" + }, + { + "desc": "Calculate true peak", + "name": "true-peak", + "value": "0x00000020" + } + ] + } + }, + "package": "gst-plugin-audiofx", + "source": "gst-plugin-audiofx", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsclosedcaption": { + "description": "Rust Closed Caption Plugin", + "elements": { + "ccdetect": { + "author": "Matthew Waters <matthew@centricular.com>", + "description": "Detect if valid closed captions are present in a stream", + "hierarchy": [ + "CCDetect", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Video/ClosedCaption/Detect", + "long-name": "Closed Caption Detect", + "pad-templates": { + "sink": { + "caps": "closedcaption/x-cea-708:\n format: { cc_data, cdp }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "closedcaption/x-cea-708:\n format: { cc_data, cdp }\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "cc608": { + "blurb": "Whether CEA608 captions (CC1/CC3) have been detected", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": false + }, + "cc708": { + "blurb": "Whether CEA708 captions (cc_data) have been detected", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": false + }, + "window": { + "blurb": "Window of time (in ns) to determine if captions exist in the stream", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + }, + "cea608overlay": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Renders CEA 608 closed caption meta over raw video frames", + "hierarchy": [ + "RsCea608Overlay", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Video/Overlay/Subtitle", + "long-name": "Cea 608 overlay", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { ABGR64_LE, BGRA64_LE, AYUV64, ARGB64_LE, ARGB64, RGBA64_LE, ABGR64_BE, BGRA64_BE, ARGB64_BE, RGBA64_BE, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, AV12, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, NV12_10BE_8L128, Y444, RGBP, GBR, BGRP, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_8L128, NV12_64Z32, NV12_4L4, NV12_32L32, NV12_16L32S, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { ABGR64_LE, BGRA64_LE, AYUV64, ARGB64_LE, ARGB64, RGBA64_LE, ABGR64_BE, BGRA64_BE, ARGB64_BE, RGBA64_BE, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, AV12, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, NV12_10BE_8L128, Y444, RGBP, GBR, BGRP, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_8L128, NV12_64Z32, NV12_4L4, NV12_32L32, NV12_16L32S, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "black-background": { + "blurb": "Whether a black background should be drawn behind text", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + }, + "field": { + "blurb": "The field to render the caption for when available, (-1=automatic)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-1", + "max": "1", + "min": "-1", + "mutable": "playing", + "readable": true, + "type": "gint", + "writable": true + }, + "timeout": { + "blurb": "Duration after which to erase overlay when no cc data has arrived for the selected field", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "18446744073709551615", + "max": "18446744073709551615", + "min": "16000000000", + "mutable": "playing", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "primary" + }, + "cea608tojson": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Converts CEA-608 Closed Captions to JSON", + "hierarchy": [ + "Cea608ToJson", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "CEA-608 to TT", + "pad-templates": { + "sink": { + "caps": "closedcaption/x-cea-608:\n format: raw\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-json:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "unbuffered": { + "blurb": "Whether captions should be output at display time, instead of waiting to determine durations. Useful with live input", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + } + }, + "rank": "none" + }, + "cea608tott": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Converts CEA-608 Closed Captions to SRT/VTT timed text", + "hierarchy": [ + "Cea608ToTt", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "CEA-608 to TT", + "pad-templates": { + "sink": { + "caps": "closedcaption/x-cea-608:\n format: raw\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-subtitle-vtt:\napplication/x-subtitle:\ntext/x-raw:\n format: utf8\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "none" + }, + "jsontovtt": { + "author": "Jan Schmidt <jan@centricular.com>", + "description": "Converts JSON to WebVTT", + "hierarchy": [ + "JsonToVtt", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "JSON to WebVTT", + "pad-templates": { + "sink": { + "caps": "application/x-json:\n format: cea608\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-subtitle-vtt-fragmented:\n inline-headers: true\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "none" + }, + "mccenc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Encodes MCC Closed Caption Files", + "hierarchy": [ + "RsMccEnc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Encoder/ClosedCaption", + "long-name": "Mcc Encoder", + "pad-templates": { + "sink": { + "caps": "closedcaption/x-cea-708:\n format: cdp\n framerate: { (fraction)24/1, (fraction)25/1, (fraction)30000/1001, (fraction)30/1, (fraction)50/1, (fraction)60000/1001, (fraction)60/1 }\nclosedcaption/x-cea-608:\n format: s334-1a\n framerate: { (fraction)24/1, (fraction)25/1, (fraction)30000/1001, (fraction)30/1, (fraction)50/1, (fraction)60000/1001, (fraction)60/1 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-mcc:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "creation-date": { + "blurb": "Creation date for the output file", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GDateTime", + "writable": true + }, + "uuid": { + "blurb": "UUID for the output file", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + }, + "mccparse": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Parses MCC Closed Caption Files", + "hierarchy": [ + "RsMccParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Parser/ClosedCaption", + "long-name": "Mcc Parse", + "pad-templates": { + "sink": { + "caps": "application/x-mcc:\n version: { (int)1, (int)2 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "closedcaption/x-cea-708:\n format: cdp\n framerate: [ 1/2147483647, 2147483647/1 ]\nclosedcaption/x-cea-608:\n format: s334-1a\n framerate: [ 1/2147483647, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "sccenc": { + "author": "Sebastian Dröge <sebastian@centricular.com>, Jordan Petridis <jordan@centricular.com>", + "description": "Encodes SCC Closed Caption Files", + "hierarchy": [ + "RsSccEnc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Encoder/ClosedCaption", + "long-name": "Scc Encoder", + "pad-templates": { + "sink": { + "caps": "closedcaption/x-cea-608:\n format: raw\n framerate: { (fraction)30000/1001, (fraction)30/1 }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-scc:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "output-padding": { + "blurb": "Whether the encoder should output padding captions. The element will never add padding, but will encode padding buffers it receives if this property is set to true.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + } + }, + "rank": "primary" + }, + "sccparse": { + "author": "Sebastian Dröge <sebastian@centricular.com>, Jordan Petridis <jordan@centricular.com>", + "description": "Parses SCC Closed Caption Files", + "hierarchy": [ + "RsSccParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Parser/ClosedCaption", + "long-name": "Scc Parse", + "pad-templates": { + "sink": { + "caps": "application/x-scc:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "closedcaption/x-cea-608:\n format: raw\n framerate: { (fraction)30000/1001, (fraction)30/1 }\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "transcriberbin": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Transcribes audio and adds it as closed captions", + "hierarchy": [ + "RsTranscriberBin", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Audio / Video / Text", + "long-name": "TranscriberBin", + "pad-templates": { + "sink_audio": { + "caps": "audio/x-raw:\n", + "direction": "sink", + "presence": "always" + }, + "sink_video": { + "caps": "video/x-raw:\n", + "direction": "sink", + "presence": "always" + }, + "src_audio": { + "caps": "audio/x-raw:\n", + "direction": "src", + "presence": "always" + }, + "src_video": { + "caps": "video/x-raw:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "accumulate-time": { + "blurb": "Cut-off time for textwrap accumulation, in milliseconds (0=do not accumulate). Set this to a non-default value if you plan to switch to pop-on mode", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "caption-source": { + "blurb": "Caption source to use. If \"Transcription\" or \"Inband\" is selected, the caption meta of the other source will be dropped by transcriberbin", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "both (0)", + "mutable": "playing", + "readable": true, + "type": "GstTranscriberBinCaptionSource", + "writable": true + }, + "cc-caps": { + "blurb": "The expected format of the closed captions", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "closedcaption/x-cea-608, format=(string)raw", + "mutable": "ready", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "latency": { + "blurb": "Amount of milliseconds to allow the transcriber", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "4000", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "mode": { + "blurb": "Which closed caption mode to operate in", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "roll-up2 (2)", + "mutable": "playing", + "readable": true, + "type": "GstTtToCea608Mode", + "writable": true + }, + "passthrough": { + "blurb": "Whether transcription should occur", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + }, + "transcriber": { + "blurb": "The transcriber element to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GstElement", + "writable": true + } + }, + "rank": "none" + }, + "tttocea608": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Converts timed text to CEA-608 Closed Captions", + "hierarchy": [ + "TtToCea608", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "TT to CEA-608", + "pad-templates": { + "sink": { + "caps": "text/x-raw:\napplication/x-json:\n format: cea608\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "closedcaption/x-cea-608:\n format: raw\n framerate: [ 1/2147483647, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "mode": { + "blurb": "Which mode to operate in", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "roll-up2 (2)", + "mutable": "playing", + "readable": true, + "type": "GstTtToCea608Mode", + "writable": true + }, + "origin-column": { + "blurb": "Origin column", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "31", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + }, + "origin-row": { + "blurb": "Origin row, (-1=automatic)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-1", + "max": "14", + "min": "-1", + "mutable": "playing", + "readable": true, + "type": "gint", + "writable": true + }, + "roll-up-timeout": { + "blurb": "Duration after which to erase display memory in roll-up mode", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "18446744073709551615", + "max": "18446744073709551615", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + }, + "tttojson": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Encodes Timed Text to JSON", + "hierarchy": [ + "RsTtToJson", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Encoder/ClosedCaption", + "long-name": "Timed text to JSON encoder", + "pad-templates": { + "sink": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-json:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "mode": { + "blurb": "Which mode to operate in", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "roll-up2 (2)", + "mutable": "ready", + "readable": true, + "type": "GstTtToCea608Mode", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstrsclosedcaption", + "license": "MPL", + "other-types": { + "GstTranscriberBinCaptionSource": { + "kind": "enum", + "values": [ + { + "desc": "Both", + "name": "both", + "value": "0" + }, + { + "desc": "Transcription", + "name": "transcription", + "value": "1" + }, + { + "desc": "Inband", + "name": "inband", + "value": "2" + } + ] + }, + "GstTtToCea608Mode": { + "kind": "enum", + "values": [ + { + "desc": "PopOn", + "name": "pop-on", + "value": "0" + }, + { + "desc": "PaintOn", + "name": "paint-on", + "value": "1" + }, + { + "desc": "RollUp2", + "name": "roll-up2", + "value": "2" + }, + { + "desc": "RollUp3", + "name": "roll-up3", + "value": "3" + }, + { + "desc": "RollUp4", + "name": "roll-up4", + "value": "4" + } + ] + } + }, + "package": "gst-plugin-closedcaption", + "source": "gst-plugin-closedcaption", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsdav1d": { + "description": "Dav1d Plugin", + "elements": { + "rsdav1ddec": { + "author": "Philippe Normand <philn@igalia.com>", + "description": "Decode AV1 video streams with dav1d", + "hierarchy": [ + "RsDav1dDec", + "GstVideoDecoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Decoder/Video", + "long-name": "Dav1d AV1 Decoder", + "pad-templates": { + "sink": { + "caps": "video/x-av1:\n stream-format: obu-stream\n alignment: { (string)frame, (string)tu }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { GRAY8, GRAY16_LE, I420, Y42B, Y444, I420_10LE, I422_10LE, Y444_10LE, I420_12LE, I422_12LE, Y444_12LE }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "max-frame-delay": { + "blurb": "Maximum delay in frames for the decoder (set to 1 for low latency, 0 to be equal to the number of logical cores. -1 to choose between these two based on pipeline liveness)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "18446744073709551615", + "max": "4294967295", + "min": "-1", + "mutable": "ready", + "readable": true, + "type": "gint64", + "writable": true + }, + "n-threads": { + "blurb": "Number of threads to use while decoding (set to 0 to use number of logical cores)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "primary + 1" + } + }, + "filename": "gstrsdav1d", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-dav1d", + "source": "gst-plugin-dav1d", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsfile": { + "description": "Rust File Plugin", + "elements": { + "rsfilesink": { + "author": "François Laignel <fengalin@free.fr>, Luis de Bethencourt <luisbg@osg.samsung.com>", + "description": "Write stream to a file", + "hierarchy": [ + "RsFileSink", + "GstBaseSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstURIHandler" + ], + "klass": "Sink/File", + "long-name": "File Sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "location": { + "blurb": "Location of the file to write", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + }, + "rsfilesrc": { + "author": "François Laignel <fengalin@free.fr>, Sebastian Dröge <sebastian@centricular.com>", + "description": "Read stream from a file", + "hierarchy": [ + "RsFileSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstURIHandler" + ], + "klass": "Source/File", + "long-name": "File Source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "location": { + "blurb": "Location of the file to read from", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstrsfile", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-file", + "source": "gst-plugin-file", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsflv": { + "description": "Rust FLV Plugin", + "elements": { + "rsflvdemux": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Demuxes FLV Streams", + "hierarchy": [ + "RsFlvDemux", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Demuxer", + "long-name": "FLV Demuxer", + "pad-templates": { + "audio": { + "caps": "audio/mpeg:\n mpegversion: 1\naudio/x-raw:\n rate: [ 1, 2147483647 ]\n channels: [ 1, 2147483647 ]\n layout: interleaved\n format: { U8, S16LE }\naudio/x-adpcm:\n layout: swf\naudio/x-nellymoser:\naudio/x-alaw:\naudio/x-mulaw:\naudio/mpeg:\n mpegversion: 4\n framed: true\n stream-format: raw\naudio/x-speex:\n", + "direction": "src", + "presence": "sometimes" + }, + "sink": { + "caps": "video/x-flv:\n", + "direction": "sink", + "presence": "always" + }, + "video": { + "caps": "video/x-flash-video:\n flvversion: 1\nvideo/x-flash-screen:\nvideo/x-vp6-flash:\nvideo/x-vp6-flash-alpha:\nvideo/x-flash-screen2:\nvideo/x-h264:\n stream-format: avc\nvideo/x-h263:\nvideo/mpeg:\n mpegversion: 4\n", + "direction": "src", + "presence": "sometimes" + } + }, + "rank": "none" + } + }, + "filename": "gstrsflv", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-flavors", + "source": "gst-plugin-flavors", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsjson": { + "description": "Rust JSON Plugin", + "elements": { + "jsongstenc": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Wraps buffers containing any valid top-level JSON structures into higher level JSON objects, and outputs those as ndjson", + "hierarchy": [ + "RsJsonGstEnc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Encoder/JSON", + "long-name": "GStreamer buffers to JSON", + "pad-templates": { + "sink": { + "caps": "application/x-json:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-json:\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "none" + }, + "jsongstparse": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Parses ndjson as output by jsongstenc", + "hierarchy": [ + "RsJsonGstParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Parser/JSON", + "long-name": "JSON GStreamer parser", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-json:\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + } + }, + "filename": "gstrsjson", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-json", + "source": "gst-plugin-json", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsonvif": { + "description": "Rust ONVIF Plugin", + "elements": { + "onvifaggregator": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "ONVIF metadata aggregator", + "hierarchy": [ + "GstOnvifAggregator", + "GstAggregator", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Aggregator", + "long-name": "ONVIF metadata aggregator", + "pad-templates": { + "media": { + "caps": "ANY", + "direction": "sink", + "presence": "always", + "type": "GstAggregatorPad" + }, + "meta": { + "caps": "application/x-onvif-metadata:\n parsed: true\n", + "direction": "sink", + "presence": "always", + "type": "GstAggregatorPad" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "onvifmetadataparse": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Parses ONVIF Timed XML Metadata", + "hierarchy": [ + "OnvifMetadataParse", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Metadata/Parser", + "long-name": "ONVIF Metadata Parser", + "pad-templates": { + "sink": { + "caps": "application/x-onvif-metadata:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-onvif-metadata:\n parsed: true\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "latency": { + "blurb": "Maximum latency to introduce for reordering metadata (max=auto: 6s if unparsed input, 0s if parsed input)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "18446744073709551615", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + }, + "onvifoverlay": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Renders ONVIF analytics meta over raw video frames", + "hierarchy": [ + "GstOnvifOverlay", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Video/Overlay", + "long-name": "ONVIF overlay", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { ABGR64_LE, BGRA64_LE, AYUV64, ARGB64_LE, ARGB64, RGBA64_LE, ABGR64_BE, BGRA64_BE, ARGB64_BE, RGBA64_BE, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, AV12, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, NV12_10BE_8L128, Y444, RGBP, GBR, BGRP, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_8L128, NV12_64Z32, NV12_4L4, NV12_32L32, NV12_16L32S, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { ABGR64_LE, BGRA64_LE, AYUV64, ARGB64_LE, ARGB64, RGBA64_LE, ABGR64_BE, BGRA64_BE, ARGB64_BE, RGBA64_BE, GBRA_12LE, GBRA_12BE, Y412_LE, Y412_BE, A444_10LE, GBRA_10LE, A444_10BE, GBRA_10BE, A422_10LE, A422_10BE, A420_10LE, A420_10BE, RGB10A2_LE, BGR10A2_LE, Y410, GBRA, ABGR, VUYA, BGRA, AYUV, ARGB, RGBA, A420, AV12, Y444_16LE, Y444_16BE, v216, P016_LE, P016_BE, Y444_12LE, GBR_12LE, Y444_12BE, GBR_12BE, I422_12LE, I422_12BE, Y212_LE, Y212_BE, I420_12LE, I420_12BE, P012_LE, P012_BE, Y444_10LE, GBR_10LE, Y444_10BE, GBR_10BE, r210, I422_10LE, I422_10BE, NV16_10LE32, Y210, v210, UYVP, I420_10LE, I420_10BE, P010_10LE, NV12_10LE32, NV12_10LE40, P010_10BE, NV12_10BE_8L128, Y444, RGBP, GBR, BGRP, NV24, xBGR, BGRx, xRGB, RGBx, BGR, IYU2, v308, RGB, Y42B, NV61, NV16, VYUY, UYVY, YVYU, YUY2, I420, YV12, NV21, NV12, NV12_8L128, NV12_64Z32, NV12_4L4, NV12_32L32, NV12_16L32S, Y41B, IYU1, YVU9, YUV9, RGB16, BGR16, RGB15, BGR15, RGB8P, GRAY16_LE, GRAY16_BE, GRAY10_LE32, GRAY8 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "font-desc": { + "blurb": "Pango font description of font to be used for rendering", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "monospace 12", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + }, + "rtponvifdepay": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "ONVIF metadata RTP depayloader", + "hierarchy": [ + "GstOnvifDepay", + "GstRTPBaseDepayload", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Depayloader/Network/RTP", + "long-name": "ONVIF metadata RTP depayloader", + "pad-templates": { + "sink": { + "caps": "application/x-rtp:\n media: application\n payload: [ 96, 127 ]\n clock-rate: 90000\n encoding-name: VND.ONVIF.METADATA\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-onvif-metadata:\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + }, + "rtponvifpay": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "ONVIF metadata RTP payloader", + "hierarchy": [ + "GstOnvifPay", + "GstRTPBasePayload", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Payloader/Network/RTP", + "long-name": "ONVIF metadata RTP payloader", + "pad-templates": { + "sink": { + "caps": "application/x-onvif-metadata:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-rtp:\n media: application\n payload: [ 96, 127 ]\n clock-rate: 90000\n encoding-name: VND.ONVIF.METADATA\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + } + }, + "filename": "gstrsonvif", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-onvif", + "source": "gst-plugin-onvif", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rspng": { + "description": "An PNG encoder/decoder written in pure Rust", + "elements": { + "rspngenc": { + "author": "Natanael Mojica <neithanmo@gmail>", + "description": "PNG encoder", + "hierarchy": [ + "PngEncoder", + "GstVideoEncoder", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstPreset" + ], + "klass": "Encoder/Video", + "long-name": "PNG encoder", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { GRAY8, GRAY16_BE, RGB, RGBA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "image/png:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "compression-level": { + "blurb": "Selects the compression algorithm to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "default (0)", + "mutable": "ready", + "readable": true, + "type": "GstRsPngCompressionLevel", + "writable": true + }, + "filter": { + "blurb": "Selects the filter type to applied", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "nofilter (0)", + "mutable": "ready", + "readable": true, + "type": "GstRsPngFilterType", + "writable": true + } + }, + "rank": "primary" + } + }, + "filename": "gstrspng", + "license": "MIT/X11", + "other-types": { + "GstRsPngCompressionLevel": { + "kind": "enum", + "values": [ + { + "desc": "Default: Use the default compression level.", + "name": "default", + "value": "0" + }, + { + "desc": "Fast: A fast compression algorithm.", + "name": "fast", + "value": "1" + }, + { + "desc": "Best: Uses the algorithm with the best results.", + "name": "best", + "value": "2" + }, + { + "desc": "Huffman: Huffman compression.", + "name": "huffman", + "value": "3" + }, + { + "desc": "Rle: Rle compression.", + "name": "rle", + "value": "4" + } + ] + }, + "GstRsPngFilterType": { + "kind": "enum", + "values": [ + { + "desc": "NoFilter: No filtering applied to the output.", + "name": "nofilter", + "value": "0" + }, + { + "desc": "Sub: filter applied to each pixel.", + "name": "sub", + "value": "1" + }, + { + "desc": "Up: Up filter similar to Sub.", + "name": "up", + "value": "2" + }, + { + "desc": "Avg: The Average filter uses the average of the two neighboring pixels.", + "name": "avg", + "value": "3" + }, + { + "desc": "Paeth: The Paeth filter computes a simple linear function of the three neighboring pixels.", + "name": "paeth", + "value": "4" + } + ] + } + }, + "package": "gst-plugin-rspng", + "source": "gst-plugin-rspng", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rsregex": { + "description": "Rust Regular Expression Plugin", + "elements": { + "regex": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Applies operations according to regular expressions", + "hierarchy": [ + "RsRegEx", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Text/Filter", + "long-name": "Regular Expression processor", + "pad-templates": { + "sink": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "commands": { + "blurb": "A set of commands to apply on input text", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "playing", + "readable": true, + "type": "GstValueArray", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstrsregex", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-regex", + "source": "gst-plugin-regex", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rstextwrap": { + "description": "Rust Text Wrap Plugin", + "elements": { + "textwrap": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Breaks text into fixed-size lines, with optional hyphenation", + "hierarchy": [ + "RsTextWrap", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Text/Filter", + "long-name": "Text Wrapper", + "pad-templates": { + "sink": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "text/x-raw:\n format: utf8\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "accumulate-time": { + "blurb": "Cut-off time for input text accumulation (0=do not accumulate)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551614", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint64", + "writable": true + }, + "columns": { + "blurb": "Maximum number of columns for any given line", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "32", + "max": "-1", + "min": "1", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + }, + "dictionary": { + "blurb": "Path to a dictionary to load at runtime to perform hyphenation, see <https://docs.rs/crate/hyphenation/0.7.1> for more information", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "NULL", + "mutable": "playing", + "readable": true, + "type": "gchararray", + "writable": true + }, + "lines": { + "blurb": "Split input buffer into output buffers with max lines (0=do not split)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstrstextwrap", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-textwrap", + "source": "gst-plugin-textwrap", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rstracers": { + "description": "GStreamer tracers plugin", + "elements": {}, + "filename": "gstrstracers", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-tracers", + "source": "gst-plugin-tracers", + "tracers": { + "buffer-lateness": {}, + "pipeline-snapshot": {}, + "queue-levels": {} + }, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "rswebp": { + "description": "WebP Plugin", + "elements": { + "webpdec-rs": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Decodes potentially animated WebP images", + "hierarchy": [ + "RsWebPDec", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Codec/Decoder/Video", + "long-name": "WebP decoder", + "pad-templates": { + "sink": { + "caps": "image/webp:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: RGBA\n", + "direction": "src", + "presence": "always" + } + }, + "rank": "primary" + } + }, + "filename": "gstrswebp", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-webp", + "source": "gst-plugin-webp", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "sodium": { + "description": "libsodium-based file encryption and decryption", + "elements": { + "sodiumdecrypter": { + "author": "Jordan Petridis <jordan@centricular.com>", + "description": "libsodium-based file decrypter", + "hierarchy": [ + "RsSodiumDecryptor", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Decrypter", + "pad-templates": { + "sink": { + "caps": "application/x-sodium-encrypted:\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "receiver-key": { + "blurb": "The private key of the Receiver", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GBytes", + "writable": true + }, + "sender-key": { + "blurb": "The public key of the Sender", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": false, + "type": "GBytes", + "writable": true + } + }, + "rank": "none" + }, + "sodiumencrypter": { + "author": "Jordan Petridis <jordan@centricular.com>", + "description": "libsodium-based file encrypter", + "hierarchy": [ + "RsSodiumEncrypter", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Encrypter", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "application/x-sodium-encrypted:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "block-size": { + "blurb": "The block-size of the chunks", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "32768", + "max": "-1", + "min": "1024", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "receiver-key": { + "blurb": "The public key of the Receiver", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GBytes", + "writable": true + }, + "sender-key": { + "blurb": "The private key of the Sender", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": false, + "type": "GBytes", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstsodium", + "license": "MIT/X11", + "other-types": {}, + "package": "gst-plugin-sodium", + "source": "gst-plugin-sodium", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "spotify": { + "description": "Spotify GStreamer Plugin", + "elements": { + "spotifyaudiosrc": { + "author": "Guillaume Desmottes <guillaume@desmottes.be>", + "description": "Spotify source", + "hierarchy": [ + "GstSpotifyAudioSrc", + "GstBaseSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/Audio", + "long-name": "Spotify source", + "pad-templates": { + "src": { + "caps": "application/ogg:\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "cache-credentials": { + "blurb": "Directory where to cache Spotify credentials", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "cache-files": { + "blurb": "Directory where to cache downloaded files from Spotify", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "cache-max-size": { + "blurb": "The max allowed size of the cache, in bytes, or 0 to disable the cache limit", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint64", + "writable": true + }, + "password": { + "blurb": "Spotify device password from https://www.spotify.com/us/account/set-device-password/", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "track": { + "blurb": "Spotify track URI, in the form 'spotify:track:$SPOTIFY_ID'", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + }, + "username": { + "blurb": "Spotify device username from https://www.spotify.com/us/account/set-device-password/", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "ready", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + } + }, + "filename": "gstspotify", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-spotify", + "source": "gst-plugin-spotify", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "textahead": { + "description": "GStreamer Plugin displaying upcoming text buffers ahead", + "elements": { + "textahead": { + "author": "Guillaume Desmottes <guillaume@desmottes.be>", + "description": "Display upcoming text buffers ahead", + "hierarchy": [ + "GstTextAhead", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Text/Filter", + "long-name": "Text Ahead", + "pad-templates": { + "sink": { + "caps": "text/x-raw:\n format: { utf8, pango-markup }\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "text/x-raw:\n format: pango-markup\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "ahead-attributes": { + "blurb": "Pango span attributes to set on the ahead text", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "size=\"smaller\"", + "mutable": "playing", + "readable": true, + "type": "gchararray", + "writable": true + }, + "buffer-start-segment": { + "blurb": "Generate a buffer at the start of the segment with ahead text", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + }, + "current-attributes": { + "blurb": "Pango span attributes to set on the text from the current buffer", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "size=\"larger\"", + "mutable": "playing", + "readable": true, + "type": "gchararray", + "writable": true + }, + "n-ahead": { + "blurb": "The number of ahead text buffers to display along with the current one", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1", + "max": "-1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + }, + "separator": { + "blurb": "Text inserted between each text buffers", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "\n", + "mutable": "playing", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "primary" + } + }, + "filename": "gsttextahead", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-textahead", + "source": "gst-plugin-textahead", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "threadshare": { + "description": "Threadshare Plugin", + "elements": { + "ts-appsrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Thread-sharing app source", + "hierarchy": [ + "RsTsAppSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/Generic", + "long-name": "Thread-sharing app source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "caps": { + "blurb": "Caps to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "do-timestamp": { + "blurb": "Timestamp buffers with the current running time on arrival", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "max-buffers": { + "blurb": "Maximum number of buffers to queue up", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10", + "max": "-1", + "min": "1", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none", + "signals": { + "end-of-stream": { + "action": true, + "args": [], + "return-type": "gboolean", + "when": "last" + }, + "push-buffer": { + "action": true, + "args": [ + { + "name": "arg0", + "type": "GstBuffer" + } + ], + "return-type": "gboolean", + "when": "last" + } + } + }, + "ts-input-selector": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Simple input selector element", + "hierarchy": [ + "RsTsInputSelector", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Thread-sharing input selector", + "pad-templates": { + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "active-pad": { + "blurb": "Currently active pad", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "playing", + "readable": true, + "type": "GstPad", + "writable": true + }, + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none" + }, + "ts-jitterbuffer": { + "author": "Mathieu Duponchelle <mathieu@centricular.com>", + "description": "Simple jitterbuffer", + "hierarchy": [ + "RsTsJitterBuffer", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Thread-sharing jitterbuffer", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "do-lost": { + "blurb": "Send an event downstream when a packet is lost", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "latency": { + "blurb": "Amount of ms to buffer", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "200", + "max": "200", + "min": "18446744069414584320", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-dropout-time": { + "blurb": "The maximum time (milliseconds) of missing packets tolerated.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "60000", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-misorder-time": { + "blurb": "The maximum time (milliseconds) of misordered packets tolerated.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "2000", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "stats": { + "blurb": "Various statistics", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "application/x-rtp-jitterbuffer-stats, num-pushed=(guint64)0, num-lost=(guint64)0, num-late=(guint64)0;", + "mutable": "null", + "readable": true, + "type": "GstStructure", + "writable": false + } + }, + "rank": "none", + "signals": { + "clear-pt-map": { + "action": true, + "args": [], + "return-type": "void", + "when": "last" + } + } + }, + "ts-proxysink": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Thread-sharing proxy sink", + "hierarchy": [ + "RsTsProxySink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink/Generic", + "long-name": "Thread-sharing proxy sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "proxy-context": { + "blurb": "Context name of the proxy to share with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + }, + "ts-proxysrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Thread-sharing proxy source", + "hierarchy": [ + "RsTsProxySrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/Generic", + "long-name": "Thread-sharing proxy source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-buffers": { + "blurb": "Maximum number of buffers to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "200", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Maximum number of bytes to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1048576", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Maximum number of nanoseconds to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint64", + "writable": true + }, + "proxy-context": { + "blurb": "Context name of the proxy to share with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + } + }, + "rank": "none" + }, + "ts-queue": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Simple data queue", + "hierarchy": [ + "RsTsQueue", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Thread-sharing queue", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-buffers": { + "blurb": "Maximum number of buffers to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "200", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-bytes": { + "blurb": "Maximum number of bytes to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1048576", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "max-size-time": { + "blurb": "Maximum number of nanoseconds to queue (0=unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1000000000", + "max": "18446744073709551614", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint64", + "writable": true + } + }, + "rank": "none" + }, + "ts-tcpclientsrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>, LEE Dongjun <redongjun@gmail.com>", + "description": "Receives data over the network via TCP", + "hierarchy": [ + "RsTsTcpClientSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/Network", + "long-name": "Thread-sharing TCP client source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "blocksize": { + "blurb": "Size in bytes to read per buffer (-1 = default)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "4096", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "caps": { + "blurb": "Caps to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "host": { + "blurb": "The host IP address to receive packets from", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "127.0.0.1", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "port": { + "blurb": "Port to receive packets from", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "4953", + "max": "65535", + "min": "0", + "mutable": "null", + "readable": true, + "type": "gint", + "writable": true + } + }, + "rank": "none" + }, + "ts-udpsink": { + "author": "Mathieu <mathieu@centricular.com>", + "description": "Thread-sharing UDP sink", + "hierarchy": [ + "RsTsUdpSink", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Sink/Network", + "long-name": "Thread-sharing UDP sink", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + } + }, + "properties": { + "auto-multicast": { + "blurb": "Automatically join/leave the multicast groups, FALSE means user has to do it himself", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "bind-address": { + "blurb": "Address to bind the socket to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0.0.0.0", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "bind-address-v6": { + "blurb": "Address to bind the V6 socket to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "::", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "bind-port": { + "blurb": "Port to bind the socket to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "65535", + "min": "0", + "mutable": "null", + "readable": true, + "type": "gint", + "writable": true + }, + "bind-port-v6": { + "blurb": "Port to bind the V6 socket to", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "65535", + "min": "0", + "mutable": "null", + "readable": true, + "type": "gint", + "writable": true + }, + "clients": { + "blurb": "A comma separated list of host:port pairs with destinations", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "127.0.0.1:5004", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "loop": { + "blurb": "Set the multicast loop parameter.", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "qos-dscp": { + "blurb": "Quality of Service, differentiated services code point (-1 default)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "-1", + "max": "63", + "min": "-1", + "mutable": "null", + "readable": true, + "type": "gint", + "writable": true + }, + "socket": { + "blurb": "Socket to use for UDP transmission. (None == allocate)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": true + }, + "socket-v6": { + "blurb": "IPV6 Socket to use for UDP transmission. (None == allocate)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": true + }, + "sync": { + "blurb": "Sync on the clock", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "ttl": { + "blurb": "Used for setting the unicast TTL parameter", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "64", + "max": "255", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "ttl-mc": { + "blurb": "Used for setting the multicast TTL parameter", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1", + "max": "255", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "used-socket": { + "blurb": "Socket currently in use for UDP transmission. (None = no socket)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": false + }, + "used-socket-v6": { + "blurb": "V6 Socket currently in use for UDP transmission. (None = no socket)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": false + } + }, + "rank": "none", + "signals": { + "add": { + "action": true, + "args": [ + { + "name": "arg0", + "type": "gchararray" + }, + { + "name": "arg1", + "type": "gint" + } + ], + "return-type": "void", + "when": "last" + }, + "clear": { + "action": true, + "args": [], + "return-type": "void", + "when": "last" + }, + "remove": { + "action": true, + "args": [ + { + "name": "arg0", + "type": "gchararray" + }, + { + "name": "arg1", + "type": "gint" + } + ], + "return-type": "void", + "when": "last" + } + } + }, + "ts-udpsrc": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Receives data over the network via UDP", + "hierarchy": [ + "RsTsUdpSrc", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Source/Network", + "long-name": "Thread-sharing UDP source", + "pad-templates": { + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "address": { + "blurb": "Address/multicast group to listen on", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0.0.0.0", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "caps": { + "blurb": "Caps to use", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GstCaps", + "writable": true + }, + "context": { + "blurb": "Context name to share threads with", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "", + "mutable": "null", + "readable": true, + "type": "gchararray", + "writable": true + }, + "context-wait": { + "blurb": "Throttle poll loop to run at most once every this many ms", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "1000", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "mtu": { + "blurb": "Maximum expected packet size. This directly defines the allocation size of the receive buffer pool", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1492", + "max": "2147483647", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": true + }, + "port": { + "blurb": "Port to listen on", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "5004", + "max": "65535", + "min": "0", + "mutable": "null", + "readable": true, + "type": "gint", + "writable": true + }, + "retrieve-sender-address": { + "blurb": "Whether to retrieve the sender address and add it to buffers as meta. Disabling this might result in minor performance improvements in certain scenarios", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "reuse": { + "blurb": "Allow reuse of the port", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "true", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": true + }, + "socket": { + "blurb": "Socket to use for UDP reception. (None == allocate)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": true + }, + "used-socket": { + "blurb": "Socket currently in use for UDP reception. (None = no socket)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "null", + "readable": true, + "type": "GSocket", + "writable": false + } + }, + "rank": "none" + } + }, + "filename": "gstthreadshare", + "license": "LGPL", + "other-types": {}, + "package": "gst-plugin-threadshare", + "source": "gst-plugin-threadshare", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "togglerecord": { + "description": "Toggle Record Plugin", + "elements": { + "togglerecord": { + "author": "Sebastian Dröge <sebastian@centricular.com>", + "description": "Valve that ensures multiple streams start/end at the same time", + "hierarchy": [ + "RsToggleRecord", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Generic", + "long-name": "Toggle Record", + "pad-templates": { + "sink": { + "caps": "ANY", + "direction": "sink", + "presence": "always" + }, + "sink_%%u": { + "caps": "ANY", + "direction": "sink", + "presence": "request" + }, + "src": { + "caps": "ANY", + "direction": "src", + "presence": "always" + }, + "src_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "is-live": { + "blurb": "Live mode: no \"gap eating\", forward incoming segment", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "ready", + "readable": true, + "type": "gboolean", + "writable": true + }, + "record": { + "blurb": "Enable/disable recording", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "playing", + "readable": true, + "type": "gboolean", + "writable": true + }, + "recording": { + "blurb": "Whether recording is currently taking place", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "false", + "mutable": "null", + "readable": true, + "type": "gboolean", + "writable": false + } + }, + "rank": "none" + } + }, + "filename": "gsttogglerecord", + "license": "MPL-2.0", + "other-types": {}, + "package": "gst-plugin-togglerecord", + "source": "gst-plugin-togglerecord", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "uriplaylistbin": { + "description": "Playlist Plugin", + "elements": { + "uriplaylistbin": { + "author": "Guillaume Desmottes <guillaume.desmottes@onestream.live>", + "description": "Sequentially play uri streams", + "hierarchy": [ + "GstUriPlaylistBin", + "GstBin", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "interfaces": [ + "GstChildProxy" + ], + "klass": "Generic/Source", + "long-name": "Playlist Source", + "pad-templates": { + "audio_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + }, + "text_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + }, + "video_%%u": { + "caps": "ANY", + "direction": "src", + "presence": "sometimes" + } + }, + "properties": { + "current-iteration": { + "blurb": "The index of the current playlist iteration, or 0 if the iterations property is 0 (unlimited playlist)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint", + "writable": false + }, + "current-uri-index": { + "blurb": "The index from the uris property of the current URI being played", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "18446744073709551615", + "min": "0", + "mutable": "null", + "readable": true, + "type": "guint64", + "writable": false + }, + "iterations": { + "blurb": "Number of time the playlist items should be played each (0 = unlimited)", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "1", + "max": "-1", + "min": "0", + "mutable": "ready", + "readable": true, + "type": "guint", + "writable": true + }, + "uris": { + "blurb": "URIs of the medias to play", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "mutable": "ready", + "readable": true, + "type": "GStrv", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gsturiplaylistbin", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-uriplaylistbin", + "source": "gst-plugin-uriplaylistbin", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + }, + "videofx": { + "description": "Video Effects Plugin", + "elements": { + "colordetect": { + "author": "Philippe Normand <philn@igalia.com>", + "description": "Detects the dominant color of a video", + "hierarchy": [ + "GstColorDetect", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Video", + "long-name": "Dominant color detection", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: { RGB, RGBA, ARGB, BGR, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { RGB, RGBA, ARGB, BGR, BGRA }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "max-colors": { + "blurb": "Actual colors count can be lower depending on the image", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "2", + "max": "255", + "min": "2", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + }, + "quality": { + "blurb": "A step in pixels to improve performance", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "10", + "max": "10", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none" + }, + "roundedcorners": { + "author": "Sanchayan Maity <sanchayan@asymptotic.io>", + "description": "Adds rounded corners to video", + "hierarchy": [ + "RoundedCorners", + "GstBaseTransform", + "GstElement", + "GstObject", + "GInitiallyUnowned", + "GObject" + ], + "klass": "Filter/Effect/Converter/Video", + "long-name": "Rounded Corners", + "pad-templates": { + "sink": { + "caps": "video/x-raw:\n format: I420\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "sink", + "presence": "always" + }, + "src": { + "caps": "video/x-raw:\n format: { I420, A420 }\n width: [ 1, 2147483647 ]\n height: [ 1, 2147483647 ]\n framerate: [ 0/1, 2147483647/1 ]\n", + "direction": "src", + "presence": "always" + } + }, + "properties": { + "border-radius-px": { + "blurb": "Draw rounded corners with given border radius", + "conditionally-available": false, + "construct": false, + "construct-only": false, + "controllable": false, + "default": "0", + "max": "-1", + "min": "0", + "mutable": "playing", + "readable": true, + "type": "guint", + "writable": true + } + }, + "rank": "none" + } + }, + "filename": "gstvideofx", + "license": "MPL", + "other-types": {}, + "package": "gst-plugin-videofx", + "source": "gst-plugin-videofx", + "tracers": {}, + "url": "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs" + } +}
\ No newline at end of file diff --git a/docs/plugins/index.md b/docs/plugins/index.md new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/docs/plugins/index.md diff --git a/docs/plugins/sitemap.txt b/docs/plugins/sitemap.txt new file mode 100644 index 000000000..058a2713a --- /dev/null +++ b/docs/plugins/sitemap.txt @@ -0,0 +1 @@ +gst-index diff --git a/generic/file/Cargo.toml b/generic/file/Cargo.toml index 4952d0c7e..5b38a588c 100644 --- a/generic/file/Cargo.toml +++ b/generic/file/Cargo.toml @@ -25,6 +25,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/generic/file/src/lib.rs b/generic/file/src/lib.rs index cdcf505b1..bc11afd23 100644 --- a/generic/file/src/lib.rs +++ b/generic/file/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rsfile: + * + * Since: plugins-rs-0.1.0 + */ use gst::glib; mod file_location; diff --git a/generic/fmp4/src/fmp4mux/mod.rs b/generic/fmp4/src/fmp4mux/mod.rs index 1424d9a3c..76c2da9c2 100644 --- a/generic/fmp4/src/fmp4mux/mod.rs +++ b/generic/fmp4/src/fmp4mux/mod.rs @@ -33,6 +33,8 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + FMP4Mux::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + HeaderUpdateMode::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); gst::Element::register( Some(plugin), "isofmp4mux", diff --git a/generic/fmp4/src/lib.rs b/generic/fmp4/src/lib.rs index 7832bf999..d44dbc2ce 100644 --- a/generic/fmp4/src/lib.rs +++ b/generic/fmp4/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-fmp4: + * + * Since: plugins-rs-0.8.0 + */ use gst::glib; mod fmp4mux; diff --git a/generic/sodium/Cargo.toml b/generic/sodium/Cargo.toml index d707fe896..8f73a2471 100644 --- a/generic/sodium/Cargo.toml +++ b/generic/sodium/Cargo.toml @@ -59,6 +59,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/generic/sodium/src/lib.rs b/generic/sodium/src/lib.rs index 69b5b7032..7d88ee96a 100644 --- a/generic/sodium/src/lib.rs +++ b/generic/sodium/src/lib.rs @@ -21,6 +21,11 @@ // SPDX-License-Identifier: MIT #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-sodium: + * + * Since: plugins-rs-0.5.0 + */ use gst::glib; const TYPEFIND_HEADER: &[u8; 12] = b"gst-sodium10"; diff --git a/generic/threadshare/Cargo.toml b/generic/threadshare/Cargo.toml index bf23f862a..b4d08e7ba 100644 --- a/generic/threadshare/Cargo.toml +++ b/generic/threadshare/Cargo.toml @@ -66,6 +66,7 @@ pkg-config = "0.3.15" [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/generic/threadshare/src/appsrc/imp.rs b/generic/threadshare/src/appsrc/imp.rs index 10c696fb4..ec4ca6202 100644 --- a/generic/threadshare/src/appsrc/imp.rs +++ b/generic/threadshare/src/appsrc/imp.rs @@ -506,6 +506,12 @@ impl ObjectImpl for AppSrc { Some(appsrc.push_buffer(&element, buffer).to_value()) }) .build(), + /** + * ts-appsrc::end-of-stream: + * @self: A ts-appsrc + * + * Returns: %TRUE if the EOS could be queued, %FALSE otherwise + */ glib::subclass::Signal::builder("end-of-stream") .return_type::<bool>() .action() diff --git a/generic/threadshare/src/lib.rs b/generic/threadshare/src/lib.rs index e9b5a9dc2..6067a2b0c 100644 --- a/generic/threadshare/src/lib.rs +++ b/generic/threadshare/src/lib.rs @@ -7,6 +7,12 @@ //! //! [`runtime`]: runtime/index.html +/** + * plugin-threadshare: + * + * Since: plugins-rs-0.4.0 + */ + #[macro_use] pub mod runtime; diff --git a/meson.build b/meson.build index 0e47ef522..445ac963d 100644 --- a/meson.build +++ b/meson.build @@ -2,7 +2,7 @@ project('gst-plugins-rs', 'rust', 'c', version: '0.13.0', - meson_version : '>= 0.56') + meson_version : '>= 0.60') if get_option('debug') target = 'debug' @@ -126,7 +126,8 @@ if get_option('default_library') == 'shared' or get_option('default_library') == endforeach endif -if get_option('default_library') == 'static' or get_option('default_library') == 'both' +static_build = get_option('default_library') == 'static' +if static_build or get_option('default_library') == 'both' extensions += [ext_static] foreach p, lib : plugins output += [lib + '.' + ext_static] @@ -161,6 +162,7 @@ deps = [ foreach d: deps dep = dependency(d[0], version : gst_req, fallback : [d[1], d[2]]) + set_variable(d[2], dep) if dep.type_name() == 'internal' lib = subproject(d[1]).get_variable(d[3]) depends += lib @@ -179,6 +181,11 @@ extra_env_str = ','.join(extra_env_list) plugins_install_dir = get_option('libdir') / 'gstreamer-1.0' pkgconfig_install_dir = get_option('libdir') / 'pkgconfig' +if get_option('doc').disabled() + disable_doc = ['--disable-doc'] +else + disable_doc = [] +endif python = import('python').find_installation() rs_plugins = custom_target('gst-plugins-rs', @@ -201,10 +208,12 @@ rs_plugins = custom_target('gst-plugins-rs', get_option('libdir'), '--depfile', '@DEPFILE@', '--exts', extensions, - ]) + ] + disable_doc) plugins = rs_plugins.to_list() +subdir('docs') + # We don't need to pass a command as we depends on the target above # but it is currently mandatory ( https://github.com/mesonbuild/meson/issues/8059 ) # so use python as it's guaranteed to be present on any setup @@ -222,7 +231,7 @@ test('tests', args: ['test', meson.current_build_dir(), meson.current_source_dir(), - meson.build_root(), + meson.global_build_root(), target, include, extra_env_str, diff --git a/meson_options.txt b/meson_options.txt index 341e10d7d..e238d0a00 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -5,3 +5,7 @@ option('sodium', type : 'combo', description : 'Weither to use libsodium from the system or the built-in version from the sodiumoxide crate') option('csound', type : 'feature', value : 'auto', description : 'Build csound plugin') option('gtk4', type : 'feature', value : 'auto', description : 'Build GTK4 plugin') + +# Common options +option('doc', type : 'feature', value : 'auto', yield: true, + description: 'Enable documentation.') diff --git a/net/aws/Cargo.toml b/net/aws/Cargo.toml index 4eead4e90..948c71041 100644 --- a/net/aws/Cargo.toml +++ b/net/aws/Cargo.toml @@ -51,6 +51,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/net/aws/src/aws_transcriber/mod.rs b/net/aws/src/aws_transcriber/mod.rs index 009123caf..db04c9ace 100644 --- a/net/aws/src/aws_transcriber/mod.rs +++ b/net/aws/src/aws_transcriber/mod.rs @@ -49,6 +49,13 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + { + AwsTranscriberResultStability::static_type() + .mark_as_plugin_api(gst::PluginAPIFlags::empty()); + AwsTranscriberVocabularyFilterMethod::static_type() + .mark_as_plugin_api(gst::PluginAPIFlags::empty()); + } gst::Element::register( Some(plugin), "awstranscriber", diff --git a/net/aws/src/lib.rs b/net/aws/src/lib.rs index 727c4f2fc..90b61bca1 100644 --- a/net/aws/src/lib.rs +++ b/net/aws/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-aws: + * + * Since: plugins-rs-0.1 + */ use gst::glib; mod aws_transcribe_parse; diff --git a/net/aws/src/s3sink/imp.rs b/net/aws/src/s3sink/imp.rs index 0425923a8..118b5ec70 100644 --- a/net/aws/src/s3sink/imp.rs +++ b/net/aws/src/s3sink/imp.rs @@ -917,6 +917,8 @@ impl GstObjectImpl for S3Sink {} impl ElementImpl for S3Sink { fn metadata() -> Option<&'static gst::subclass::ElementMetadata> { static ELEMENT_METADATA: Lazy<gst::subclass::ElementMetadata> = Lazy::new(|| { + #[cfg(feature = "doc")] + OnError::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); gst::subclass::ElementMetadata::new( "Amazon S3 sink", "Source/Network", diff --git a/net/aws/src/s3sink/mod.rs b/net/aws/src/s3sink/mod.rs index 16575e416..e60c360bb 100644 --- a/net/aws/src/s3sink/mod.rs +++ b/net/aws/src/s3sink/mod.rs @@ -31,6 +31,7 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(not(feature = "doc"))] gst::Element::register( Some(plugin), "rusotos3sink", diff --git a/net/aws/src/s3src/mod.rs b/net/aws/src/s3src/mod.rs index 7cc9218cb..b7df49f32 100644 --- a/net/aws/src/s3src/mod.rs +++ b/net/aws/src/s3src/mod.rs @@ -16,6 +16,7 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(not(feature = "doc"))] gst::Element::register( Some(plugin), "rusotos3src", diff --git a/net/hlssink3/Cargo.toml b/net/hlssink3/Cargo.toml index e150cb1b1..11a8ca70c 100644 --- a/net/hlssink3/Cargo.toml +++ b/net/hlssink3/Cargo.toml @@ -32,6 +32,7 @@ path = "src/lib.rs" [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/net/hlssink3/src/lib.rs b/net/hlssink3/src/lib.rs index 17580e973..5e8f8852b 100644 --- a/net/hlssink3/src/lib.rs +++ b/net/hlssink3/src/lib.rs @@ -7,7 +7,13 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-hlssink3: + * + * Since: plugins-rs-0.8.0 + */ use glib::prelude::*; +use gst::prelude::*; mod imp; mod playlist; @@ -41,6 +47,9 @@ glib::wrapper! { } pub fn plugin_init(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + HlsSink3PlaylistType::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "hlssink3", diff --git a/net/onvif/Cargo.toml b/net/onvif/Cargo.toml index 332d3e68c..69654daca 100644 --- a/net/onvif/Cargo.toml +++ b/net/onvif/Cargo.toml @@ -32,6 +32,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/net/onvif/src/lib.rs b/net/onvif/src/lib.rs index 8c0b7c1fc..9e36a2063 100644 --- a/net/onvif/src/lib.rs +++ b/net/onvif/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rsonvif: + * + * Since: plugins-rs-0.9.0 + */ use gst::glib; use once_cell::sync::Lazy; diff --git a/net/raptorq/Cargo.toml b/net/raptorq/Cargo.toml index f849b9982..ea40f893c 100644 --- a/net/raptorq/Cargo.toml +++ b/net/raptorq/Cargo.toml @@ -30,6 +30,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/net/raptorq/src/lib.rs b/net/raptorq/src/lib.rs index 0fd3b1258..e9e8072f1 100644 --- a/net/raptorq/src/lib.rs +++ b/net/raptorq/src/lib.rs @@ -7,6 +7,11 @@ #![allow(clippy::non_send_fields_in_send_ty)] #![doc = include_str!("../README.md")] +/** + * plugin-raptorq: + * + * Since: plugins-rs-0.9.0 + */ use gst::glib; mod fecscheme; diff --git a/net/reqwest/Cargo.toml b/net/reqwest/Cargo.toml index c8eac4c80..b06d9ad8a 100644 --- a/net/reqwest/Cargo.toml +++ b/net/reqwest/Cargo.toml @@ -34,6 +34,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/net/reqwest/src/lib.rs b/net/reqwest/src/lib.rs index ac421464b..1819812d7 100644 --- a/net/reqwest/src/lib.rs +++ b/net/reqwest/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-reqwest: + * + * Since: plugins-rs-0.1.0 + */ use gst::glib; mod reqwesthttpsrc; diff --git a/text/ahead/Cargo.toml b/text/ahead/Cargo.toml index f1e60349e..ae78f5b34 100644 --- a/text/ahead/Cargo.toml +++ b/text/ahead/Cargo.toml @@ -23,6 +23,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/text/ahead/src/lib.rs b/text/ahead/src/lib.rs index 003ce7f58..5e9afa43d 100644 --- a/text/ahead/src/lib.rs +++ b/text/ahead/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-textahead: + * + * Since: plugins-rs-0.8.0 + */ use gst::glib; mod textahead; diff --git a/text/json/Cargo.toml b/text/json/Cargo.toml index 9c261e713..194b5d975 100644 --- a/text/json/Cargo.toml +++ b/text/json/Cargo.toml @@ -33,6 +33,7 @@ package="gstreamer-check" default = ["gst/ser_de"] static = ["default"] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.7.0" diff --git a/text/json/src/lib.rs b/text/json/src/lib.rs index 213c8194c..29c0e811a 100644 --- a/text/json/src/lib.rs +++ b/text/json/src/lib.rs @@ -8,6 +8,11 @@ #![allow(clippy::non_send_fields_in_send_ty)] #![recursion_limit = "128"] +/** + * plugin-rsjson: + * + * Since: plugins-rs-0.5.0 + */ use gst::glib; mod jsongstenc; diff --git a/text/regex/Cargo.toml b/text/regex/Cargo.toml index 1945be6df..d1dafc489 100644 --- a/text/regex/Cargo.toml +++ b/text/regex/Cargo.toml @@ -31,6 +31,7 @@ package="gstreamer-check" [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/text/regex/src/lib.rs b/text/regex/src/lib.rs index 7181d2ca6..bb7743697 100644 --- a/text/regex/src/lib.rs +++ b/text/regex/src/lib.rs @@ -8,6 +8,11 @@ #![allow(clippy::non_send_fields_in_send_ty)] #![recursion_limit = "128"] +/** + * plugin-rsregex: + * + * Since: plugins-rs-0.7.0 + */ use gst::glib; mod gstregex; diff --git a/text/wrap/Cargo.toml b/text/wrap/Cargo.toml index 38c5433b6..10519d5df 100644 --- a/text/wrap/Cargo.toml +++ b/text/wrap/Cargo.toml @@ -32,6 +32,7 @@ package="gstreamer-check" [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.9.3" diff --git a/text/wrap/src/lib.rs b/text/wrap/src/lib.rs index 642faf499..d7cb8e90b 100644 --- a/text/wrap/src/lib.rs +++ b/text/wrap/src/lib.rs @@ -8,6 +8,11 @@ #![allow(clippy::non_send_fields_in_send_ty)] #![recursion_limit = "128"] +/** + * plugin-rstextwrap: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod gsttextwrap; diff --git a/utils/fallbackswitch/Cargo.toml b/utils/fallbackswitch/Cargo.toml index 46fc279cf..27a918131 100644 --- a/utils/fallbackswitch/Cargo.toml +++ b/utils/fallbackswitch/Cargo.toml @@ -39,6 +39,7 @@ gst-plugin-version-helper = { path="../../version-helper" } default = ["v1_20"] static = [] capi = [] +doc = ["gst/v1_18"] v1_20 = ["gst/v1_20"] [package.metadata.capi] diff --git a/utils/fallbackswitch/src/fallbacksrc/imp.rs b/utils/fallbackswitch/src/fallbacksrc/imp.rs index fecb26ba9..ad54e2e1a 100644 --- a/utils/fallbackswitch/src/fallbacksrc/imp.rs +++ b/utils/fallbackswitch/src/fallbacksrc/imp.rs @@ -693,6 +693,8 @@ impl GstObjectImpl for FallbackSrc {} impl ElementImpl for FallbackSrc { fn metadata() -> Option<&'static gst::subclass::ElementMetadata> { static ELEMENT_METADATA: Lazy<gst::subclass::ElementMetadata> = Lazy::new(|| { + #[cfg(feature = "doc")] + Status::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); gst::subclass::ElementMetadata::new( "Fallback Source", "Generic/Source", diff --git a/utils/fallbackswitch/src/fallbackswitch/mod.rs b/utils/fallbackswitch/src/fallbackswitch/mod.rs index 7a0c8e8d6..85d871225 100644 --- a/utils/fallbackswitch/src/fallbackswitch/mod.rs +++ b/utils/fallbackswitch/src/fallbackswitch/mod.rs @@ -28,6 +28,9 @@ glib::wrapper! { // the name "fallbackswitch" for being able to instantiate it via e.g. // gst::ElementFactory::make(). pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + FallbackSwitchSinkPad::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "fallbackswitch", diff --git a/utils/fallbackswitch/src/lib.rs b/utils/fallbackswitch/src/lib.rs index ca8f5e46f..78b4634b5 100644 --- a/utils/fallbackswitch/src/lib.rs +++ b/utils/fallbackswitch/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-fallbackswitch: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod fallbacksrc; diff --git a/utils/togglerecord/Cargo.toml b/utils/togglerecord/Cargo.toml index 73962eed3..203ff1b50 100644 --- a/utils/togglerecord/Cargo.toml +++ b/utils/togglerecord/Cargo.toml @@ -36,6 +36,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/utils/togglerecord/src/lib.rs b/utils/togglerecord/src/lib.rs index 3b7ff8478..a3263657a 100644 --- a/utils/togglerecord/src/lib.rs +++ b/utils/togglerecord/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-togglerecord: + * + * Since: plugins-rs-0.1.0 + */ use gst::glib; mod togglerecord; diff --git a/utils/tracers/Cargo.toml b/utils/tracers/Cargo.toml index fd1fdc565..a55bf960e 100644 --- a/utils/tracers/Cargo.toml +++ b/utils/tracers/Cargo.toml @@ -27,6 +27,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] v1_22 = ["gst/v1_22"] [package.metadata.capi] diff --git a/utils/tracers/src/lib.rs b/utils/tracers/src/lib.rs index 681205f1a..c35189eb0 100644 --- a/utils/tracers/src/lib.rs +++ b/utils/tracers/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rstracers: + * + * Since: plugins-rs-0.9.0 + */ use gst::glib; mod buffer_lateness; diff --git a/utils/uriplaylistbin/Cargo.toml b/utils/uriplaylistbin/Cargo.toml index 79d77424d..14906942a 100644 --- a/utils/uriplaylistbin/Cargo.toml +++ b/utils/uriplaylistbin/Cargo.toml @@ -33,6 +33,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/utils/uriplaylistbin/src/lib.rs b/utils/uriplaylistbin/src/lib.rs index 4ab225ba7..6a6057f5e 100644 --- a/utils/uriplaylistbin/src/lib.rs +++ b/utils/uriplaylistbin/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-uriplaylistbin: + * + * Since: plugins-rs-0.8.0 + */ use gst::glib; mod uriplaylistbin; diff --git a/video/cdg/Cargo.toml b/video/cdg/Cargo.toml index 042a217df..bba8decc5 100644 --- a/video/cdg/Cargo.toml +++ b/video/cdg/Cargo.toml @@ -32,6 +32,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/cdg/src/lib.rs b/video/cdg/src/lib.rs index bbf9bcfdb..03dd36298 100644 --- a/video/cdg/src/lib.rs +++ b/video/cdg/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-cdg: + * + * Since: plugins-rs-0.5.0 + */ use gst::glib; mod cdgdec; diff --git a/video/closedcaption/Cargo.toml b/video/closedcaption/Cargo.toml index ea1b73046..ee83bfa9c 100644 --- a/video/closedcaption/Cargo.toml +++ b/video/closedcaption/Cargo.toml @@ -59,6 +59,7 @@ cc = "1.0" # We already use 1.16 which is new enough for static build static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/closedcaption/src/lib.rs b/video/closedcaption/src/lib.rs index 8bae593d5..570c31433 100644 --- a/video/closedcaption/src/lib.rs +++ b/video/closedcaption/src/lib.rs @@ -8,7 +8,13 @@ #![allow(clippy::non_send_fields_in_send_ty)] #![recursion_limit = "128"] +/** + * plugin-rsclosedcaption: + * + * Since: plugins-rs-0.4.0 + */ use gst::glib; +use gst::prelude::*; #[allow(non_camel_case_types, non_upper_case_globals, unused)] #[allow(clippy::redundant_static_lifetimes, clippy::unreadable_literal)] @@ -34,6 +40,8 @@ mod tttojson; mod ttutils; fn plugin_init(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + ttutils::Cea608Mode::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); mcc_parse::register(plugin)?; mcc_enc::register(plugin)?; scc_parse::register(plugin)?; diff --git a/video/closedcaption/src/transcriberbin/mod.rs b/video/closedcaption/src/transcriberbin/mod.rs index 90f7a4c7a..f1c40ff82 100644 --- a/video/closedcaption/src/transcriberbin/mod.rs +++ b/video/closedcaption/src/transcriberbin/mod.rs @@ -25,6 +25,9 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + CaptionSource::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "transcriberbin", diff --git a/video/dav1d/Cargo.toml b/video/dav1d/Cargo.toml index 9c489c163..584a2b040 100644 --- a/video/dav1d/Cargo.toml +++ b/video/dav1d/Cargo.toml @@ -27,6 +27,7 @@ gst-plugin-version-helper = { path = "../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/dav1d/src/lib.rs b/video/dav1d/src/lib.rs index a63ee025e..f74aee42b 100644 --- a/video/dav1d/src/lib.rs +++ b/video/dav1d/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rsdav1d: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod dav1ddec; diff --git a/video/ffv1/Cargo.toml b/video/ffv1/Cargo.toml index da4daff14..fb138f426 100644 --- a/video/ffv1/Cargo.toml +++ b/video/ffv1/Cargo.toml @@ -28,6 +28,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/ffv1/src/lib.rs b/video/ffv1/src/lib.rs index 2fb0e972f..d76b895fb 100644 --- a/video/ffv1/src/lib.rs +++ b/video/ffv1/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-ffv1: + * + * Since: plugins-rs-0.8.0 + */ mod ffv1dec; fn plugin_init(plugin: &gst::Plugin) -> Result<(), gst::glib::BoolError> { diff --git a/video/flavors/Cargo.toml b/video/flavors/Cargo.toml index 092b898c6..2d677976d 100644 --- a/video/flavors/Cargo.toml +++ b/video/flavors/Cargo.toml @@ -31,6 +31,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/flavors/src/lib.rs b/video/flavors/src/lib.rs index 95bf6501c..dd9c0fcc8 100644 --- a/video/flavors/src/lib.rs +++ b/video/flavors/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rsflv: + * + * Since: plugins-rs-0.4.0 + */ use gst::glib; mod bytes; diff --git a/video/gif/Cargo.toml b/video/gif/Cargo.toml index 109ea2311..104c43331 100644 --- a/video/gif/Cargo.toml +++ b/video/gif/Cargo.toml @@ -33,6 +33,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/gif/src/lib.rs b/video/gif/src/lib.rs index 0ae16abf9..3d3b33eba 100644 --- a/video/gif/src/lib.rs +++ b/video/gif/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-gif: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod gifenc; diff --git a/video/gtk4/Cargo.toml b/video/gtk4/Cargo.toml index 639a5ca98..1d1ca7548 100644 --- a/video/gtk4/Cargo.toml +++ b/video/gtk4/Cargo.toml @@ -29,6 +29,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.7.0" diff --git a/video/gtk4/src/lib.rs b/video/gtk4/src/lib.rs index 1f8384039..21df1ba43 100644 --- a/video/gtk4/src/lib.rs +++ b/video/gtk4/src/lib.rs @@ -10,6 +10,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-gtk4: + * + * Since: plugins-rs-0.8.0 + */ use gst::glib; mod sink; diff --git a/video/hsv/Cargo.toml b/video/hsv/Cargo.toml index 59cd343b3..4956f7b90 100644 --- a/video/hsv/Cargo.toml +++ b/video/hsv/Cargo.toml @@ -31,6 +31,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/hsv/src/lib.rs b/video/hsv/src/lib.rs index f2ea26b3f..40e20e27f 100644 --- a/video/hsv/src/lib.rs +++ b/video/hsv/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-hsv: + * + * Since: plugins-rs-0.7.0 + */ use gst::glib; mod hsvdetector; diff --git a/video/rav1e/Cargo.toml b/video/rav1e/Cargo.toml index a152b897d..6541f9054 100644 --- a/video/rav1e/Cargo.toml +++ b/video/rav1e/Cargo.toml @@ -30,6 +30,7 @@ gst-plugin-version-helper = { path="../../version-helper" } default = ["hdr"] static = [] capi = [] +doc = ["gst/v1_18"] asm = ["rav1e/asm"] hdr = ["gst-video/v1_18"] diff --git a/video/rav1e/src/lib.rs b/video/rav1e/src/lib.rs index bfc8bf9de..3395fc22f 100644 --- a/video/rav1e/src/lib.rs +++ b/video/rav1e/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rav1e: + * + * Since: plugins-rs-0.5.0 + */ use gst::glib; mod rav1enc; diff --git a/video/rav1e/src/rav1enc/mod.rs b/video/rav1e/src/rav1enc/mod.rs index 9349c1ddf..a6f5e90d4 100644 --- a/video/rav1e/src/rav1enc/mod.rs +++ b/video/rav1e/src/rav1enc/mod.rs @@ -18,6 +18,9 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + imp::Tune::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "rav1enc", diff --git a/video/rspng/Cargo.toml b/video/rspng/Cargo.toml index 1e630390d..a129899a6 100644 --- a/video/rspng/Cargo.toml +++ b/video/rspng/Cargo.toml @@ -30,6 +30,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/rspng/src/lib.rs b/video/rspng/src/lib.rs index d05a4d73e..ce78256b9 100644 --- a/video/rspng/src/lib.rs +++ b/video/rspng/src/lib.rs @@ -9,6 +9,11 @@ // SPDX-License-Identifier: MIT OR Apache-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rspng: + * + * Since: plugins-rs-0.6.0 + */ use gst::glib; mod pngenc; diff --git a/video/rspng/src/pngenc/mod.rs b/video/rspng/src/pngenc/mod.rs index debedaa23..1d83ffb67 100644 --- a/video/rspng/src/pngenc/mod.rs +++ b/video/rspng/src/pngenc/mod.rs @@ -86,6 +86,10 @@ glib::wrapper! { } pub fn register(plugin: &gst::Plugin) -> Result<(), glib::BoolError> { + #[cfg(feature = "doc")] + CompressionLevel::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + FilterType::static_type().mark_as_plugin_api(gst::PluginAPIFlags::empty()); + gst::Element::register( Some(plugin), "rspngenc", diff --git a/video/videofx/Cargo.toml b/video/videofx/Cargo.toml index b56c9e0f6..02f00e671 100644 --- a/video/videofx/Cargo.toml +++ b/video/videofx/Cargo.toml @@ -44,6 +44,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/videofx/src/lib.rs b/video/videofx/src/lib.rs index 2b8d4c5bf..5dbb4bb24 100644 --- a/video/videofx/src/lib.rs +++ b/video/videofx/src/lib.rs @@ -8,6 +8,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-videofx: + * + * Since: plugins-rs-0.8.0 + */ mod border; mod colordetect; diff --git a/video/webp/Cargo.toml b/video/webp/Cargo.toml index c8ac9d3d2..871fa2fe6 100644 --- a/video/webp/Cargo.toml +++ b/video/webp/Cargo.toml @@ -38,6 +38,7 @@ gst-plugin-version-helper = { path="../../version-helper" } [features] static = [] capi = [] +doc = ["gst/v1_18"] [package.metadata.capi] min_version = "0.8.0" diff --git a/video/webp/src/lib.rs b/video/webp/src/lib.rs index 079f14d3a..5b6061e7c 100644 --- a/video/webp/src/lib.rs +++ b/video/webp/src/lib.rs @@ -7,6 +7,11 @@ // SPDX-License-Identifier: MPL-2.0 #![allow(clippy::non_send_fields_in_send_ty)] +/** + * plugin-rswebp: + * + * Since: plugins-rs-0.7.0 + */ use gst::glib; mod dec; |