gstreamer-rs/gstreamer/Gir.toml
Sebastian Dröge d3543efec2 gstreamer: Manually implement Allocator::register()
Due to a bug it causes use-after-free in versions < 1.20.5, so work
around that here.
2022-11-08 19:07:48 +02:00

2474 lines
53 KiB
TOML

[options]
girs_directories = ["../gir-files", "../gst-gir-files"]
library = "Gst"
version = "1.0"
min_cfg_version = "1.14"
work_mode = "normal"
concurrency = "send+sync"
generate_safety_asserts = true
single_version_file = true
generate_display_trait = false
trust_return_value_nullability = true
external_libraries = [
"GLib",
"GObject",
]
generate = [
"Gst.BufferingMode",
"Gst.BusSyncReply",
"Gst.CapsIntersectMode",
"Gst.ClockEntryType",
"Gst.ClockTimeDiff",
"Gst.DebugColorFlags",
"Gst.DebugGraphDetails",
"Gst.EventTypeFlags",
"Gst.GapFlags",
"Gst.PadMode",
"Gst.PadProbeReturn",
"Gst.ParseError",
"Gst.PluginAPIFlags",
"Gst.PluginError",
"Gst.PluginFlags",
"Gst.ProgressType",
"Gst.PromiseResult",
"Gst.QOSType",
"Gst.SchedulingFlags",
"Gst.SeekType",
"Gst.SerializeFlags",
"Gst.StateChange",
"Gst.StreamStatusType",
"Gst.StreamType",
"Gst.StructureChangeType",
"Gst.SystemClock",
"Gst.TaskState",
"Gst.TocSetter",
"Gst.URIError",
"Gst.URIHandler",
]
manual = [
"GLib.DateTime",
"GLib.Error",
"GLib.MainContext",
"GLib.Quark",
"GLib.Source",
"GLib.Type",
"GObject.Object",
"GObject.Value",
"Gst.AllocationParams",
"Gst.CapsFeatures",
"Gst.DebugCategory",
"Gst.DebugMessage",
"Gst.Segment",
"Gst.StaticCaps",
"Gst.StaticPadTemplate",
"Gst.TypeFind",
]
[[object]]
name = "Gst.*"
status = "generate"
# We'll opt-in for constants at a later time
[[object.constant]]
pattern = ".+"
ignore = true
[[object.function]]
name = "util_dump_mem"
ignore = true
[[object.function]]
name = "util_dump_buffer"
# We have our Debug impl on buffers
ignore = true
[[object.function]]
name = "protection_select_system"
# unsupported array type
ignore = true
[[object.function]]
name = "calculate_linear_regression"
ignore = true
[[object.function]]
pattern = "value_.*"
ignore = true
[[object.function]]
pattern = ".*_get_type"
ignore = true
[[object.function]]
pattern = "tag_.*"
ignore = true
[[object.function]]
pattern = "segtrap_.*"
ignore = true
[[object.function]]
pattern = "util_[g]?double_.*"
ignore = true
[[object.function]]
pattern = "util_fraction_.*"
ignore = true
[[object.function]]
pattern = "util_greatest_.*"
ignore = true
[[object.function]]
pattern = "util_[g]?uint64.*"
ignore = true
[[object.function]]
name = "deinit"
ignore = true
[[object.function]]
name = "util_set_object_arg"
ignore = true
[[object.function]]
name = "util_seqnum_compare"
ignore = true
[[object.function]]
name = "dynamic_type_register"
ignore = true
[[object.function]]
name = "flow_get_name"
ignore = true
[[object.function]]
name = "filename_to_uri"
ignore = true
[[object.function]]
name = "is_initialized"
ignore = true
[[object.function]]
name = "debug_add_log_function"
ignore = true
[[object.function]]
name = "debug_remove_log_function"
ignore = true
[[object.function]]
name = "debug_remove_log_function_by_data"
ignore = true
[[object.function]]
name = "debug_construct_term_color"
ignore = true
[[object.function]]
name = "debug_construct_win_color"
ignore = true
[[object.function]]
name = "debug_get_all_categories"
ignore = true
[[object.function]]
name = "debug_get_color_mode"
ignore = true
[[object.function]]
pattern = "debug_log.*"
ignore = true
[[object.function]]
name = "debug_set_color_mode"
ignore = true
[[object.function]]
name = "debug_set_color_mode_from_string"
ignore = true
[[object.function]]
name = "error_get_message"
ignore = true
[[object.function]]
name = "flow_to_quark"
ignore = true
[[object.function]]
name = "formats_contains"
ignore = true
[[object.function]]
pattern = "info_.*"
ignore = true
[[object.function]]
pattern = "print.*"
ignore = true
[[object.function]]
pattern = "init.*"
ignore = true
[[object.function]]
pattern = "param_spec_.*"
ignore = true
[[object.function]]
name = "is_caps_features"
ignore = true
[[object.function]]
name = "make_element_message_details"
ignore = true
[[object.function]]
name = "util_array_binary_search"
ignore = true
[[object.function]]
name = "util_get_object_array"
ignore = true
[[object.function]]
name = "util_set_object_array"
ignore = true
[[object.function]]
name = "util_set_value_from_string"
ignore = true
[[object.function]]
pattern = "parse.*full"
# wrong mutable for context parameter
ignore = true
[[object.function]]
name = "update_registry"
[object.function.return]
bool_return_is_error = "Failed to update the registry"
[[object.function]]
name = "util_group_id_next"
# newtype wrapper
ignore = true
[[object.function]]
name = "util_seqnum_next"
# newtype wrapper
ignore = true
[[object.function]]
name = "protection_filter_systems_by_available_decryptors"
# wrong array annotations
ignore = true
[[object.function]]
pattern = "clear_.*"
# C memory management
ignore = true
[[object.function]]
name = "debug_get_stack_trace"
# can be called before gst_init()
assertion = "skip"
[object.function.return]
nullable_return_is_error = "Failed to get stack trace"
[[object.function]]
name = "get_main_executable_path"
[object.function.return]
nullable_return_is_error = "Failed to get main executable path"
[[object.function]]
name = "debug_set_default_threshold"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_get_default_threshold"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_set_threshold_for_name"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_set_threshold_from_string"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_unset_threshold_for_name"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_print_stack_trace"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_is_active"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_is_colored"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_set_active"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_set_colored"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_add_ring_buffer_logger"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_remove_ring_buffer_logger"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "debug_ring_buffer_logger_get_logs"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "util_get_timestamp"
# can be called before gst_init()
assertion = "skip"
[object.function.return]
# always returns a value
mandatory = true
[[object.function]]
name = "version"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "version_string"
# can be called before gst_init()
assertion = "skip"
[[object.function]]
name = "type_is_plugin_api"
# We implement it in an extension Trait
ignore = true
[[object.function]]
name = "tracing_register_hook"
# implemented as part of Tracer subclassing
manual = true
[[object.function]]
name = "tracing_get_active_tracers"
rename = "active_tracers"
# Use glib::List as return type
manual = true
[[object.function]]
name = "type_mark_as_plugin_api"
# Needs integration into subclassing infrastructure
ignore = true
[[object]]
name = "Gst.Allocator"
status = "generate"
[[object.function]]
name = "register"
# Steals the string name in < 1.20.5
manual = true
[[object.function]]
name = "alloc"
[object.function.return]
nullable_return_is_error = "Failed to allocate memory"
[[object.function.parameter]]
name = "params"
const = true
[[object]]
name = "Gst.Bin"
status = "generate"
trait_name = "GstBinExt"
[[object.signal]]
name = "do-latency"
# Use Result<(), glib::BoolError>
manual = true
[[object.function]]
name = "add_many"
# Implemented by repeatedly calling add()
manual = true
[[object.function]]
name = "remove_many"
# Implemented by repeatedly calling remove()
manual = true
[[object.function]]
name = "iterate_all_by_element_factory_name"
manual = true
[[object.function]]
name = "iterate_all_by_interface"
manual = true
[[object.function]]
name = "iterate_elements"
manual = true
[[object.function]]
name = "iterate_recurse"
manual = true
[[object.function]]
name = "iterate_sinks"
manual = true
[[object.function]]
name = "iterate_sorted"
manual = true
[[object.function]]
name = "iterate_sources"
manual = true
[[object.function]]
name = "add"
[object.function.return]
bool_return_is_error = "Failed to add element"
[[object.function]]
name = "remove"
[object.function.return]
bool_return_is_error = "Failed to remove element"
[[object.function]]
name = "recalculate_latency"
[object.function.return]
bool_return_is_error = "Failed to recalculate latency"
[[object.function]]
name = "sync_children_states"
[object.function.return]
bool_return_is_error = "Failed to sync children states"
[[object]]
name = "Gst.BinFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Buffer"
status = "manual"
ref_mode = "ref"
[[object.function]]
name = "map"
# Readable and writable variant dealing with mutability
# Non-into variants available under BufferRef
rename = "into_mapped_buffer_readable"
[[object.function]]
name = "unmap"
ignore = true
[[object]]
name = "Gst.BufferCopyFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.BufferFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.BufferList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.BufferPool"
status = "generate"
manual_traits = ["BufferPoolExtManual"]
[[object.function]]
pattern = "config_.*"
# A different type
ignore = true
[[object.function]]
name = "get_config"
# A different type
manual = true
[[object.function]]
name = "set_config"
# Takes ownership
manual = true
[[object.function]]
name = "acquire_buffer"
# Params and return value
manual = true
[[object.function]]
name = "release_buffer"
# Takes ownership
manual = true
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to activate buffer pool"
[[object]]
name = "Gst.BufferPoolAcquireFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Bus"
status = "generate"
final_type = true
[[object.function]]
name = "set_sync_handler"
# Into<Option<_>> makes this hard to use
manual = true
[[object.function]]
name = "add_signal_watch_full"
# Priority
manual = true
[[object.function]]
name = "timed_pop_filtered"
# Uses enum as flags
manual = true
[[object.function]]
name = "pop_filtered"
# Uses enum as flags
manual = true
[[object.function]]
name = "poll"
# Uses enum as flags
manual = true
[[object.function]]
name = "create_watch"
# More convenient manual implementation
manual = true
[[object.function]]
name = "add_watch"
# More specific trait bounds possible for the closure
manual = true
[[object.function]]
name = "add_watch_full"
# More specific trait bounds possible for the closure
manual = true
[[object.function]]
name = "remove_watch"
[object.function.return]
bool_return_is_error = "Bus has no event source"
[[object.signal]]
name = "message"
concurrency = "send"
[[object.function]]
name = "post"
# transfer ownership of the message
manual = true
[[object]]
name = "Gst.Caps"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ChildProxy"
status = "generate"
manual_traits = ["ChildProxyExtManual"]
[[object.function]]
name = "get_property"
rename = "child_property"
manual = true
[[object.function]]
name = "set_property"
rename = "set_child_property"
manual = true
[[object.function]]
name = "lookup"
manual = true
[[object]]
name = "Gst.Clock"
status = "generate"
manual_traits = ["ClockExtManual"]
[[object.function]]
name = "adjust_with_calibration"
# Associated function
manual = true
[[object.function]]
name = "unadjust_with_calibration"
# Associated function
manual = true
[[object.function]]
name = "new_periodic_id"
manual = true
[[object.function]]
name = "periodic_id_reinit"
manual = true
[[object.function]]
name = "new_single_shot_id"
manual = true
[[object.function]]
name = "single_shot_id_reinit"
manual = true
[[object.function]]
name = "add_observation"
[[object.function.parameter]]
name = "slave"
mandatory = true
[[object.function.parameter]]
name = "master"
mandatory = true
[[object.function]]
name = "add_observation_unapplied"
[[object.function.parameter]]
name = "slave"
mandatory = true
[[object.function.parameter]]
name = "master"
mandatory = true
[[object.function.parameter]]
name = "internal"
mandatory = true
[[object.function.parameter]]
name = "external"
mandatory = true
[[object.function.parameter]]
name = "rate_num"
mandatory = true
[[object.function.parameter]]
name = "rate_denom"
mandatory = true
[[object.function]]
name = "adjust_unlocked"
[[object.function.parameter]]
name = "internal"
mandatory = true
[[object.function]]
name = "get_calibration"
[[object.function.parameter]]
name = "internal"
mandatory = true
[[object.function.parameter]]
name = "external"
mandatory = true
[[object.function.parameter]]
name = "rate_num"
mandatory = true
[[object.function.parameter]]
name = "rate_denom"
mandatory = true
[[object.function]]
name = "get_internal_time"
[object.function.return]
mandatory = true
[[object.function]]
name = "get_resolution"
[object.function.return]
mandatory = true
[[object.function]]
name = "set_calibration"
[[object.function.parameter]]
name = "internal"
mandatory = true
[[object.function.parameter]]
name = "external"
mandatory = true
[[object.function.parameter]]
name = "rate_num"
mandatory = true
[[object.function.parameter]]
name = "rate_denom"
mandatory = true
[[object.function]]
name = "set_master"
[object.function.return]
bool_return_is_error = "Failed to set master clock"
[[object.function]]
name = "set_resolution"
[[object.function.parameter]]
name = "resolution"
mandatory = true
[object.function.return]
mandatory = true
[[object.function]]
name = "unadjust_unlocked"
[[object.function.parameter]]
name = "external"
mandatory = true
[[object.function]]
name = "wait_for_sync"
[object.function.return]
bool_return_is_error = "Timed out waiting for sync"
[[object]]
name = "Gst.ClockFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.ClockID"
status = "manual"
[[object.function]]
name = "compare_func"
rename = "compare_by_time"
[[object]]
name = "Gst.ClockReturn"
status = "generate"
must_use = true
[object.conversion_type]
variant = "Result"
ok_type = "ClockSuccess"
err_type = "ClockError"
[[object]]
name = "Gst.ClockTime"
status = "manual"
conversion_type = "Option"
[[object]]
name = "Gst.ClockType"
status = "generate"
[[object.member]]
name = "tai"
version = "1.18"
[[object]]
name = "Gst.Context"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ControlBinding"
status = "generate"
manual_traits = ["ControlBindingExtManual"]
generate_builder = true
[[object.function]]
name = "get_g_value_array"
manual = true
[[object.function]]
name = "get_value"
[[object.function.parameter]]
name = "timestamp"
mandatory = true
[[object.function]]
name = "sync_values"
[[object.function.parameter]]
name = "timestamp"
mandatory = true
[[object]]
name = "Gst.ControlSource"
status = "generate"
manual_traits = ["ControlSourceExtManual"]
generate_builder = true
[[object.function]]
name = "control_source_get_value"
rename = "value"
[[object.function.parameter]]
name = "timestamp"
mandatory = true
[[object.function]]
name = "control_source_get_value_array"
manual = true
[[object]]
name = "Gst.CoreError"
status = "generate"
[[object.member]]
name = "num_errors"
ignore = true
[[object]]
name = "Gst.DateTime"
status = "generate"
[[object.derive]]
# Don't auto-implement traits
name = ""
[[object.function]]
name = "new"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "new_local_time"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "new_y"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "new_ym"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "new_ymd"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_month"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_day"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_hour"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_minute"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_second"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_microsecond"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "get_time_zone_offset"
# Needs manual checking of invariants
manual = true
[[object.function]]
name = "new_from_g_date_time"
# Function only ever returns NULL if the argument is NULL
[[object.function.parameter]]
name = "dt"
nullable = false
[object.function.return]
nullable = false
[[object.function]]
name = "to_g_date_time"
[object.function.return]
nullable_return_is_error = "Can't create glib::DateTime from DateTime"
[[object.function]]
name = "new_from_iso8601_string"
[object.function.return]
nullable_return_is_error = "Failed to create DateTime from ISO-8601 string"
[[object.function]]
name = "to_iso8601_string"
[object.function.return]
nullable_return_is_error = "Failed to create ISO-8601 string from DateTime"
[[object.function]]
name = "new_from_unix_epoch_local_time"
[object.function.return]
nullable_return_is_error = "Can't create DateTime from UNIX epoch"
[[object.function]]
name = "new_from_unix_epoch_local_time_usecs"
[object.function.return]
nullable_return_is_error = "Can't create DateTime from UNIX epoch"
[[object.function]]
name = "new_from_unix_epoch_utc"
[object.function.return]
nullable_return_is_error = "Can't create DateTime from UNIX epoch"
[[object.function]]
name = "new_from_unix_epoch_utc_usecs"
[object.function.return]
nullable_return_is_error = "Can't create DateTime from UNIX epoch"
[[object]]
name = "Gst.DebugLevel"
status = "generate"
[[object.member]]
name = "count"
ignore = true
[[object]]
name = "Gst.Device"
status = "generate"
[[object.function]]
name = "reconfigure_element"
[object.function.return]
bool_return_is_error = "Failed to reconfigure the element to use this device"
[[object.function]]
name = "create_element"
[object.function.return]
nullable_return_is_error = "Failed to create element for device"
[[object]]
name = "Gst.DeviceMonitor"
status = "generate"
manual_traits = ["DeviceMonitorExtManual"]
[[object.function]]
name = "add_filter"
# Return Option<DeviceMonitorFilterId>
manual = true
[[object.function]]
name = "start"
[object.function.return]
bool_return_is_error = "Failed to start"
[[object.function]]
name = "remove_filter"
# Use DeviceMonitorFilterId and return Result<(), glib::BoolError>
manual = true
[[object.function]]
name = "get_devices"
# Use glib::List as return type
manual = true
[[object]]
name = "Gst.DeviceProvider"
status = "generate"
manual_traits = ["DeviceProviderExtManual"]
[[object.function]]
name = "start"
[object.function.return]
bool_return_is_error = "Failed to start"
[[object.function]]
name = "register"
manual = true
[[object.function]]
name = "get_metadata"
# better manual function
manual = true
[[object.function]]
name = "get_devices"
# Use glib::List as return type
manual = true
[[object]]
name = "Gst.DeviceProviderFactory"
status = "generate"
final_type = true
[[object.function]]
name = "list_get_device_providers"
rename = "factories"
# Use glib::List as return type
manual = true
[[object.function]]
name = "get_metadata"
# Use str as return type
manual = true
[[object]]
name = "Gst.Element"
status = "generate"
manual_traits = ["ElementExtManual"]
# Manual implementation provides associated functions on `Element`,
# but gir considers these methods on `ElementExtManual` in the docs.
[[object.function]]
name = "link_many"
manual = true
[[object.function]]
name = "unlink_many"
manual = true
[[object.function]]
name = "register"
manual = true
[[object.function]]
name = "call_async"
# more specific closure type possible
manual = true
[[object.function]]
name = "set_base_time"
[[object.function.parameter]]
name = "time"
mandatory = true
[[object.function]]
name = "get_current_running_time"
# manual implementation also works for earlier versions
manual = true
[[object.function]]
name = "get_current_clock_time"
# manual implementation also works for earlier versions
manual = true
[[object.function]]
name = "get_request_pad"
# rename to more explicit name and avoid conflict with `request_pad`
rename = "request_pad_simple"
# Renamed version is not deprecated
manual = true
[[object.function]]
name = "request_pad_simple"
# see above
manual = true
[[object.function]]
name = "post_message"
# takes ownership of message
manual = true
[[object.function]]
name = "add_pad"
[object.function.return]
bool_return_is_error = "Failed to add pad"
[[object.function]]
name = "remove_pad"
[object.function.return]
bool_return_is_error = "Failed to remove pad"
# Manual implementations with better error reporting
[[object.function]]
name = "link"
manual = true
[[object.function]]
name = "link_filtered"
manual = true
[[object.function.parameter]]
name = "filter"
# Can use `link` instead
nullable = false
[[object.function]]
name = "link_pads"
manual = true
[[object.function]]
name = "link_pads_filtered"
manual = true
[[object.function.parameter]]
name = "filter"
# Can use `link` instead
nullable = false
[[object.function]]
name = "link_pads_full"
manual = true
[[object.function]]
name = "set_clock"
[object.function.return]
bool_return_is_error = "Failed to set clock"
[[object.function]]
name = "sync_state_with_parent"
[object.function.return]
bool_return_is_error = "Failed to sync state with parent"
[[object.function]]
name = "query"
# correct mutability
manual = true
[[object.function]]
name = "send_event"
# Pass by value
manual = true
[[object.function]]
name = "get_context_unlocked"
# Unsafe
ignore = true
[[object.function]]
name = "add_property_deep_notify_watch"
# ulong
manual = true
[[object.function]]
name = "add_property_notify_watch"
# ulong
manual = true
[[object.function]]
name = "remove_property_notify_watch"
# ulong
manual = true
[[object.function]]
name = "query_duration"
# formatted value
manual = true
[[object.function]]
name = "query_position"
# formatted value
manual = true
[[object.function]]
name = "query_convert"
# formatted value
manual = true
[[object.function]]
name = "seek"
# formatted value
manual = true
[[object.function]]
name = "seek_simple"
# formatted value
manual = true
[[object.function]]
name = "state_change_return_get_name"
# Wrong place
ignore = true
[[object.function]]
name = "state_get_name"
# Wrong place
ignore = true
[[object.function]]
name = "get_metadata"
# better manual function
manual = true
[[object.function]]
name = "get_pad_template"
# better manual function
manual = true
[[object.function]]
name = "get_pad_template_list"
# better manual function
manual = true
# Limited subset of `MessageType`,
# see `ElementMessageType`.
[[object.function]]
name = "message_full"
manual = true
[[object.function]]
name = "message_full_with_details"
manual = true
# Return iterators
[[object.function]]
name = "iterate_pads"
manual = true
[[object.function]]
name = "iterate_sink_pads"
manual = true
[[object.function]]
name = "iterate_src_pads"
manual = true
[[object.function]]
name = "type_set_skip_documentation"
# Needs integration into subclassing infrastructure
ignore = true
[[object]]
name = "Gst.ElementFactory"
status = "generate"
final_type = true
[[object.function]]
name = "create"
rename = "create_with_name"
manual = true
[[object.function]]
name = "make"
rename = "make_with_name"
manual = true
[[object.function]]
name = "create_full"
# varargs
ignore = true
[[object.function]]
name = "create_valist"
# varargs
ignore = true
[[object.function]]
name = "create_with_properties"
# separate name/value arrays need to be merged
manual = true
[[object.function]]
name = "make_full"
# varargs
ignore = true
[[object.function]]
name = "make_valist"
# varargs
ignore = true
[[object.function]]
name = "make_with_properties"
# separate name/value arrays need to be merged
manual = true
[[object.function]]
name = "get_static_pad_templates"
# Use glib::List as return type
manual = true
[[object.function]]
name = "list_is_type"
rename = "has_type"
# Renamed flags type
manual = true
[[object.function]]
name = "list_filter"
# can_{sink,src}_{all,any}_caps() around an iterator is the same
ignore = true
[[object.function]]
name = "list_get_elements"
rename = "factories_with_type"
# Use glib::List as return type
manual = true
[[object.function]]
name = "get_metadata"
# Use str as return type
manual = true
[[object]]
name = "Gst.ElementFactoryListType"
status = "manual"
conversion_type = "scalar"
[[object]]
name = "Gst.ElementFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Event"
status = "manual"
ref_mode = "ref"
[[object.function]]
name = "new_caps"
# Moved to CapsBuilder::new()
ignore = true
[[object.function]]
name = "new_qos"
# Moved to QosBuilder::new()
ignore = true
[[object.function]]
name = "new_seek"
# Moved to SeekBuilder::new()
ignore = true
[[object.function]]
name = "parse_stream"
# Moved to StreamStart::stream()
ignore = true
[[object.function]]
name = "parse_stream_start"
# Moved to StreamStart::stream_id()
ignore = true
[[object]]
name = "Gst.EventType"
status = "generate"
[[object.derive]]
name = "Debug, PartialEq, Eq, Hash"
[[object.member]]
name = "instant_rate_change"
version = "1.18"
[[object.member]]
name = "instant_rate_sync_time"
version = "1.18"
[[object]]
name = "Gst.FlowReturn"
status = "generate"
must_use = true
[object.conversion_type]
variant = "Result"
ok_type = "FlowSuccess"
err_type = "FlowError"
[[object]]
name = "Gst.Format"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object.function]]
name = "register"
# Needs manual work
ignore = true
[[object]]
name = "Gst.GhostPad"
status = "generate"
[[object.function]]
name = "set_target"
[object.function.return]
bool_return_is_error = "Failed to set target"
[[object.function]]
name = "new"
rename = "with_target"
manual = true
[[object.function]]
name = "new_no_target"
rename = "new"
manual = true
[[object.function]]
name = "new_from_template"
rename = "from_template_with_target"
manual = true
[[object.function]]
name = "new_no_target_from_template"
rename = "from_template"
manual = true
[[object.function]]
name = "construct"
ignore = true
[[object.function]]
name = "activate_mode_default"
# wrong instance type
manual = true
[[object.function]]
name = "internal_activate_mode_default"
# wrong instance type
manual = true
[[object]]
name = "Gst.LibraryError"
status = "generate"
[[object.member]]
name = "num_errors"
ignore = true
[[object]]
name = "Gst.Memory"
status = "manual"
[[object.function]]
name = "map"
# Readable and writable variant dealing with mutability
# Non-into variants available under MemoryRef
rename = "into_mapped_memory_readable"
[[object.function]]
name = "unmap"
ignore = true
[[object]]
name = "Gst.MemoryFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Message"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.MetaFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Object"
# For renaming the trait...
status = "generate"
trait_name = "GstObjectExt"
[[object.function]]
name = "set_name"
# Don't allow changing the name at random times
ignore = true
[[object.property]]
name = "name"
# There are accessor functions for this
ignore = true
[[object.function]]
name = "ref_sink"
# Takes a raw pointer
ignore = true
[[object.function]]
name = "get_name"
[object.function.return]
# Nullable state only occurs during instance init and finalize
# which cannot be observed from Rust
nullable = false
[[object.function]]
name = "set_parent"
[object.function.return]
bool_return_is_error = "Failed to set parent object"
[[object.function]]
name = "sync_values"
[[object.function.parameter]]
name = "timestamp"
mandatory = true
[object.function.return]
bool_return_is_error = "Failed to sync values"
[[object.function]]
name = "value"
[[object.function.parameter]]
name = "timestamp"
mandatory = true
[[object.function]]
name = "get_g_value_array"
ignore = true
[[object.function]]
name = "add_control_binding"
[object.function.return]
bool_return_is_error = "Failed to add control binding"
[[object]]
name = "Gst.ObjectFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Pad"
status = "generate"
manual_traits = ["PadExtManual"]
[[object.function]]
name = "link_maybe_ghosting"
[object.function.return]
bool_return_is_error = "Failed to link pads, possibly ghosting"
[[object.function]]
name = "link_maybe_ghosting_full"
[object.function.return]
bool_return_is_error = "Failed to link pads, possibly ghosting"
[[object.function]]
name = "unlink"
[object.function.return]
bool_return_is_error = "Failed to unlink pad"
[[object.function]]
name = "pause_task"
[object.function.return]
bool_return_is_error = "Failed to pause pad task"
[[object.function]]
name = "stop_task"
[object.function.return]
bool_return_is_error = "Failed to stop pad task"
[[object.function]]
name = "set_active"
[object.function.return]
bool_return_is_error = "Failed to activate pad"
[[object.function]]
name = "activate_mode"
[object.function.return]
bool_return_is_error = "Failed to activate mode pad"
[[object.function]]
name = "remove_probe"
# Don't use a ulong
manual = true
[[object.function]]
name = "chain"
# Move buffer
manual = true
[[object.function]]
name = "push"
# Move buffer
manual = true
[[object.function]]
name = "chain_list"
# Move buffer
manual = true
[[object.function]]
name = "push_list"
# Move buffer
manual = true
[[object.function]]
name = "pull_range"
# Buffer can be NULL
manual = true
[[object.function]]
name = "get_range"
# Buffer can be NULL
manual = true
[[object.function]]
name = "get_last_flow_return"
# Use Result<FlowSuccess, FlowError>
rename = "last_flow_result"
[[object.function]]
name = "query"
# Correct mutability
manual = true
[[object.function]]
name = "peer_query"
# Correct mutability
manual = true
[[object.function]]
name = "query_default"
# Correct mutability
manual = true
[[object.function]]
name = "proxy_query_caps"
# Correct mutability
manual = true
[[object.function]]
name = "proxy_query_accept_caps"
# Correct mutability
manual = true
[[object.function]]
name = "event_default"
# Pass by value
manual = true
[[object.function]]
name = "push_event"
# Pass by value
manual = true
[[object.function]]
name = "send_event"
# Pass by value
manual = true
[[object.function]]
name = "new"
# Also has builder()
manual = true
[[object.function]]
name = "new_from_template"
# Also has builder_with_template()
rename = "from_template"
manual = true
[[object.function]]
name = "new_from_static_template"
# Also has builder_with_static_template()
rename = "from_static_template"
manual = true
[[object.function]]
name = "query_duration"
# formatted value
manual = true
[[object.function]]
name = "query_position"
# formatted value
manual = true
[[object.function]]
name = "query_convert"
# formatted value
manual = true
[[object.function]]
name = "peer_query_duration"
# formatted value
manual = true
[[object.function]]
name = "peer_query_position"
# formatted value
manual = true
[[object.function]]
name = "peer_query_convert"
# formatted value
manual = true
[[object.function]]
name = "link_get_name"
# Wrong place
manual = true
[[object.function]]
pattern = "set_.*_function_full"
# More specific closure trait bounds possible
manual = true
[[object.function]]
name = "start_task"
# More specific closure trait bounds possible
manual = true
[[object.function]]
name = "sticky_events_foreach"
# Complex closure argument handling
manual = true
[[object.function]]
name = "get_sticky_event"
# More convenient API
manual = true
[[object.function]]
name = "add_probe"
# Complex closure argument handling
manual = true
[[object.property]]
name = "template"
# Has a proper getter
ignore = true
[[object]]
name = "Gst.PadDirection"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.PadFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.PadLinkCheck"
status = "generate"
[[object.member]]
name = "nothing"
ignore = true
[[object]]
name = "Gst.PadLinkReturn"
status = "generate"
must_use = true
[object.conversion_type]
variant = "Result"
ok_type = "PadLinkSuccess"
err_type = "PadLinkError"
[[object]]
name = "Gst.PadPresence"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.PadProbeType"
status = "generate"
[[object.member]]
name = "invalid"
ignore = true
[[object]]
name = "Gst.PadTemplate"
status = "generate"
final_type = true
[[object.function]]
name = "new"
[object.function.return]
nullable_return_is_error = "Failed to create pad template"
[[object.function]]
name = "new_with_gtype"
[object.function.return]
nullable_return_is_error = "Failed to create pad template"
[[object.function]]
name = "new_from_static_pad_template_with_gtype"
# static pad template manual
manual = true
[[object.function]]
name = "get_caps"
# directly access the field
manual = true
[[object.function]]
name = "set_documentation_caps"
# builder
manual = true
[[object.function]]
name = "get_documentation_caps"
# directly access the field
manual = true
[[object.property]]
name = "name-template"
# directly access the field and borrow the string
manual = true
[[object.property]]
name = "direction"
# directly access the field
manual = true
[[object.property]]
name = "presence"
# directly access the field
manual = true
[[object.property]]
name = "gtype"
# directly access the field
manual = true
[[object]]
name = "Gst.ParseContext"
status = "manual"
ref_mode = "ref-mut"
[[object]]
name = "Gst.ParseFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.Pipeline"
status = "generate"
[[object.function]]
name = "get_delay"
[object.function.return]
mandatory = true
[[object.function]]
name = "set_delay"
[[object.function.parameter]]
name = "delay"
mandatory = true
[[object.function]]
name = "get_clock"
# useless function that is equal to the GstElement one
ignore = true
[[object.function]]
name = "set_clock"
# useless function that is equal to the GstElement one
ignore = true
[[object.function]]
name = "get_bus"
# useless function that is equal to the GstElement one
ignore = true
[[object]]
name = "Gst.PipelineFlags"
status = "generate"
[[object.member]]
name = "last"
ignore = true
[[object]]
name = "Gst.Plugin"
status = "generate"
final_type = true
[[object.function]]
pattern = "register_static.*"
# Needs manual implementation
ignore = true
[[object.function]]
name = "list_free"
# useless and unsafe
ignore = true
[[object.function]]
name = "set_cache_data"
# pass by value
manual = true
[[object.function]]
name = "get_cache_data"
# structure ref
manual = true
[[object.function]]
name = "load"
[object.function.return]
nullable_return_is_error = "Failed to load plugin"
[[object.function]]
name = "load_by_name"
[object.function.return]
nullable_return_is_error = "Failed to load plugin"
[[object.function]]
name = "get_name"
rename = "plugin_name"
[[object]]
name = "Gst.PluginDependencyFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.PluginFeature"
status = "generate"
manual_traits = ["PluginFeatureExtManual"]
[[object.function]]
pattern = "list_.*"
ignore = true
[[object.function]]
name = "rank_compare_func"
ignore = true
[[object.function]]
name = "get_rank"
manual = true
[[object.function]]
name = "set_rank"
manual = true
[[object.function]]
name = "load"
manual = true
[[object]]
name = "Gst.Preset"
status = "generate"
[[object.function]]
name = "set_app_dir"
[object.function.return]
bool_return_is_error = "Failed to set app preset directory"
[[object.function]]
name = "delete_preset"
[object.function.return]
bool_return_is_error = "Failed to delete preset"
[[object.function]]
name = "load_preset"
[object.function.return]
bool_return_is_error = "Failed to load preset"
[[object.function]]
name = "save_preset"
[object.function.return]
bool_return_is_error = "Failed to save preset"
[[object.function]]
name = "rename_preset"
[object.function.return]
bool_return_is_error = "Failed to rename preset"
[[object.function]]
name = "set_meta"
[object.function.return]
bool_return_is_error = "Failed to set preset meta"
[[object]]
name = "Gst.Promise"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.ProxyPad"
status = "generate"
manual_traits = ["ProxyPadExtManual"]
[[object.function]]
name = "chain_default"
# Buffer move
manual = true
[[object.function]]
name = "chain_list_default"
# Buffer move
manual = true
[[object.function]]
name = "getrange_default"
# Buffer move
manual = true
[[object]]
name = "Gst.Query"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.Rank"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug"
[[object]]
name = "Gst.Registry"
status = "generate"
final_type = true
[[object.function]]
pattern = "fork_.*"
ignore = true
[[object.function]]
name = "add_feature"
[object.function.return]
bool_return_is_error = "Failed to add feature"
[[object.function]]
name = "add_plugin"
[object.function.return]
bool_return_is_error = "Failed to add plugin"
[[object.function]]
name = "feature_filter"
rename = "features_filtered"
# Use glib::List as return type
manual = true
[[object.function]]
name = "get_feature_list"
rename = "features"
# Use glib::List as return type
manual = true
[[object.function]]
name = "get_feature_list_by_plugin"
rename = "features_by_plugin"
# Use glib::List as return type
manual = true
[[object.function]]
name = "get_plugin_list"
rename = "plugins"
# Use glib::List as return type
manual = true
[[object.function]]
name = "plugin_filter"
rename = "plugins_filtered"
# Use glib::List as return type
manual = true
[[object]]
name = "Gst.ResourceError"
status = "generate"
[[object.member]]
name = "num_errors"
ignore = true
[[object]]
name = "Gst.Sample"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.SeekFlags"
status = "generate"
[[object.member]]
name = "trickmode_forward_predicted"
version = "1.18"
[[object.member]]
name = "instant_rate_change"
version = "1.18"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.SegmentFlags"
status = "generate"
[[object.member]]
name = "trickmode_forward_predicted"
version = "1.18"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.StackTraceFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.State"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.StateChangeReturn"
status = "generate"
must_use = true
[object.conversion_type]
variant = "Result"
ok_type = "StateChangeSuccess"
err_type = "StateChangeError"
[[object]]
name = "Gst.Stream"
status = "generate"
final_type = true
[[object]]
name = "Gst.StreamCollection"
status = "generate"
final_type = true
[[object.function]]
name = "new"
# Manual builder pattern
manual = true
[[object.function]]
name = "add_stream"
# Ignore return value which is always `true`
manual = true
[[object.property]]
name = "upstream-id"
generate = ["get"]
[[object]]
name = "Gst.StreamError"
status = "generate"
[[object.member]]
name = "num_errors"
ignore = true
[[object]]
name = "Gst.StreamFlags"
status = "generate"
[[object.member]]
name = "none"
ignore = true
[[object]]
name = "Gst.Structure"
status = "manual"
ref_mode = "ref"
# Functions moved to `StructureRef`
[[object.function]]
name = "set"
ignore = true
[[object.function]]
name = "set_value"
ignore = true
[[object.function]]
name = "get_value"
ignore = true
[[object.function]]
name = "id_get_value"
rename = "value_by_quark"
ignore = true
[[object.function]]
name = "take_value"
rename = "set_value"
ignore = true
[[object.function]]
name = "id_take_value"
rename = "set_value_by_quark"
ignore = true
[[object.function]]
name = "get_name"
rename = "name"
ignore = true
[[object.function]]
name = "get_name_id"
rename = "name_quark"
ignore = true
[[object.function]]
name = "set_name"
ignore = true
[[object.function]]
name = "has_field"
ignore = true
[[object.function]]
name = "has_field_with_typed"
rename = "has_field_with_type"
ignore = true
[[object.function]]
name = "id_has_field"
rename = "has_field_by_quark"
ignore = true
[[object.function]]
name = "id_has_field_typed"
rename = "has_field_with_type_by_quark"
ignore = true
[[object.function]]
name = "remove_field"
ignore = true
[[object.function]]
name = "remove_fields"
# Repeatedly call remove_field()
ignore = true
[[object.function]]
name = "remove_all_fields"
ignore = true
[[object.function]]
name = "get_nth_field_name"
ignore = true
[[object.function]]
name = "n_fields"
ignore = true
[[object.function]]
name = "can_intersect"
ignore = true
[[object.function]]
name = "intersect"
ignore = true
[[object.function]]
name = "is_subset"
ignore = true
[[object.function]]
name = "fixate"
ignore=true
[[object.function]]
name = "fixate_field"
ignore=true
[[object.function]]
name = "fixate_field_boolean"
ignore=true
[[object.function]]
name = "fixate_field_string"
ignore=true
[[object.function]]
name = "fixate_field_nearest_double"
ignore=true
[[object.function]]
name = "fixate_field_nearest_fraction"
ignore=true
[[object.function]]
name = "fixate_field_nearest_int"
ignore=true
# Not implemented
[[object.function]]
name = "set_parent_refcount"
ignore = true
[[object]]
name = "Gst.TagFlag"
status = "generate"
[[object.member]]
name = "count"
ignore = true
[[object]]
name = "Gst.TagList"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.TagMergeMode"
status = "generate"
[[object.member]]
name = "count"
ignore = true
[[object]]
name = "Gst.TagScope"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.TagSetter"
status = "generate"
manual_traits = ["TagSetterExtManual"]
[[object.function]]
name = "add_tag_value"
manual = true
[[object.function]]
name = "add_tags"
# Takes a raw pointer
ignore = true
[[object]]
name = "Gst.Task"
status = "generate"
# Need work
[[object.function]]
name = "new"
manual = true
[[object.function]]
name = "set_enter_callback"
manual = true
[[object.function]]
name = "set_leave_callback"
manual = true
[[object.function]]
name = "set_lock"
manual = true
[[object.function]]
name = "start"
[object.function.return]
bool_return_is_error = "Failed to start task"
[[object.function]]
name = "stop"
[object.function.return]
bool_return_is_error = "Failed to stop task"
[[object.function]]
name = "pause"
[object.function.return]
bool_return_is_error = "Failed to pause task"
[[object.function]]
name = "resume"
[object.function.return]
bool_return_is_error = "Failed to resume task"
[[object.function]]
name = "join"
[object.function.return]
bool_return_is_error = "Failed to join task"
[[object.function]]
name = "set_state"
[object.function.return]
bool_return_is_error = "Failed to set task state"
[[object]]
name = "Gst.TaskPool"
status = "generate"
manual_traits = ["TaskPoolExtManual"]
[[object.function]]
name = "push"
manual = true
# Moved to TaskHandle
[[object.function]]
name = "join"
ignore = true
[[object.function]]
name = "dispose_handle"
ignore = true
[[object]]
name = "Gst.Toc"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.TocEntry"
status = "manual"
ref_mode = "ref"
[[object]]
name = "Gst.TocEntryType"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.TocLoopType"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.TocScope"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"
[[object]]
name = "Gst.Tracer"
status = "generate"
[[object.function]]
name = "register"
# Manual implementation as inherent to the type.
ignore = true
[[object]]
name = "Gst.TracerFactory"
status = "generate"
[[object.function]]
name = "get_list"
rename = "factories"
# Use glib::List as return type
manual = true
[[object]]
name = "Gst.TypeFindFactory"
status = "generate"
final_type = true
[[object.function]]
name = "call_function"
# Set up native functions in `TypeFind`, calling into trait argument
manual = true
[[object.function]]
name = "get_list"
rename = "factories"
# Use glib::List as return type
manual = true
[[object]]
name = "Gst.TypeFindProbability"
status = "generate"
[[object.derive]]
name = "Debug"
[[object]]
name = "Gst.URIType"
status = "generate"
[[object.derive]]
name = "serde::Serialize, serde::Deserialize"
cfg_condition = "feature = \"serde\""
[[object.derive]]
name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"