[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.CapsIntersectMode", "Gst.ClockEntryType", "Gst.ClockTimeDiff", "Gst.DebugColorFlags", "Gst.DebugGraphDetails", "Gst.EventTypeFlags", "Gst.GapFlags", "Gst.ParseError", "Gst.PluginAPIFlags", "Gst.PluginError", "Gst.PluginFlags", "Gst.ProgressType", "Gst.PromiseResult", "Gst.QOSType", "Gst.SchedulingFlags", "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.DeviceProviderClass", # for docs only "Gst.ElementClass", # for docs only "Gst.IdStr", "Gst.Rank", "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]] name = "util_simplify_fraction" ignore = true [[object.function]] pattern = "util_greatest_.*" ignore = true [[object.function]] pattern = "util_[g]?uint64.*" ignore = true [[object.function]] pattern = "util_(floor|ceil)_log2" 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_print_object" # Can directly use the Debug impl ignore = true [[object.function]] name = "debug_print_segment" # Can directly use the Debug impl 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.function]] name = "util_filename_compare" # Convert return type to `Ordering` manual = true [[object.function]] name = "util_ceil_log2" # can be called before gst_init() assertion = "skip" [[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.function]] name = "new" # Remove the optional `name` argument in favor of using the builder manual = true [[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 = "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> 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" visibility = "crate" [object.function.return] bool_return_is_error = "Bus has no event source" [[object.signal]] name = "message" concurrency = "send" [[object.function]] name = "post" [object.function.return] bool_return_is_error = "Failed to post message" [[object]] name = "Gst.BusSyncReply" status = "generate" exhaustive = 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 = "get_calibration" # Wrong types for the rate manual = true [[object.function]] name = "set_calibration" # Wrong types for the rate 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 = "observation_internal" mandatory = true [[object.function.parameter]] name = "observation_external" mandatory = true [[object.function]] name = "add_observation_unapplied" [[object.function.parameter]] name = "observation_internal" mandatory = true [[object.function.parameter]] name = "observation_external" 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_internal_time" [object.function.return] mandatory = true [[object.function]] name = "get_resolution" [object.function.return] 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 exhaustive = 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 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" [object.function.return] bool_return_is_error = "Failed to post message" [[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.function]] name = "decorate_stream_id_printf" # Varargs ignore = true [[object.function]] name = "decorate_stream_id_printf_valist" # Varargs ignore = true # Return ControlFlow instead of bool [[object.function]] name = "foreach_pad" manual = true [[object.function]] name = "foreach_sink_pad" manual = true [[object.function]] name = "foreach_src_pad" manual = 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.function]] name = "can_sink_all_caps" # Use &CapsRef manual = true [[object.function]] name = "can_src_all_caps" # Use &CapsRef manual = true [[object.function]] name = "can_sink_any_caps" # Use &CapsRef manual = true [[object.function]] name = "can_src_any_caps" # Use &CapsRef 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.function]] name = "to_sticky_ordering" # handle this manually via the `PartialOrd` function ignore = true [[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" # mapping unknown values to defaults status = "manual" must_use = true exhaustive = 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 = "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 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_from_template() rename = "from_template" manual = true [[object.function]] name = "new_from_static_template" # Also has builder_from_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.property]] name = "caps" # Same as `current_caps()` generate = ["notify"] [[object]] name = "Gst.PadDirection" status = "generate" exhaustive = true [[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]] # mapping unknown values to default name = "Gst.PadLinkReturn" status = "manual" must_use = true exhaustive = true [object.conversion_type] variant = "Result" ok_type = "PadLinkSuccess" err_type = "PadLinkError" [[object]] name = "Gst.PadMode" status = "generate" exhaustive = true [[object]] name = "Gst.PadPresence" status = "generate" exhaustive = true [[object.derive]] name = "serde::Serialize, serde::Deserialize" cfg_condition = "feature = \"serde\"" [[object.derive]] name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash" [[object]] name = "Gst.PadProbeReturn" status = "generate" exhaustive = true [[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 = "new" # Remove the optional `name` argument in favor of using the builder manual = true [[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 = "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.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.SeekType" status = "generate" exhaustive = 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.SerializeFlags" status = "generate" [[object.member]] name = "strict" # Changes nullability of gst_structure_serialize() so moved to a # separate function instead ignore = true [[object]] name = "Gst.StackTraceFlags" status = "generate" [[object.member]] name = "none" ignore = true [[object]] name = "Gst.State" status = "generate" exhaustive = true [[object.derive]] name = "serde::Serialize, serde::Deserialize" cfg_condition = "feature = \"serde\"" [[object.derive]] name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash" [[object]] name = "Gst.StateChange" status = "generate" exhaustive = true [[object]] name = "Gst.StateChangeReturn" status = "generate" must_use = true exhaustive = 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" exhaustive = true [[object.derive]] name = "serde::Serialize, serde::Deserialize" cfg_condition = "feature = \"serde\"" [[object.derive]] name = "Debug, PartialEq, Eq, PartialOrd, Ord, Hash"