From 31a53bba8ae22d4be44861c868fb663fd46a69a3 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Thu, 25 Aug 2022 18:30:08 -0400 Subject: [PATCH] Generate plugins documentation using hotdoc Which will automatically be integrated in gstreamer documentation --- audio/audiofx/Cargo.toml | 1 + audio/audiofx/src/ebur128level/imp.rs | 2 +- audio/audiofx/src/ebur128level/mod.rs | 3 + audio/audiofx/src/lib.rs | 5 + audio/claxon/Cargo.toml | 1 + audio/claxon/src/lib.rs | 5 + audio/csound/Cargo.toml | 1 + audio/csound/src/lib.rs | 5 + audio/lewton/Cargo.toml | 1 + audio/lewton/src/lib.rs | 5 + audio/spotify/Cargo.toml | 1 + audio/spotify/src/lib.rs | 5 + cargo_wrapper.py | 3 + docs/meson.build | 111 + docs/plugins/all_index.md | 5 + docs/plugins/gst_plugins_cache.json | 6580 +++++++++++++++++ docs/plugins/index.md | 0 docs/plugins/sitemap.txt | 1 + generic/file/Cargo.toml | 1 + generic/file/src/lib.rs | 5 + generic/fmp4/src/fmp4mux/mod.rs | 2 + generic/fmp4/src/lib.rs | 5 + generic/sodium/Cargo.toml | 1 + generic/sodium/src/lib.rs | 5 + generic/threadshare/Cargo.toml | 1 + generic/threadshare/src/appsrc/imp.rs | 6 + generic/threadshare/src/lib.rs | 6 + meson.build | 17 +- meson_options.txt | 4 + net/aws/Cargo.toml | 1 + net/aws/src/aws_transcriber/mod.rs | 7 + net/aws/src/lib.rs | 5 + net/aws/src/s3sink/imp.rs | 2 + net/aws/src/s3sink/mod.rs | 1 + net/aws/src/s3src/mod.rs | 1 + net/hlssink3/Cargo.toml | 1 + net/hlssink3/src/lib.rs | 9 + net/onvif/Cargo.toml | 1 + net/onvif/src/lib.rs | 5 + net/raptorq/Cargo.toml | 1 + net/raptorq/src/lib.rs | 5 + net/reqwest/Cargo.toml | 1 + net/reqwest/src/lib.rs | 5 + text/ahead/Cargo.toml | 1 + text/ahead/src/lib.rs | 5 + text/json/Cargo.toml | 1 + text/json/src/lib.rs | 5 + text/regex/Cargo.toml | 1 + text/regex/src/lib.rs | 5 + text/wrap/Cargo.toml | 1 + text/wrap/src/lib.rs | 5 + utils/fallbackswitch/Cargo.toml | 1 + utils/fallbackswitch/src/fallbacksrc/imp.rs | 2 + .../fallbackswitch/src/fallbackswitch/mod.rs | 3 + utils/fallbackswitch/src/lib.rs | 5 + utils/togglerecord/Cargo.toml | 1 + utils/togglerecord/src/lib.rs | 5 + utils/tracers/Cargo.toml | 1 + utils/tracers/src/lib.rs | 5 + utils/uriplaylistbin/Cargo.toml | 1 + utils/uriplaylistbin/src/lib.rs | 5 + video/cdg/Cargo.toml | 1 + video/cdg/src/lib.rs | 5 + video/closedcaption/Cargo.toml | 1 + video/closedcaption/src/lib.rs | 8 + video/closedcaption/src/transcriberbin/mod.rs | 3 + video/dav1d/Cargo.toml | 1 + video/dav1d/src/lib.rs | 5 + video/ffv1/Cargo.toml | 1 + video/ffv1/src/lib.rs | 5 + video/flavors/Cargo.toml | 1 + video/flavors/src/lib.rs | 5 + video/gif/Cargo.toml | 1 + video/gif/src/lib.rs | 5 + video/gtk4/Cargo.toml | 1 + video/gtk4/src/lib.rs | 5 + video/hsv/Cargo.toml | 1 + video/hsv/src/lib.rs | 5 + video/rav1e/Cargo.toml | 1 + video/rav1e/src/lib.rs | 5 + video/rav1e/src/rav1enc/mod.rs | 3 + video/rspng/Cargo.toml | 1 + video/rspng/src/lib.rs | 5 + video/rspng/src/pngenc/mod.rs | 4 + video/videofx/Cargo.toml | 1 + video/videofx/src/lib.rs | 5 + video/webp/Cargo.toml | 1 + video/webp/src/lib.rs | 5 + 88 files changed, 6966 insertions(+), 5 deletions(-) create mode 100644 docs/meson.build create mode 100644 docs/plugins/all_index.md create mode 100644 docs/plugins/gst_plugins_cache.json create mode 100644 docs/plugins/index.md create mode 100644 docs/plugins/sitemap.txt diff --git a/audio/audiofx/Cargo.toml b/audio/audiofx/Cargo.toml index 9c4a067a..e90a6774 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 71c3811d..7c889c54 100644 --- a/audio/audiofx/src/ebur128level/imp.rs +++ b/audio/audiofx/src/ebur128level/imp.rs @@ -33,7 +33,7 @@ static CAT: Lazy = 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 722789ba..3908d21c 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 ecf90b51..345317b1 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 9748cceb..1163f7a7 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 dff70387..6483a871 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 10c9d8fe..7269f332 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 c156b88c..f38b09a5 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 6c988fd5..6d31e3b4 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 6e49a70b..7338be3c 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 5e6b9c4b..0f796c87 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 72771b28..6bd71627 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 75f6fe43..87834b92 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 00000000..6d710715 --- /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 00000000..f9f41b01 --- /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 00000000..d34056aa --- /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 ", + "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 ", + "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 ", + "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 , Mathieu Duponchelle ", + "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 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 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 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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 , Jordan Petridis , Sebastian Dröge ", + "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 , Sebastian Dröge , Rafael Caricio ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 , Jordan Petridis ", + "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 , Jordan Petridis ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 , Luis de Bethencourt ", + "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 , Sebastian Dröge ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 , LEE Dongjun ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 ", + "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 00000000..e69de29b diff --git a/docs/plugins/sitemap.txt b/docs/plugins/sitemap.txt new file mode 100644 index 00000000..058a2713 --- /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 4952d0c7..5b38a588 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 cdcf505b..bc11afd2 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 1424d9a3..76c2da9c 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 7832bf99..d44dbc2c 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 d707fe89..8f73a247 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 69b5b703..7d88ee96 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 bf23f862..b4d08e7b 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 10c696fb..ec4ca620 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::() .action() diff --git a/generic/threadshare/src/lib.rs b/generic/threadshare/src/lib.rs index e9b5a9dc..6067a2b0 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 0e47ef52..445ac963 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 341e10d7..e238d0a0 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 4eead4e9..948c7104 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 009123ca..db04c9ac 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 727c4f2f..90b61bca 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 0425923a..118b5ec7 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 = 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 16575e41..e60c360b 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 7cc9218c..b7df49f3 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 e150cb1b..11a8ca70 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 17580e97..5e8f8852 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 332d3e68..69654dac 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 8c0b7c1f..9e36a206 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 f849b998..ea40f893 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 0fd3b125..e9e8072f 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 c8eac4c8..b06d9ad8 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 ac421464..1819812d 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 f1e60349..ae78f5b3 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 003ce7f5..5e9afa43 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 9c261e71..194b5d97 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 213c8194..29c0e811 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 1945be6d..d1dafc48 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 7181d2ca..bb774369 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 38c5433b..10519d5d 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 642faf49..d7cb8e90 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 46fc279c..27a91813 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 fecb26ba..ad54e2e1 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 = 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 7a0c8e8d..85d87122 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 ca8f5e46..78b4634b 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 73962eed..203ff1b5 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 3b7ff847..a3263657 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 fd1fdc56..a55bf960 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 681205f1..c35189eb 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 79d77424..14906942 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 4ab225ba..6a6057f5 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 042a217d..bba8decc 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 bbf9bcfd..03dd3629 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 ea1b7304..ee83bfa9 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 8bae593d..570c3143 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 90f7a4c7..f1c40ff8 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 9c489c16..584a2b04 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 a63ee025..f74aee42 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 da4daff1..fb138f42 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 2fb0e972..d76b895f 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 092b898c..2d677976 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 95bf6501..dd9c0fcc 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 109ea231..104c4333 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 0ae16abf..3d3b33eb 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 639a5ca9..1d1ca754 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 1f838403..21df1ba4 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 59cd343b..4956f7b9 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 f2ea26b3..40e20e27 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 a152b897..6541f905 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 bfc8bf9d..3395fc22 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 9349c1dd..a6f5e90d 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 1e630390..a129899a 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 d05a4d73..ce78256b 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 debedaa2..1d83ffb6 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 b56c9e0f..02f00e67 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 2b8d4c5b..5dbb4bb2 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 c8ac9d3d..871fa2fe 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 079f14d3..5b6061e7 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;