gstreamer-sys-0.23.0/.cargo_vcs_info.json0000644000000001530000000000100137220ustar { "git": { "sha1": "afd662c94fb14b04b66fc92c9f45782c8dadbcbc" }, "path_in_vcs": "gstreamer/sys" }gstreamer-sys-0.23.0/CHANGELOG.md000064400000000000000000002446721046102023000143430ustar 00000000000000# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html), specifically the [variant used by Rust](http://doc.crates.io/manifest.html#the-version-field). ## [0.23.0] - 2024-07-11 ### Changed - Compatible with gtk-rs-core 0.20 / gtk4-rs 0.9. - Update GStreamer gir files to latest (upcoming) 1.26 APIs. - Minimum support Rust version is updated from 1.70 to 1.71.1. - Move `gst::Meta` tags into separate modules and improve API around them. - Improve `gst::Meta` transform functions and make the API more generic, and as part of that add support the video meta transform. - Pass an immutable instead of mutable output buffer reference to `gst_rtp::RtpHeaderExtension::write()` function. - Make `gst_net::PtpClock::new()` constructor fallible. - Change `gst_rtsp_server::RTSPToken` API to be consistent with `gst::Structure`, specifically add a builder. - Change `from_glib_ptr_borrow()` functions to work with references instead of raw pointers for improved safety. - Improve code generation when building with `panic=abort`. - Change `gst::BufferList` APIs to work with ranges instead of index+length. - Use various `usize` instead of `u32` for various indices in `gst::Buffer`, `gst::Caps`, `gst::Structure` and related APIs. - `gst::Clock` calibration-related API uses plain `u64` instead of `gst::ClockTime` for the clock rate. - `gst::debug!` and related macros use `obj = x` instead of `obj: x` for specifying the target object now. Similar for `imp` and `id`. The old syntax is still supported but deprecated. The new syntax works better with tooling, especially rustfmt. ### Added - Mutable access to the `gst_webrtc::WebRTCSessionDescription` fields. - `gst::StructureBuilder::field_if_some()` and the same for related builders to only set a value if `Some(x)` is provided. - `gst::StructureBuilder::field_from_iter()` and `field_if_not_empty()` for various builders. - `gst::PadBuilder` API for selecting an automatically generated name. - Adapter for the `log` crate around the GStreamer debug log system. This allows the macros from the `log` crate to be output via the GStreamer debug log system. - Bindings for the double click `gst_video::Navigation` event. - Bindings for `gst_pbutils` missing/install plugins API. - Setters for `gst_editing_services::FrameCompositionMeta`. - `ges::UriClipAsset::new()`. ## [0.22.6] - 2024-06-19 ### Fixed - When logging with an id and a formatted log message this would previously panic. - A couple of clippy warnings. ## [0.22.5] - 2024-05-23 ### Fixed - A couple of clippy warnings and compiler warnings about unused imports with latest rustc. - Memory leak in builder for the `SelectStreams` event. - Add parameter validity assertions to various `BufferList` and `Caps` APIs where these assertions were missing to avoid assertions in C. ### Added - `StreamProducer::set_forward_preroll()` API to configure if the preroll buffer should be directly forwarded or not yet. ### Changed - Remove nonsensical gstreamer-video test that fails with latest GStreamer main. - Update to itertools 0.13. ## [0.22.4] - 2024-04-08 ### Added - Implement `From` / `ToValue` for `gst_audio::AudioConverterConfig` and `gst_video::VideoConverterConfig`. ### Changed - Fixed various 1.77 clippy warnings. ## [0.22.3] - 2024-03-19 ### Changed - Change `ges::CompositionMeta` position fields to `f64`s in correspondence with the C API. - Change `gst_analytics::AnalyticsMtdRef::obj_type()` to an `Option` in correspondence with the C API. ### Added - `gst::Fraction::new_raw()` and `from_integer()` const constructors. ## [0.22.2] - 2024-02-26 ### Changed - Update GStreamer gir files and add more new 1.24 API. ### Fixed - Add `gst::Object` as parent class for various `gst_rtp` types. - Handle all already queued messages in `gst::BusStream` instead of just new messages. ### Added - Add `gst::CustomMeta::is_registered()`. ## [0.22.1] - 2024-02-13 ### Changed - Update GStreamer gir files and add more new 1.24 API. ### Fixed - Make `AnalyticsODLocation` struct fields public. - `MetaRefMut::upcast_mut()` returns a mutable reference now. ## [0.22.0] - 2024-02-08 ### Changed - Compatible with gtk-rs-core 0.19 / gtk4-rs 0.8. - Update GStreamer gir files to latest (upcoming) 1.24 APIs. - Various standalone functions were moved to separate modules or methods. - `gst::Rank` is not implemented as an enum but as a struct with associated constants now. - Optimized `gst::Buffer::from_slice()` and `Memory::from_slice()` implementations that have one heap allocation fewer. - Various `gst::Buffer` and `gst::Memory` functions take ranges now instead of offset/size parameters. ### Added - Bindings for `gst_gl::GLContext::thread_add()`, `GLFrameBuffer::draw_to_texture()`. - New `gst_gl::GLVideoFrame` type that replaces `gst_video::VideoFrame` for GL-specific API, and comes with mostly the same interface. - Basic gstreamer-tag bindings. - `gst::Buffer:dump()` and `dump_range()` together with the same API on `gst::Memory` for hex-dumping the whole buffer/memory content. - Implement `Clone` on `gst::MetaRef`. - Bindings for `gst::Buffer::map_range_readable()` and its writable variant. - Array-based accessor for `gst_video::VideoFrame` and `gst_audio::AudioBuffer` plane data. - Support for handling custom authentication in `gstreamer-rtsp-server`. - Accessors for various base class struct fields. - Owned buffer getter for `AudioBuffer` / `VideoFrame`. - `gst_rtp::RTPSourceMeta` bindings. - `gst::macos_main()` bindings. - gstreamer-analytics bindings. ### Fixed - API typo in owned `gst::ReferenceTimestampMeta` reference getter. - Allow variable expansion in `gst::loggable_error!` macro. - `gstreamer-gl-*` crates can build docs again on stable. ### Removed - `gst::Pad::caps()` property getter. Use `current_caps()` instead which does the same thing. - Various deprecated APIs that were deprecated in previous releases. - Getter for a mutable buffer reference from `AudioBuffer` / `VideoFrame` as that allowed invalidating the buffer map. ### Fixed ## [0.21.3] - 2023-12-18 ### Added - Update GStreamer gir files to latest (upcoming) 1.24 APIs. - Add an example for writing subclasses with virtual methods. - Add `gst::ClockTime::absdiff()` and same for similar types. ### Fixed - In `Play` example, set bus to flushing before dropping `Play` instance. - Add missing `docsrs` configuration for correct documentation generation. - Make `gst_pbutils::element_properties` module public. - Add missing `gst_audio::AudioFilterImpl::parent_allowed_caps()`. - Fix assertions in `gst::Memory` copy/share/resize functions. ### Changed - Update to itertool 0.12, pretty-hex 0.4. ## [0.21.2] - 2023-11-11 ### Changed - Update GStreamer gir files to latest (upcoming) 1.24 APIs. - Update to latest gir code generator from the gtk-rs 0.18 branch. ### Fixed - Big endian video format order is correct again. - `gst::MetaRef::has_tags()` and `tags()` API actually works and works based on the tags of the concrete meta instance. - `gst::MetaRef::tags()` returns strings with arbitrary lifetimes now because they're statically stored anyway. - Fix another potential deadlock in `gst_utils::StreamProducer` when sending force-keyunit events. ### Added - Bindings for `gst_video::VBIEncoder` and `VBIParser`. - Accessors for the different `gst::PadProbeData` types on `PadProbeInfo`. - `Default` impl for `gst::AllocationParams`. - `From` / `TryFrom` implementations between formatted types (e.g. `gst::Bytes`) and `usize`. - `gst::MetaRef::copy()` to copy metas from one buffer to another. - `gst::ElementImpl::catch_panic_future()` to wrap a `Future` in such a way that panics are converted to GStreamer error messages and the element is marked as unusable. - `gst_gl::GLDisplay::handle()` to get a raw display handle. ## [0.21.1] - 2023-10-04 ### Changed - Update GStreamer gir files to latest (upcoming) 1.24 APIs. ### Fixed - Use correct media links in the tutorials code. - Fix a couple of new 1.72/1.73 clippy warnings. - Fix description of gstreamer-validate crate. - Copyright/license files for the gstreamer-gl were added. - Ordering of raw video formats follows the rules of latest libgstvideo now. - Fix potential deadlock in `gst_utils::StreamProducer` when sending force-keyunit events. ### Added - `max-time` / `max-bytes` setters to `gst_app::AppSink` builder. - `gst::CustomMeta::register_simple()`. ## [0.21.0] - 2023-08-08 ### Changed - Minimum supported Rust version is updated to 1.70.0. - Compatible with gtk-rs-core 0.18. - `gst::Bin::add_many()`, `remove_many()` and `gst::Element::link_many()`, `unlink_many()` are more generic now. - `gst_base::Aggregator::src_pad()` returns an `AggregatorPad`. - `gst::Bus::add_watch()` now returns a guard value that automatically removes the watch when it goes out of scope. - `gst::Bin`, `Pipeline` and `Pad` constructors don't take the optional name parameter anymore but it can instead be provided via the builder API. - `gst::Pad` and `GhostPad` builders inherit name from the pad template (or target) if possible and no other name is provided explicitly. - The preroll samples and selected sticky events are forwarded to `StreamProducer` consumers. ### Added - Support for the upcoming GStreamer 1.24 APIs. - Support for inline variable names in format strings for error/warning/info messages. - Methods for converting between floating point seconds and `gst::ClockTime`. - Various additions to the gst-validate bindings. - `Display` implementations for error/warning/info messages. - More useful `Debug` implementations for messages, events and queries and `gst_pbutils::DiscovererInfo` related structs. - API for listing/checking `gst::Meta` tags. ## [0.20.7] - 2023-07-05 ### Fixed - Fix `wait-for-eos` property name string in `appsink`. - Fix various memory leaks in `BaseTransform` subclassing bindings. - Mark some GES APIs as `Send+Sync`. ### Added - Implement `DiscovererInfo::debug()` and on related structs. + Add subclassing bindings for `GESFormatter`. ## [0.20.6] - 2023-06-06 ### Added - Getter for the `gst_rtsp_server::RTSPContext` URI field. ### Fixed - `gst_pbutils::DiscovererStreamInfo::stream_id()` can return `NULL`. This is mapped to the empty string for this release to keep backwards compatibility. - `gst_pbutils::DiscovererStreamInfo` iterator methods can be called on any subclass directly now without casting. - Debug logs use the actual function name against instead of the name of a closure generated by the log macros. ### Changed - Minor performance improvements to debug logging. ## [0.20.5] - 2023-04-22 ### Added - `glib::HasParamSpec` impl for miniobjects to allow using them with the properties derive macro. - `Default` impl for `gst_player::Player`. ## [0.20.4] - 2023-04-07 ### Fixed - Work around `gst_webrtc::WebRTCICE::add_candidate()` API breakage in 1.24. ### Changed - Reduce size of `gst_audio::AudioBuffer` and `gst_video::VideoFrame` by a factor of two by not storing an unnecessary copy of the audio/video info. ## [0.20.3] - 2023-03-14 ### Fixed - `gst::ParamSpecArray` uses the correct `glib::Type` now. - Work around accidental ABI breakage in 1.18 gst-rtsp-server `GstRTSPClient`. ### Added - Document `gst_utils::StreamProducer::forward_eos()` default value. ## [0.20.2] - 2023-02-21 ### Added - `glib::HasParamSpec` impl for `gst::ClockTime` - `Default` impl for `gst_play::Play` - Constructors for non-raw `gst_audio::AudioCapsBuilder` / `gst_video::VideoCapsBuilder` ## [0.20.1] - 2023-02-13 ### Fixed - Fix memory leaks when converting a `gst_audio::AudioBuffer` or `gst_video::VideoFrame` to a `gst::Buffer` or FFI type. ## [0.20.0] - 2023-02-10 ### Fixed - Make `gst_gL::GLDisplay::create_context()` `other_context` parameter optional. - Make allocation query caps optional. ### Added - Conversions between `gst::Signed` and `T` and signed integer types. - Bindings for the object lock via `gst::Object::lock()`. - Various `FromIterator`, `Extend` and `From` impls for creating `Caps`, `Structure`, `Buffer`, `BufferList`, `CapsFeatures` and other types. - `PartialEq` impls between owned/borrowed miniobjects/structures. - API for appending items to `gst::Array` and `gst::List`. ### Changed - Compatible with the 0.17 gtk-rs release. - Updated minimum supported Rust version to 1.64. - Require GStreamer 1.22.0 or newer when enabling the `v1_22` feature. - Require the object lock to be taken for various `gst_gl::GLDisplay` methods. - Renamed `gst::TagSetter::add()` to `add_tags()` to avoid name conflict with `Bin::add()`. - Mark various un-extendable enums as exhaustive. - Make use of `glib::GStr` and related API in caps, structure, tags and logging API to reduce temporary string allocations. - Various code optimizations to reduce generated code size and allow more optimal code to be generated. - Reduce size of various types, including reduction of `gst_audio::AudioInfo` from 832 to 320 bytes. - Use actual function name instead of module name in log output. - Change `gst_utils::StreamProducer` API to forward buffers by default and allow temporarily discarding via new `set_discard()` function. ## [0.19.8] - 2023-02-09 ### Changed - Update GStreamer .gir files to 1.22.0 release. ### Fixed - Marked `gst::MessageType` as non-exhaustive. ### Added - Added bindings for `gst::Message::structure_mut()`. - Added subclassing support for `gst_allocators::FdAllocator` and `DmabufAllocator`. ## [0.19.7] - 2023-01-19 ### Fixed - Work around the possibility that the caps in the allocation query can be `NULL` by returning any caps for now. This will be handled properly with a minimal API change in the 0.20 release. ## [0.19.6] - 2023-01-18 ### Fixed - The `AppSrc` and `AppSink` builders now assert that GStreamer is initialized before creating an instance. ## [0.19.5] - 2022-12-27 ### Fixed - Clear video frame values when mapping as GL texture to avoid out of bounds reads when trying to access the GL texture as raw video frame. - Allow returning `Handled` from `BufferList` pad probes. ### Changed - Update GStreamer .gir files to latest 1.21 git. ## [0.19.4] - 2022-12-16 ### Added - Subclassing bindings for `gst_audio::AudioFilter`. ### Fixed - Various new clippy warnings. ### Changed - Update GStreamer .gir files to 1.21.3 release. ## [0.19.3] - 2022-11-28 ### Added - `FromIterator` and `Extend` for `Caps`. - `PartialEq` impls between owned/borrowed miniobjects/structures. ### Fixed - Sticky event ordering for instant-rate-change. ### Changed - Updated GStreamer .gir files to post 1.22.2 release. ## [0.19.2] - 2022-11-13 ### Added - Subclassing support for `gst::Allocator`. - `gst_gl::GLBaseMemory::context()` to retrieve the GL context used by the memory. ### Changed - Updated GStreamer .gir files to 1.22.2 release. ### Fixed - `gst::Allocator::register()` does not cause use-after free with GStreamer < 1.20.5 anymore. - Don't generate version constants in `gstreamer-editing-services-sys` as they are useless and change with every update. ### Changed - Fixed various new clippy warnings. ## [0.19.1] - 2022-10-24 ### Changed - Make it possible to use objects not just as reference in the logging macros. ## [0.19.0] - 2022-10-22 ### Added - Builders for element construction. `gst::ElementFactory::make()` returns a builder now that allows to easily set the name or any other property at construction time. The old API is available as `make_with_name()`. - Builders for `Bin` and `Pipeline` as well as a `Default` trait implementation to simplify object construction. - Builders for `appsrc` and `appsink`, which allow type-safe construction of both elements while also allowing to easily set all their properties at construction time. - Builders for the GStreamer-specific fraction/array param/property specs. - Infrastructure for casting between `gst::Memory` subtypes/supertypes, and make use of it for GL memory. - Bindings for the `gstreamer-allocator` library with support for file descriptor-based and DMABUF memory. - Complete bindings for `gst_video` `Navigation` events. - Constructors for error/warning/info messages with a pre-built `glib::Error`. This also leads to some minor simplification of the existing API. - Accessors for static pads of various base classes for making accessing them cheaper and less error-prone than getting them by name. - Builder for pad templates. - Static PTP clock API for statistics, initialization and deinitialization. - New `gstreamer-utils` crate that currently contains only a `StreamProducer` API. This allows building 1:N bridges between live pipelines via `appsink` / `appsrc` elements. - Bindings for the new `gstreamer-play` library that was added in 1.20. - `gst::Caps::new_empty_simple()` to create caps without fields and just a name. - `gst_audio::AudioCapsBuilder` and `gst_video::VideoCapsBuilder` for building (possibly) unfixed raw audio/videos caps with typed setters for the various fields. This makes it impossible to mix up types and e.g. use an `u32` instead of an `i32` for the width of video caps. - `gst::Buffer::ptr_eq()` to compare buffers by pointer instead of doing a deep comparison, and also `ptr_eq()` on all other miniobject types. - Accessors for `gst_webrtc::WebRTCICECandidateStats` fields. - Bindings for the `gstreamer-validate` API. - Subclassing bindings for `gst_audio::AudioVisualizer` base class for easily writing audio visualization elements. - `gst_pbutils::EncodingProfile` API for element properties. - Support for returning buffer lists from `BaseSrc` / `PushSrc` subclasses. - Support for implementing `gst::Bin::do_latency()`. - Minimal bindings for the `gstreamer-mpegts` library. ### Fixed - Signature for `gst_base::Aggregator::connect_samples_selected()` to remove unnecessary generic parameter and make it straightforward to use. - Various APIs had optional parameters/return types corrected to match the C API more closely. - Logging does not evaluate its arguments anymore if the debug category is not enabled or below the current threshold. - Registering custom metas is now possible without transform function. - `gst::subclass::ElementImpl::request_new_pad()` signature uses a `&str` instead of an owned `String` now. ### Removed - `fragile` dependency and instead use the same functionality from `glib`. - `gst_audio::AudioAggregator` `ignore_inactive_pads` property, which was duplicated from the `Aggregator` base class. ### Changed - Compatible with the 0.16 gtk-rs release. - Updated minimum supported GStreamer version from 1.8 to 1.14. - Updated to the latest GStreamer 1.22 APIs while still supporting up to GStreamer 1.14. Any new 1.22 APIs might still change until the stable 1.22 release. - Updated minimum supported Rust version to 1.63. - In `EventView` / `QueryView`, getters that return references now return references that can outlive the view and are only bound by the lifetime of the corresponding event/query. - In addition `Query`, `Event` and `Message` views are implemented more consistently now, which makes them easier to use and as a side effect allows to pass e.g. more strongly typed queries to functions that only accept a single query type. - Various improvements to `gst::ClockTime`, `gst::format::Bytes`, `gst::format::Signed` and related types and their usage in the API, which should make its use from applications easier and less error-prone. Check the `gst::format` module-level documentation for details. - `gst::StreamsSelected` event builder takes the selected streams as iterator instead of slice. - For consistency with other macros the `gst` prefix of the logging macros was also removed. - Various iterator implementations were added and the existing ones were optimized by implementing more specialized traits and custom implementations for a couple of iterator functions. - GStreamer initialization safety checks were optimized. - `gst::Bus::post()` takes ownership of the passed messages like the C API. - Better and easier to read `Debug` impls for `Caps`, `TagList`, `Structure` and `Promise`. - `ser_de` feature was renamed to `serde`. - `gst::Tracer` implementations get result enums passed as `Result`s now instead of single enums. - `gst::Pad`, `ProxyPad`, `GhostPad` default functions are all associated functions instead of methods now to avoid conflicts between multiple types with the same method. - `Pad` tasks are catching panics from the task function and if the parent of the pad is an element then the panic is converted into an error message and the task is simply stopped. Otherwise the panic is rethrown. ## [0.18.8] - 2022-04-26 ### Added - Bindings for `RTPBasePayload` and `RTPBaseDepayload`. - Accessors for `RTPBuffer` buffer. - Bindings for `RTPBuffer` length calculation API. - More complete `gst::Task` bindings. ### Fixed - Export `gst::subclass::TaskPoolFunction`. ## [0.18.7] - 2022-04-04 ### Added - Bindings for `VideoAggregator` and the `VideoAggregatorPad`s. - Bindings for `AudioAggregator` and the `AudioAggregatorPad`s. - Bindings for `TaskPool`. - Various helper functions for `VideoFormatInfo`, `VideoInfo` and `VideoFrame`. ## [0.18.6] - 2022-03-08 ### Fixed - Require `Send` and not `Sync` for the values of an `gst::Array` / `gst::List`. ### Changed - Simplify and speed up log message string construction ## [0.18.5] - 2022-02-20 ### Changed - Require GStreamer 1.20.0 at least when building with `v1_20`. Earlier versions were already going to fail due to API mismatches before. ### Added - `gst::BufferPool` subclassing support. - `Debug` impl for `gst::MiniObject`. - `gst_rtsp_server::RTSPOnvifServer` and related API, including subclassing support. ### Fixed - Handle empty slices correctly at the FFI layer. - `MiniObjectRef::downcast_ref()` and similar functions return the correct type now. While this is an API change, the previous API would've never worked. ## [0.18.4] - 2022-02-04 ### Changed - Update gir files to GStreamer 1.20.0 release. ### Added - `gst_video::VideoCodecFrame::input_buffer_owned()` for getting an owned reference. ### Fixed - All documentation links in the `README.md`s are correct again. ## [0.18.3] - 2022-01-31 ### Added - `Default` implementation for `gst_video::VideoOverlayComposition` when targeting GStreamer 1.20. - `gst_video::VideoOverlayComposition::add_rectangle()` in addition to the addition of all rectangles via an iterator during construction. - Subclassing support for `gst_rtp::RTPHeaderExtension`. - `gst_webrtc::WebRTCError` for programmatically handling WebRTC errors. ### Fixed - `gst_rtp::RTPHeaderExtension` has `gst::Element` set as parent class now. - Global functions are re-exported from the `gst_rtp` crate root. ### Changed - GIO-style async operations in GES no longer need `Send`-able closures. ### Removed - `fragile` is no longer a dependency and instead the corresponding GLib API is used. ## [0.18.2] - 2022-01-24 ### Added - `glib::FromValue` for mini object references. - Bindings for `gst::DebugCategory::get_line()`. ## [0.18.1] - 2022-01-18 ### Fixed - `Message::view()` also handles the redirect message now. - `Message` and `Query` view variants that return references now borrow again from the underlying query and not the view enum, allowing to use them in a wider scope. ### Changed - All miniobjects, `VideoTimeCode`, `Structure` and `CapsFeatures` are marked as `#[repr(transparent)]` now to ensure that their memory representation is exactly the underlying raw pointer. ## [0.18.0] - 2022-01-16 ### Added - `gst_rtp::RtpHeaderExtension::read()` and `write()`. - `gst::ElementMetadata` has a `const` constructor now. - `gst_rtp::RtpBuffer` API works on buffer references instead of plain buffers for statically enforcing writability and usage in more places. - `gst_video::VideoCodecAlphaMeta` and `gst::CustomMeta`. - `gst::MiniObject` for generically passing around mini objects instead of their concrete types. - `gst_app::AppSink` `new-event` callback and `pull_object()` function. - `gst_pbutils::PbUtilsCapsDescriptionFlags` and `pb_utils_get_caps_description_flags()`. - `gst_rtp::RtpBuffer::remove_extension_data()`. - `gst_video::VideoDecoder` subframe API. - `gst_webrtc::WebRTCSCTPTransport`. - `gst::ElementFactory` `create_with_properties()` / `make_with_properties()`. - `gst_video::VideoContentLightLevel` and `VideoMasteringDisplayInfo` for HDR signalling. - Lots of missing `GES` API. - `gst::AllocationParams` and support in the allocation query. - `propose_allocation()` and `decide_allocation()` support in the various base classes. - `Iterator` implementation for `gst_video::VideoOverlayComposition`. - `Extend`, `IntoIterator` and `FromIterator` implementations for `Buffer`, `Caps`, `BufferList`, `CapsFeatures`, `StreamCollection` and `Structure` for more natural Rust APIs. - `instant-rate-change` events/messages bindings. - Support for arithmetic operations on `Option` and related types. - `gst_video::ColorBalance`. - `gst::MetaFlags`. - `gst_base::Aggregator::set_position()`. - Convenience getters for `gst::ElementFactory` and `gst::DeviceProviderFactory` metadata. - `gst_rtp::RtpBuffer::set_padding()`, `get_padding()` and `payload_mut()`. - `#[must_use]` to many types and functions. - `gst::Event`, `gst::Message` and `gst::Structure` `has_name()`. - `gst_video::Navigation` subclassing support and API improvements. - `gst::Structure` and `gst::Caps` `foreach()`, `map_in_place()` and `filter_map_in_place()`. - `gst_gl::GLBufferPool` and various GL constants and functions. - `gst_pbutils` codec utils APIs. ### Fixed - `gst_base::BaseTransform::prepare_output_buffer()` correctly reflects buffer writability. ### Changed - Compatible with the 0.15 gtk-rs release. - Updated to the latest GStreamer 1.20 APIs while still supporting up to GStreamer 1.8. Any new 1.20 APIs might still change until the stable 1.20 release. - Update all code to the Rust 2021 edition. This causes no user-facing changes. - `gst::Sample::segment()` returns a reference instead of a copy of the segment. - `gst::Object::set_property_from_str()` returns a `Result` now instead of silently failing like the C version. - Allow handling passed in buffers in `gst_base::PushSrc::create`. - Allow passing in `None` in `gst_player::Player::set_uri()`. - Use `[[f32; 4]; 4]` instead of `[f32; 16]` for affine transformation matrix. - `gst::Pad::sticky_event()` statically gets the event of the requested type instead of requiring to match on it afterwards. - Clean up `gst_pbutils` `EncodingProfile` API to be harder to misuse and less confusing. - Various `gst::Array`, `gst::List`, `gst::IntRange` and `gst::Fraction` API improvements that should reduce some friction. - Directly generate `NUL`-terminated C strings in debug log API instead of having multiple allocations per message. - Various functions return `glib::SList` and `glib::List` now to avoid copying into a `Vec` if only iteration is needed. - `gst::ChildProxy` API is more consistent with object property API. - Improved `gst::Buffer::foreach()`, `gst::Pad::sticky_events_foreach()` and `gst::BufferList::foreach()` APIs. - Don't post error messages from `propose_allocation()` and `decide_allocation()`. ## [0.17.4] - 2021-09-13 ### Added - Add constructor for device provider metadata. ## [0.17.3] - 2021-08-23 ### Fixed - `gst::Value::deserialize()` takes the target type as parameter now. This is technically an API change but the function would've never worked previously. ### Added - The release date-time parameter to `gst::plugin_define!` is optional now like in the C version of the macro. - Bindings to `gst::Tracer` and `gst::TracerFactory` for allowing to implement custom tracers in Rust. - Bindings for the new `gst::Value::deserialize_with_psec()` function from GStreamer 1.20. - serde `Serialize`/`Deserialize` impls for `gst::PadDirection`, `gst::PadPresence`, `gst::URIType` and `gst::Rank`. ## [0.17.2] - 2021-08-05 ### Fixed - Various new clippy warnings. - Compilation of `gstreamer-audio` on big-endian platforms. ### Added - Support for 1.20 `Gap` event `GapFlags`. - Support for 1.20 `Structure::serialize()` / `Caps::serialize()`. ## [0.17.1] - 2021-07-13 ### Fixed - Store 1.19 as plugin version when building plugins with `v1_20`. Otherwise plugins fail to load with GStreamer versions below 1.20.0. - Fix documentation for `gst::Element::request_pad_simple()` to actually show up. ## [0.17.0] - 2021-06-28 ### Fixed - Use `#[repr(transparent)]` where it is more correct and remove unneeded `#[repr(C)]` annotations. - Don't provide direct access to the logged object in logging functions as the object might currently be finalized and might be unsafe to access. - Moved X11/EGL/Wayland-specific GL APIs into their own crates instead of having them inside gstreamer-gl and behind feature flags. This simplifies conditional usage of them in applications. - Various nullability issues: parameters and return values that should've been or shouldn't have been nullable were fixed. - Print source object correctly in `gst::Message` `Debug` impl. - `gst_rtsp_server::RTSPServer::attach()` is fallible. - `gst::ElementFactoryListType` is a proper bitflags type now instead of generic `u64`. - `gst::PluginFeature::load()` returns the same type as the one passed in. - Value returned by `gst::PromiseFuture` can no longer be freed while still in scope. - Only assign to `GError**`s in subclassing code if they're not `NULL`. ### Added - Bindings for the GStreamer Controller library and the corresponding core API. - Subclassing support for `gst_player::PlayerVideoRenderer`. - `gst::PARAM_FLAG_CONTROLLABLE` and related bindings. - `gst_video::VideoOrientation` and `VideoOrientationMethod` bindings. - Support for removing pad probes from inside the pad probe callback. - `gst_check::Harness::pull_until_eos()` bindings. - `ges::TransitionClip` and `OperationClip`. - Bindings for `gst_gl::GLMemory` and related APIs. - Subclassing support for `gst_gl::GLFilter` and `gst_gl::BaseSrc`. - `gst::TagList::remove()`. - `gst::CapsFeatures` and `gst::Structure` API based on `glib::Quark`s instead of strings. - Subclassing support for `gst_video::VideoFilter`. - Bindings for various new 1.20 APIs: `gst_app::LeakyType`, `gst_video::VideoDecoderRequestSyncPointFlags`, `gst_rtp::RTPHeaderExtension`, `gst_audio::AudioLevelMeta`, `gst_webrtc::WebRTCKind` and various other new flags/enum types. - Subclassing support for `gst_rtsp_server::RTSPMountPoints`. ### Removed - Deprecated APIs in 0.16. - Don't declare that `gst_app::AppSink` and `AppSrc` inherit from `gst_base::BaseSink` and `BaseSrc` to avoid exposing API that is meant for subclasses to applications. - `gst_app::AppSrc` and `AppSink` signals that are also covered by the callbacks. The callbacks are more flexible and have lower overhead. - Duplicated getters/setters for `gst_base::BaseSink` and `BaseTransform` properties. ### Changed - Compatible with the 0.14 gtk-rs release. - Updated to the new GStreamer 1.20 APIs while still supporting up to GStreamer 1.8. Any new 1.20 APIs might still change until the stable 1.20 release. - FFI and safe high-level bindings are in the same repository now and use the same version numbers. - The .gir files are shared with gtk-rs and the GStreamer-specific ones are in a separate git submodule. - Update all code to the Rust 2018 edition. As part of this, most macros lost their `gst_` prefix. - Re-export dependency crates from the different preludes. - Getter functions don't have a `get_` prefix anymore and GObject property accessors don't include the `_property_` part in the middle of their function names anymore. Applications developers should use [`fix-getters-calls`](https://crates.io/crates/fix-getters-calls) to ease migration of their applications. Use [`fix-getters-def`](https://crates.io/crates/fix-getters-def) if you also want your `get` functions definition to comply with the API standards applied in this release. - Lots of changes to the subclassing API. Check the various elements in [gst-plugins-rs](https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs) for examples. - Major improvements to the documentation infrastructure and generated documentation. - `gst::ClockID` bindings are refactored to use different types for single-shot and periodic clock ids, which makes misuse harder. - `gst::ProxyPad` extension trait uses trait functions instead of associated functions now for usability reasons. - Use `Result` for overriding flow returns from pad probes. - `gst_video::VideoInfo::align()` returns a `Result` instead of a `bool`. - Use actual error types instead of `()` in `gst_sdp` APIs. - `Display` impl for `gst::ClockTime` provides better human-readable strings. - `gst::Element::link_filtered()` and `link_pads_filtered()` takes a non-optional caps now. That's easier to use and for not providing caps the non-filtered variants of the functions exist. - Replace various manual bindings with auto-generated ones. - `gst::Element::get_request_pad()` is replaced by `request_pad_simple()` as a simpler version of `request_pad()` and in accordance with the deprecation in GStreamer 1.20. - `gst::ClockTime` and APIs working on it were changed to make possibility of using `GST_CLOCK_TIME_NONE` expressed in the type system. `Option` can be `None` while `gst::ClockTime` is always a valid time. ## [0.16.7] - 2021-02-13 ### Fixed - Usage of the logging system with a GStreamer library with the logging system compiled out does not crash any longer. - Double-free in `gst_video::VideoTimeCode` API when converting between validated and unvalidated timecodes. ### Added - `gst::Element::get_current_state()` and `get_pending_state()` convenience APIs. - `gst_audio::AudioConverterConfig` for setting the configuration on e.g. the `audiomixer` element. The low-level `AudioConverter` API is still not included in the bindings. ## [0.16.6] - 2020-12-20 ### Fixed - `VideoTimeCodeInterval`'s `Ord` and `PartialEq` implementations compare against the correct fields now. - `SDPMessage::medias_mut()` iterator does not crash any longer. ### Added - `PartialEq` and `Eq` implementations on `VideoAlignment`. - Alignment API for `VideoMeta` and `get_plane_height()` / `get_plane_size()`. - `VideoInfo::align_full()`. ## [0.16.5] - 2020-11-23 ### Fixed - Make sure to use `$crate` in more macros to allow them to work without anything special in scope already. - Update documentation location. - Don't panic if C code stores invalid seqnums in events and the seqnum is used directly or via the `Display` impl. - Fix docs build for some crates on docs.rs. - Fix `Debug` impl for `gst_video::VideoTimeCode` to print the correct type name. - Fix plugin version to be 1.18 instead of 1.17 when compiling a plugin with `v1_18`. ### Added - Event handling support in pad probes, that is returning `PadProbeReturn::Handled` for events. - `EventRef::get_structure_mut()` getter that allows changing the events' structures. ### Changed - Remove unnecessary `PhantomData` markers and use `repr(transparent)` instead of `repr(C)` where it is more correct. ## [0.16.4] - 2020-10-09 ### Fixed - Correctly implement `ExactSizeIterator` on the `AudioFormat` and `VideoFormat` iterators. Previously they returned the overall size instead of the remaining size, and they didn't implement `Iterator::size_hint()`. - Don't implement `ExactSizeIterator` on the buffer `gst::Meta` iterator. The overall length is not known easily and the implementation would've simply panicked in the past. ### Added - `gst::ClockID::wait_async_stream()` for async integration for clock waiting. - `From` / `TryFrom` impls for converting between `gst::ClockTime` and `std::time::Duration`. ## [0.16.3] - 2020-09-08 ### Fixed - Reset vfuncs if calling `BaseTransformClass::configure()` multiple times. - Fix `gst::debug_remove_default_log_function()` to actually remove the default log function. ### Added - Some more new APIs added in 1.18. - API for getting an owned buffer from a readable `gst_video::VideoFrame` / `VideoFrameRef`. ### Changed - Updated bindings to 1.18.0. This stabilized GStreamer 1.18 support and any API behind the "v1_18" feature is considered stable now. - Factor out some common code from `gst::Pad::ProbeInfo` code. This reduces the code generated for each pad probe considerably. - Update paste dependency to 1.0 and pretty-hex to 0.2. ## [0.16.2] - 2020-07-27 ### Fixed - Use correct pointer for the plane data in `gst_audio::AudioBuffer`. ### Added - Add `gst::GhostPad` convenience constructors that take a target pad, similar to the ones that existed in 0.15 and before. - Add `gst::parse_bin_from_description_with_name` that allows setting a name for the created bin without having to use unsafe code in application code. ## [0.16.1] - 2020-07-10 ### Fixed - Allow calling `gst::DebugCategory::new()` before `gst::init()` again. ## [0.16.0] - 2020-07-06 ### Added - Updated bindings to 1.17.2, adding experimental 1.18 support. This can be opted-in via the "v1_18" feature flag but there might still be API changes in the newly added API. - `gst::MemoryRef::dump()` for dumping contents of a memory. - `gst::Bus::stream()` instead of a custom constructor on the `BusStream`. - Use more accurate types for `Seqnum`, `GroupId` and `MetaSeqnum`. These are now proper wrapper types instead of plain integers, which makes misuse harder. - Provide `TryFrom` impls for conversion between `glib::DateTime` and `gst::DateTime`. - Add `get_allocator()` functions to `gst_base::{Aggregator, BaseTransform, BaseSrc}`, and allow overriding `BaseSrc::alloc()`. - Add subclassing bindings for `gst_base::PushSrc`. - Add new `gst::BufferCursor` API that allows to handle a buffer as `Read`, `Write` and `Seek` and accesses the underlying memories of the buffer individually without mapping them all together. - Add `gst::Plugin::get_plugin_name()`. - Support for `gst_video::VideoAFDMeta` and `VideoBarMeta`. - API for getting all / iterating over all `gst_audio::AudioFormat` and `gst_video::VideoFormat`. - Bindings and subclassing bindings for `gst_video::VideoSink`. - `gst::Pad` can be constructed via the builder pattern and `gst::PadBuilder` now, which allows to safely set the pad functions and various other fields during construction. The `PadBuilder` works on any `gst::Pad` subclass and also has special support for `GhostPad`s by allowing to set pad functions of the proxy pad. - `gst::Message`, `gst::Event` and `gst::Query` type constructors are now on the specific target type instead of various `new_XXX()` functions on the basic type. E.g. `gst::message::Eos::new()`. - Support for overriding `gst_audio::AudioSrc/Sink::reset()`. - Support for overriding `gst_base::BaseParse::stop()`. - Support for overriding `gst::Element::post_message()`. - Added bindings for `gst::BufferList::foreach()` and `foreach_mut()`. - Added bindings for `gst::Buffer::foreach_meta()` and `foreach_meta_mut()`. ### Fixed - Allow using any `glib::Object` as target object for logging instead of just `gst::Object`. - Remove restriction API from `gst_pbutils::EncodingContainerProfile`. They are supposed to be used only with the other encoding profiles. - Return `&'static str` for various `gst::StructureRef` functions where the string is backed by a `glib::Quark`. - Fix various `gst::DateTime` functions to actually return `Option`s. - Add support for filling in a buffer passed to the `gst::Pad` getrange function, allow passing one in into `get_range()` and `pull_range()` and provide the corresponding API on `gst_base::BaseSrc` too. - Allocator in audio/video `Decoder` base classes is optional and can return `None`. - `gst_video::ValidVideoTimeCode::add_interval()` always returns a valid timecode again. - Allow resolving a `gst::Promise` with `None` and also handle that correctly in the callback. This is allowed by the API. - Allow calling various debugging related functions before `gst::init()`. - Various enum/function versions were fixed to only show up if the corresponding version feature is enabled. - `gst::Pad` function setters are marked unsafe now as changing the functions is not thread-safe. - Remove `gst::Object::set_name()` as changing the name after construction generally causes problems and is potentially unsafe. - Remove `gst::Pad::set_pad_template()` as changing the pad template after construction is generally unsafe. - `gst::Pad::stream_lock()` borrows the pad now instead of taking a new reference. - Unimplemented `Jitter` and `Buffer` queries were removed from the bindings. These are not implemented in C and only have a type registered. - Various `LAST`, `NONE` variants of enums and flags were removed as these only make sense in C. - Call the parent impl of various vfuncs that were omitted before to not require further subclasses of them to implement them but automatically call the parent ones. ### Changed - Use `NonZeroU64/U32` for various ID types to allow further optimizations. - Use `thiserror` crate for deriving error types. - Switch from `lazy_static` to `once_cell`. - Change various miniobject functions like `gst::Caps::append()` from taking the object by value to modifying it internally. This makes them easier to use and only applies to functions that are defined on the non-reference type and take ownership of the values passed in. - Use `mem::ManuallyDrop` instead of `mem::forget()` everywhere. - Replace most `mem::transmute()` calls with safer alternatives. - `gst:StreamCollection` API was changed to the builder pattern for construction as the collection must not be changed after construction. - `gst::ProxyPad` default functions are plain functions on `ProxyPad` now instead of trait functions to allow easier usage of them. - Use proper error types in various `TryFrom` impls. - `gst_video::VideoMeta::add()` returns a `Result` now instead of panicking. - Various constructors were renamed from `new_with_XXX()` and `new_from_XXX()` to the more idiomatic `with_XXX()` and `from_XXX()`. - Miniobject bindings are simplified now and there is no `gst::GstRc` type anymore, instead everything is directly implemented on the concrete types. As part of this the `gst::MiniObject` trait was also removed as it was unneeded now. ## [0.15.7] - 2020-06-08 ### Fixed - Allow multiple filter types per process with `gst::Iterator::filter()`. - Check that `VideoInfo` is valid when creating a `VideoFrame`. - Don't potentially dereference a `NULL` pointer when getting the format from an invalid `VideoInfo` or `AudioInfo`. - Don't unmap borrowed `VideoFrameRef`s. ### Added - `gst::ProtectionMeta`, `gst_video::VideoAffineTransformationMeta`, `VideoCropMeta` and `VideoRegionOfInterestMeta` bindings. - Various new `gst_rtp::RTPBuffer` methods. - `gst_audio::audio_buffer_truncate()`, `AudioMeta` and `AudioBuffer` bindings. ## [0.15.6] - 2020-05-28 ### Fixed - Assert that the data passed to `VideoCaptionMeta::add()` is not empty. - Don't store strong references to the object in the bus, appsink and appsrc futures `Stream` / `Sink` adapters. This would keep them alive unnecessarily and would prevent the `Stream` / `Sink` to ever "finish" on its own. - Handle receiving a `None` reply in the change function of `gst::Promise`. This is apparently valid. For backwards compatibility reasons this is currently replaced with an empty structure but in 0.16 the API will explicitly handle `None`. ### Added - `gst::Stream::debug()` and `gst::StreamCollection::debug()` for converting into a structured string with the actual contents of each. - `gst::Structure::from_iter()` and `gst::Caps::from_iter()` to create structures/caps from iterators. - `gst::Event` support for getting/setting the `gst::Stream` in the `StreamStart` event. - `gst_video::calculate_display_ratio()` and `::guess_framerate()`. - Various video related `gst::CapsFeatures` in `gst_video`. - `TryFrom`/`From` impls for converting between `gst::Structure` and `gst_video::VideoConverterConfig`. - Various `glib::Value` trait impls for `SDPMessage`, `StructureRef`, `CapsFeatureRef` and all borrowed variants of miniobjects to be able to work with the borrowed, non-owned variants when handling `glib::Value`s. ## [0.15.5] - 2020-05-03 ### Fixed - Revert: Allow logging any `glib::Object` and not just `gst::Object`. This broke API in subtle ways and needs to wait until 0.16 - Replace `%` in log output with `%%` to prevent accidental C formatting - Add missing manual traits to the documentation ### Added - `BufferRef::peek_memory_mut()` to give a mutable reference to a given memory - Different iterators for iterating over the memories of a buffer - Support for `gst_audio::AudioClippingMeta` - `gst::Plugin::get_plugin_name()` was added - `gst::Element::get_current_clock_time()` and `gst::Element::get_current_running_time() helper functions - `gst::State` and `StateChange` API for calculating next/previous state and convert from/to the components of a state change ### Changed - Use `mem::ManuallyDrop` instead of `mem::forget` everywhere ## [0.15.4] - 2020-03-09 ### Fixed - Allow logging any `glib::Object` and not just `gst::Object` - Fix floating reference handling in `RTSPMedia::take_pipeline()` - Hold `GMutex` guards for the remainder of the function and warn if they're directly dropped - Work around empty/any caps handling bugs in `Caps::fixate()` ### Added - Add `BaseTransform::prepare_output_buffer()` subclassing support - `RTSPServer`, `RTSPClient`, `RTSPMedia` and `RTSPMediaFactory` subclassing support - Handle panicking in `appsrc`/`appsink` callbacks by posting an error message instead of killing the process ## [0.15.3] - 2020-02-15 ### Fixed - `UniqueFlowCombiner::clear()` should take a mutable reference. - `AudioStreamAlign` doesn't require mutable references for getters anymore. - Don't use bool return value of `gst_video_info_set_format()` and `gst_video_info_align()` with GStreamer < 1.11.1 as it returned void back then. We'd otherwise use some random value. - Make `VideoInfo::align()` is available since 1.8. - Fix changing/clearing of `AppSrc`, `AppSink` callbacks and `Bus` sync handler. Before 1.16.3 this was not thread-safe and caused crashes. When running with older versions changing them causes a panic now and unsetting the bus sync handler has not effect. With newer versions it works correctly. ### Added - Add `Clone` impls for `BufferPoolConfig` and `PlayerConfig`. - Add `VideoConverter` bindings. - Add `Future`s variant for `gst::Promise` constructor. - Add `Future`s variant for `gst_video::convert_sample_async()`. - Add `submit_input_buffer()`, `generate_output()`, `before_transform()`, `copy_metadata()` and `transform_meta()` virtual method support for `BaseTransform`. - Add `AppSink` `Stream` adapter and `AppSrc` `Sink` adapter for integrating both into Rust async contexts. ### Changed - More generic implementations of `VideoFrame` / `VideoFrameRef` functions to allow usage in more generic contexts. ## [0.15.2] - 2020-01-30 ### Fixed - Fix another race condition in the `gst::Bus` `Stream` that could cause it to not wake up although a message is available. ## [0.15.1] - 2020-01-23 ### Added - Use static inner lifetime for `VideoCodecState` so that it can be stored safely on the heap. - Getters/setters for `BinFlags` on `gst::Bin`. - `gst::Caps::builder_full()` for building caps with multiple structures conveniently. - `gst::Element::call_async_future()` for asynchronously spawning a closure and returning a `Future` for awaiting its return value. ### Fixed - Various clippy warnings. - Getters/setters for `PadFlags` on `gst::Pad` now provide the correct behaviour. - Take mutex before popping messages in the `gst::Bus` `Stream` to close a small race condition that could cause it to not be woken up. - `gst::ChildProxy` implementers do not have to provide `child_added()` and `child_removed()` functions anymore but these are optional now. - Manually implement `Debug` impls for various generic types where to `Debug` impl should not depend on their type parameters also implementing `Debug`. ## [0.15.0] - 2019-12-18 ### Added - `StructureRef::get_optional()` for returning `None` if the field does not exist instead of `Err` - Bindings for `gstreamer-rtp` library, mostly `RTPBuffer` - Support for writing `Preset`, `TagSetter`, `Clock`, `SystemClock` subclasses - Bindings for `Typefind::get_length()` - Bindings for `BaseSrcImpl::get_times()` - Bindings (incl. subclassing) for `AudioSink` and `AudioSrc` - Missing `Send`/`Sync` impl for various types ### Fixed - Cleanup of cargo features/dependencies to improve build times - Serde serialization with optional values. Attention: This changes the format of the serialization! - `VideoEncoder`/`VideoDecoder` `proxy_getcaps()` can't return `None` - Use non-panicking UTF8 conversion in log handler. We don't want to panic just because some C code printed a non-UTF8 string - Re-rexport all traits from the crate level and also ensure that all traits are actually included in the preludes - Actually export `is_video_overlay_prepare_window_handle_message()` function - Use `FnMut` for the `appsink` callbacks instead of `Fn` - `Promise` change function returns the actual reply to the promise now instead of just passing the promise itself - Memory leak in `Iterator::filter()` - `BinImpl::add()` takes ownership of floating references - `DeviceImpl::create_element()` preserves floating flag - `BinImpl::remove()` takes a strong reference of the element now as the last reference might be owned by the bin and otherwise we would potentially have a use-after-free afterwards - `BaseParseFrame` and `VideoCodecFrame` take a `&mut self` now for various functions that actually change the frame ### Changed - Minimum supported Rust version is 1.39 - Allow passing `None` to `VideoEncoder::finish_frame()` - Various `to_string()` methods were moved into the `Display` trait impl and for some types `to_str()` was added to return a `&'static str` - .gir files were updated to 1.16.2 release - `Sample` constructor uses the builder pattern now - `VideoMeta::add_full()` is simplified and requires parameters - `BasetransformImpl::set_caps()` returns a `Result` instead of `bool` - SDP data type getters for strings return an `Option` now as these can be `None` in practice although not allowed by the SDP spec - Various functions returning `Option`s were changed to return `Results` if `None` actually signalled an error instead of just a missing value ### Removed - "subclassing" and "futures" cargo features. These are enabled by default now ## [0.14.5] - 2019-09-17 ### Added - Support subclassing of `gst::Device`, `gst::DeviceProvider`, `gst_audio::AudioDecoder` and `::AudioEncoder` - Support for `Element::set_clock` and `::provide_clock` virtual methods - `ElementClass::add_metadata` was added - `gst_video::VideoDecoder` and `::VideoEncoder` got support for `get_caps`, `negotiate`, `src/sink_query/event` and the `drain` virtual methods - `Element::num_pads`, `::num_src_pads` and `::num_sink_pads` functions - `gst_video::VideoDecoder` and `::VideoEncoder` got `get_allocator` bindings - `gst::Iterator` implements `IntoIterator` now for providing `std::iter::Iterator>` adapter - Error macros for audio/video decoder subclasses to handle decoding errors more gracefully and only actually error out after many consecutive errors ### Fixed - Macros now also work in Rust 2018 edition without `#[macro_use]` but explicit imports - The log handler unit test runs reliable in parallel with other tests - Manually implement `Debug` for `gst::Iterator` to allow it for any `T` instead of `T: Debug` - `Device::create_element` has correct reference count handling now - Return `NotNegotiated` in the video codec base classes if setting the output state fails instead of `Error` ## [0.14.4] - 2019-08-14 ### Added - Bindings for adding/removing custom log functions - Bindings for `calculate_linear_regression()` - Constants for base class custom flow returns ### Fixed - Ownership of pad in `Element::release_pad()` virtual method implementations ## [0.14.3] - 2019-07-16 ### Added - `Buffer::unset_flags()` for unsetting specific buffer flags - `VideoBufferFlags` flags type and `VideoBufferExt::set_video_flags()`, `unset_video_flags()` and `get_video_flags()` for working with video buffer flags from safe code. ### Fixed - Setting buffer flags does not override arbitrary other flags anymore but only sets the flags in question. This is necessary to not override extension buffer flags like `gst_video::VideoBufferFlags`. ## [0.14.2] - 2019-07-15 ### Added - Support for `ReferenceTimestampMeta` ## [0.14.1] - 2019-07-06 ### Added - Various new WebRTC enum types from 1.14.1/1.16.0 ### Fixed - Correctly generate interlaced `VideoInfo` by using `gst_video_info_set_interlaced_format()` instead of the generic function. - serde serialization unit tests for `gst::format` succeed again now. ### Changed - `Debug` impls for `VideoFormatInfo` and `AudioFormatInfo` now print all the details of the format instead of only the name, and the `Debug` impls for `VideoInfo` and `AudioInfo` also print the format now. ## [0.14.0] - 2019-06-24 ### Added - Bindings for `GLSyncMeta`. - Bindings for setting/getting `TagScope` on a `TagList` - Bindings for `GLDisplayWayland` and `GLDisplayX11` in addition to the already existing `GLDisplayEGL` - Bindings for `Bus::pop_filtered()` and related functions - Bindings for getting/setting `Object`, `Element`, `Bin`, `Pipeline` and `Plugin` flags - Bindings for `VideoCaptionMeta` - `Debug` impl of `Buffer` now also shows the metas of the buffers - Expose flow return in `PadProbeInfo` for overriding the return value - Bindings for `VideoDecoder` and `VideoEncoder`, including subclassing support - Bindings for `Memory`, `Allocator` and `VideoBufferPool` - Bindings for `VideoFormatInfo::pack` and `::unpack` for format conversion - Bindings for `BaseParse`, including subclassing support - Various new arithmetic operation impls for fractions, formatted values and `ClockTime` - Bindings for `VideoInfo::align()` ### Changed - The `SDPMessage` and `SDPMedia` bindings were completely rewritten as they were broken before and caused crashes in various usages. As part of this there's also some more convenience API available on these types, like iterators for example, and API to modify the `SDPMedia` contained in a `SDPMessage`. - Update to GStreamer 1.16. - Regenerate with latest gir. - Run all autogenerated code through rustfmt after generation too. - Updated to latest versions of GLib/GIO/etc crates. - Updated to futures 0.3 / `std::future` - `ProxyPad` default functions moved to an extension trait instead of plain functions on `ProxyPad`, making them more in sync with the default `Pad` functions - GStreamer plugins are now exporting the new 1.14+ plugin symbols if they were configured for GStreamer 1.14+ - Arithmetic operations on formatted values and `ClockTime` do overflow checks now and replace the result with the `NONE` value on overflow - `TryFrom`/`TryInto` traits are used in various places now instead of the previous ad-hoc implementations of them. - Registering element/typefind/device monitor factories requires passing a value of `gst::Rank` now instead of an arbitrary `u32` ### Fixed - Use correct type for destroying pad task closure data. This was previously using the wrong type, causing crashes at runtime. - `DeviceAdded`/`DeviceRemoved` message getters are transfer full so we don't need to take an additional reference that would be leaked. - `AppSink` callbacks are correctly marked as `Send` instead of `Send+Sync`, allowing a wider range of closures to be used for them. - Handle `PadProbeReturn::Handled` return values from pad probes more correctly. - `ToOwned::to_owned()` on miniobjects has to create copies instead of only increasing the reference count. Otherwise it was possible to create multiple mutable and immutable references to the same object at the same time. - Various functions take references to owned miniobjects instead of borrowed references as it was otherwise possible to create multiple mutable or immutable references to the same object at the same time. - `URIHandler::set_uri` does not accept `None` anymore as this is not allowed by the C function. - Comparisons and addition of `TypeFindProbability` and `Rank` work correctly now - Various `Display` implementations were fixed to not cause a stack overflow due to infinite recursion anymore - Various `::to_string()` functions don't take ownership of C strings anymore that they do not own, which caused double frees before ### Removed - MIKEY related bindings from the SDP library. The bindings were broken and until someone needs them these are not available anymore. ## [0.13.0] - 2019-02-22 ### Added - Subclassing infrastructure was moved directly into the bindings, making the `gst-plugin` crate deprecated. This involves many API changes but generally cleans up code and makes it more flexible. Take a look at the `gst-plugins-rs` crate for various examples. - Bindings for GStreamer GL library - Bindings for `CapsFeatures` and `Meta` - Bindings for `ParentBufferMeta, `VideoMeta` and `VideoOverlayCompositionMeta` - Bindings for `VideoOverlayComposition` and `VideoOverlayRectangle` - Bindings for `VideoTimeCode` - Bindings for `NetAddressMeta` - Bindings for registering custom tags - `UniqueFlowCombiner` and `UniqueAdapter` wrappers that make use of the Rust compile-time mutability checks and expose more API in a safe way, and as a side-effect implement `Sync` and `Send` now - `Bus::add_watch_local()` and `gst_video::convert_frame_async_local()` that allows to use a closure that does not implement `Send` but can only be called from the thread owning the main context. - More complete bindings for `Allocation` `Query` - `pbutils` functions for codec descriptions - `TagList::iter()` for iterating over all tags while getting a single value per tag. The old `::iter_tag_list()` function was renamed to `::iter_generic()` and still provides access to each value for a tag - `Bus::iter()` and `Bus::iter_timed()` iterators around the corresponding `::pop*()` functions - Getters for `VideoColorimetry` to access its fields - `Debug` impls for various missing types. - serde serialization of `Value` can also handle `Buffer` now - Extensive comments to all examples with explanations - Transmuxing example showing how to use `typefind`, `multiqueue` and dynamic pads - basic-tutorial-12 was ported and added ### Changed - Rust 1.31 is the minimum supported Rust version now - Update to latest gir code generator and glib bindings - Functions returning e.g. `gst::FlowReturn` or other "combined" enums were changed to return split enums like `Result` to allow usage of the standard Rust error handling. - Various functions and callbacks returning `bool` or `Option<_>` were changed to return a `Result<_, glib::BoolError>` or `Result<_, gst::LoggableError>` or `Result<_, gst::ErrorMessage>` for better integration with Rust's error handling infrastructure. - Some infallible functions returning `bool` were changed to return `()`. - `MiniObject` subclasses are now newtype wrappers around the underlying `GstRc` wrapper. This does not change the API in any breaking way for the current usages, but allows `MiniObject`s to also be implemented in other crates and makes sure `rustdoc` places the documentation in the right places. - `BinExt` extension trait was renamed to `GstBinExt` to prevent conflicts with `gtk::Bin` if both are imported - `Buffer::from_slice()` can't possible return `None` ### Fixed - `gst::tag::Album` is the album tag now instead of artist sortname - Return `0` for the channel mask corresponding to negative `AudioChannelPosition`s. - `PartialOrd` and related traits are implemented via pointer equality on `ClockId` instead of using the compare function. Two clock ids with the same timestamp are not necessarily the same. - Various functions that are actually fallible are now returning an `Option<_>`. - Various `clippy` warnings ## [0.12.2] - 2018-11-26 ### Fixed - PTP clock constructor actually creates a PTP instead of NTP clock ### Added - Bindings for GStreamer Editing Services - Bindings for GStreamer Check testing library - Bindings for the encoding profile API (encodebin) - VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and Sync now - VideoFrame has a function to get the raw FFI pointer - From impls from the Error/Success enums to the combined enums like FlowReturn - Bin-to-dot file functions were added to the Bin trait - gst_base::Adapter implements SendUnique now ### Changed - All references were updated from GitHub to freedesktop.org GitLab - Fix various links in the README.md - Link to the correct location for the documentation - Remove GitLab badge as that only works with gitlab.com currently ## [0.12.1] - 2018-09-21 ### Added - More complete bindings for the gst_video::VideoOverlay interface, especially gst_video::is_video_overlay_prepare_window_handle_message() ## [0.12.0] - 2018-09-08 ### Added - Bindings for the GStreamer SDP and WebRTC libraries - Generic API for working with tags that is based on string tag names and glib::Value for the tag values - Bindings for Aggregator and AggregatorPad - Bindings for BaseTransform/BaseSrc::get_buffer_pool() - Optional serde implementations for the basic GStreamer data flow and metadata types ### Changed - Use ptr::NonNull in various places - Updated to muldiv 0.2, num-rational 0.2 - Bus::create_watch() can't return None - Remove CallbackGuard as unwinding across FFI boundaries is not undefined behaviour anymore but will directly cause a panic - Changed from the futures to the futures-preview crate as an optional dependency - Various Caps operations take a &CapsRef instead of &Caps - "deep-notify" signal takes the whole ParamSpec as parameter instead of only the signal name - Some structs were changed from empty struct to empty enums - Pad probe code does not take an additional reference to the data anymore, potentially passing writable events/buffers into the probe - ValueExt::compare() is implemented around std::cmp::Ordering now instead of a custom enum that was basically the same ### Fixed - Pad::add_probe() can return None if an IDLE probe was already called and removed in the meantime - Various compiler and clippy warnings ### Removed - std::Iterator impl for gst::Iterator. It was awkward to use because the gst::Iterator could fail at each iteration ## [0.11.6] - 2018-08-27 ### Fixed - Build with NLL/two-phase borrows - Explicitly define [bin] section for discoverer example to fix a cargo warning ### Added - Add unsafe gst::deinit() function - Ord/PartialOrd impls on gst::Seqnum - Getter for current pad mode - gst::Pad::sticky_events_foreach() for iterating over all sticky events in a thread-safe way ## [0.11.5] - 2018-07-24 ### Fixed - `gst::Bus`'s sync handler must unref every message if `gst::BusSyncReply::Drop` is returned, otherwise they are all leaked ## [0.11.4] - 2018-07-19 ### Fixed - `gst::Caps::subtract()` does not leak its arguments anymore - `gst::Caps::get_structure()` gracefully returns `None` if the index is out of bounds instead of a `g_return_val_if_fail()` - `gst::Structure::new()` has to give away ownership of the info structure but didn't. For 0.11 we internally copy, in 0.12 it will take the info structure by value - Typefind tests don't fail anymore if the system has typefind factories without caps ### Added - An additional assertion that ensures that miniobjects are actually writable before creating a mutable reference ## [0.11.3] - 2018-06-08 ### Added - `gst::Bus::remove_watch()` is now available to remove a bus watch again - `fmt::Debug` impls for `AudioInfo` and `VideoInfo` were added - `fmt::Debug` impls for mini objects also print the pointer value now to make it easier to track them in debug logs - `PlayerVisualization` has accessors for the name and description fields now, without which there is no sensible way to use them or to set a player visualization ## [0.11.2] - 2018-05-09 ### Fixed - Work-around various floating reference handling changes between 1.12 and 1.14 to be able to run with both versions without memory leaks or other reference count problems. This affects NetTimeProvider, BufferPool, DeviceMonitor, Stream, StreamCollection, and Player, NetClientClock, NetClock, PtpClock which were already previously fixed. ### Changed - Change the appsrc need-data and all appsink callbacks to not require the Sync bound anymore and change from Fn to FnMut. They can only be called from a single thread at a time. This change is only done for the corresponding callbacks, not the signals. ## [0.11.1] - 2018-04-07 ### Fixed - Fix Structure::to_string() to not run into an infinite recursion but call the method on the contained StructureRef instead of on itself ## [0.11.0] - 2018-03-20 ### Changed - Updated everything to GStreamer 1.14.0 - Event, Message and Query types were refactored to improve usability. Especially newly constructed queries allow to directly use the type-specific functions to be used without first creating a view - VideoFrameRef::copy_to_ref() and ::copy_plane_to_ref() are gone now and the original functions work with refs instead of full frames - PadProbeId and NotifyIds are not Copy/Clone anymore and are taken by value - GstPlayer has GstObject as parent class now ### Added - GstPbutils, GstSdp, GstRtsp and GstRtspServer bindings - GstPromise, GstAudioStreamAlign and various other 1.14 API - GstVideoFilter and GstBufferPool bindings - Element::call_async() - Debug impl For Toc and TocEntry - Various new examples (RTP FEC, RTSP server, tag usage, ...) ### Fixed - Memory leak in gst_video::convert_sample_async() ## [0.10.2] - 2018-02-18 ### Fixed - Fix building of messages with custom fields for types that don't have a GstStructure ### Added - VideoFrameRef::copy_to_ref() and ::copy_plane_to_ref(), which work with VideoFrameRefs instead of full VideoFrames - Getters for the BaseSrc/Sink/Transform configured segment - Document the gstreamer-player-1.0 dependency in the README.md ## [0.10.1] - 2018-01-03 ### Fixed - Don't require &mut self for TagSetterExtManual::add() ### Added - A TagSetter example application - Bindings for gst_video::convert_sample() and ::convert_sample_async() - Bindings for gst_video::VideoRectangle - Debug impl for Sample and ::with_buffer_list() constructor - A borrowing version of VideoFrame: VideoFrameRef - Bindings for GstVideoFilter ### Changed - Deprecated Sample::get_info() in favour of ::get_structure() - Player has gst::Object as another parent class now ## [0.10.0] - 2017-12-22 ### Fixed - Various clippy warnings - Memory leak of the tag list in Toc::merge_tags() - Property getters use Values of the correct type - Event::get_structure(), Message::get_structure() and Query::get_structure() can return None for the structure - Various other nullability fixes all over the API, changing functions to accept Option<> or returning Option<>, or only plain types - Functions taking paths/filenames now actually take Paths instead of &strs - Element::remove_pad() is not giving away a new reference to the pad anymore, which caused a memory leak of all pads ever removed - Precision handling in ClockTime's Display impl - Video/AudioInfo are only Send, not Sync ### Added - Various enums now also derive useful traits like Copy, Clone and Hash in addition to PartialEq, Eq and Debug - TagList::merge() and insert() for combining tag lists - EventType gained many useful functions to work with event types and a PartialOrd impl to check expected event order of event types where it matters - MessageRef/EventRef/QueryRef implement ToOwned - Bindings for Registry and PluginFeature - Event::set_running_time_offset() for adjusting the offset while events pass through the pipeline - Event/Message GroupIds and Seqnums now have a newtype wrapper around u32 instead of the plain value, making usage of them slightly more typesafe. Also add an "invalid" value for both, as exists in latest GStreamer now. - FormattedValue, GenericFormattedValue and related types were implemented now, which allows more convenient and type-safe usage of formatted values (time, bytes, etc) - Bindings for force-keyunit and still-frame events were added - MappedBuffer/BufferMap now implement various other useful traits, including AsRef<[u8]>, AsMut, Deref, DerefMut, Debug, PartialEq and Eq - Add VideoMultiviewFramePacking enum, and use it in Player - Bindings for the GStreamer Net library, including PTP/NTP/network client clocks and the GStreamer NetClock provider for network synchronization of pipelines - IteratorError implements std::error:Error - Plugin::add_dependency() and ::add_dependency_simple() was added - Rank and TypeFindProbability implement PartialOrd/Ord now - Bindings for TypeFind, TypeFindFactory and the typefind helpers - StreamCollection::iter() for iterating over all contained streams - ErrorMessage type that can be used e.g. in a Result for passing an error message from somewhere to upper layers to then be posted on an element the same way gst_element_error!() would've done ### Changed - Sample::new(), TagList::add(), Structure::set() and similar functions take the values (ToSendValue impls) by reference instead of value. They were not consumed by the function before. - The Debug impls of various types, including Event/Buffer/Message/Query/Structure were improved to print all the fields, similar to what GST_PTR_FORMAT would do in C - Switched to lazy_static 1.0 - Gap event and Duration tag are using ClockTimes now, as well as various Player signals - Segment is now based on a generic type FormattedSegment that can take any format (time, bytes, etc) or a GenericFormattedValue for more type-safety and convenience. Also functions for "casting" between a generic segment and a segment with a specific format exist on this now - AppSrc and AppSink now have a builder for the callbacks, making it unnecessary to always provide all callbacks even if only one is actually needed - Various functions that returned bool for errors, are now returning a Result - Player configuration is now a custom type with more convenient API - Player VideoInfo uses a Fraction instead of (u32,u32) for the framerate and pixel-aspect-ratio - VideoFrame API has more consistent API between writable and read-only variants - Buffer::copy_into() was added, and ::copy_region() now takes a BufferCopyFlags parameter instead of always using the default flags - ChildProxy::set_child_property() takes a &ToValue now to follow the API of Object::set_property() and improve usability - Proxy/GhostPad default pad functions use the correct specific pad type now instead of a generic Pad - Bus::add_signal_watch_full() takes a Priority for the priority instead of u32 - Clock::(un)adjust_with_calibration() takes no clock parameter anymore ### Removed - FormatValue was removed in favour of GenericFormattedValue and the connected traits and specific format impls ## [0.9.1] - 2017-11-26 ### Fixed - Export `FlowError`/`FlowSuccess`, `ClockError`/`ClockSuccess`, `PadLinkError`/`PadLinkSuccess` too ## [0.9.0] - 2017-11-26 ### Added - Bindings for (outputting to) the GStreamer logging system - Bindings for the GStreamer base library - Bindings for all the `Pad` functions to override pad behaviour, and pad task functions - Bindings for `StaticCaps` and `StaticPadTemplate` - Bindings for `deep-notify` signal on `Object` - Support for directly creating `Error`/`Warning`/`Info` `Messages` and posting them from an element with context information (file, line, module, etc.) similar to the C `GST_ELEMENT_ERROR` macro - Support for setting custom fields in `Messages`/`Events` during construction - Support for creating Buffers out of anything that is `AsRef<[u8]>` or `AsMut<[u8]>` - Support for using the `Read` trait on `Adapter` - Functions for getting all sink/src/all pads of an `Element`, and all children of a `Bin` - Builder for `Caps` and `Structures` in addition to the existing functions - `AppSrc`/`AppSink` implement `BaseSrc`/`BaseSink` and `URIHandler` - Rust ports of the basic tutorials 1 to 8 from https://gstreamer.freedesktop.org/documentation/tutorials/ - "Getting started" and "Installation" sections to the README.md - "dox" feature for generating documentation for all available configurations ### Fixed - `StackTraceFlags` are only available since 1.12 - Worked around macOS requiring a `NSRunLoop` running on the main thread in all examples and tutorials, to be able to show a window or anything else ### Changed - `ClockTime` is now a wrapper around `Option` to handle the `CLOCK_TIME_NONE` case better. This wrapper implements all the arithmetic and other traits as needed and ensures that no accidental calculations with `CLOCK_TIME_NONE` can happen - "Values with format", like in `Duration`/`Position`/`Convert` queries or `Seek` events now return a `FormatValue` type. This contains the actual `Format` together with the value and does any required conversions. This also makes it harder to accidentally mix e.g. values in bytes and time - `PadProbeId` does not implement `Clone`/`Copy` anymore - Property notify watches return a custom type instead of ulong - `Error`/`Warning`/`Info` `Messages` can only be created with specific kinds of `glib::Error` now. Using arbitrary ones does not work - `Iterator` bindings were completely rewritten and provide the item type as a generic type parameter now, greatly simplifying its usage - All `glib::Values` are now `glib::SendValue` instead, e.g. in `Caps` and `Structures`, as their content must be possible to send to different threads safely - `Message::get_src()` can return `None` - Allow `None` as `Caps` in `AppSrc`/`AppSink` - Allow everything implementing `Into>` to be used as a pad name - Moved `copy()` from `GstRc` directly to `MiniObject` - Success/Error enums (like `FlowReturn`, `PadLinkReturn`, `StateChangeReturn`) now implement an `into_result()` function that splits them into a `Result` with the good and bad cases. Also mark them as `#[must_use]` to make it harder to accidentally ignore errors. - Error enums implement the `Error` trait - Many examples use the `failure` crate for error handling now, cleaning up the error handling code quite a bit - Lots of other code cleanup, compiler/clippy warning cleanup, etc. ## [0.8.2] - 2017-11-11 ### Fixed - Implement StaticType of BufferRef instead of Buffer. Buffer aka GstRc already implements StaticType if BufferRef does, and without this it was not possible to use Buffers in GValues. - Free memory of the appsink/appsrc callbacks with the correct type. It was crashing because of using the wrong type before. - Fix documentation URLs in Cargo.toml. ### Added - Installation instructions and links to documentation for getting started to README.md. ## [0.8.1] - 2017-09-15 ### Added - Implement Send+Sync for Query, Message and Event, and their corresponding Ref types. ### Fixed - Constructor for gst_player::Player now works properly with GStreamer 1.12 when passing a video renderer or signal dispatcher. There was a reference counting bug. - Instead of returning &'static references from functions, return references with a generic, unbound lifetime instead. See https://github.com/rust-lang/rust/pull/42417#issue-233404573 - Various "unused external crate" warnings and clippy warnings everywhere. ### Changed - Remove Cargo.lock from GIT, it's not very useful for library crates. - Run everything through latest rustfmt-nightly. - Use while-let (instead of loop and if-let) and CLOCK_TIME_NONE (instead of u64::MAX) in the examples. ## 0.8.0 - 2017-08-31 - Initial release of the autogenerated GStreamer bindings. Older versions (< 0.8.0) of the bindings can be found [here](https://github.com/arturoc/gstreamer1.0-rs). The API of the two is incompatible. [Unreleased]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.23.0...HEAD [0.23.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.6...0.23.0 [0.22.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.5...0.22.6 [0.22.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.4...0.22.5 [0.22.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.3...0.22.4 [0.22.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.2...0.22.3 [0.22.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.1...0.22.2 [0.22.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.22.0...0.22.1 [0.22.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.21.3...0.22.0 [0.21.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.21.2...0.21.3 [0.21.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.21.1...0.21.2 [0.21.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.21.0...0.21.1 [0.21.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.7...0.21.0 [0.20.7]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.6...0.20.7 [0.20.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.5...0.20.6 [0.20.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.4...0.20.5 [0.20.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.3...0.20.4 [0.20.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.2...0.20.3 [0.20.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.1...0.20.2 [0.20.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.20.0...0.20.1 [0.20.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.8...0.20.0 [0.19.8]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.7...0.19.8 [0.19.7]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.6...0.19.7 [0.19.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.5...0.19.6 [0.19.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.4...0.19.5 [0.19.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.3...0.19.4 [0.19.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.2...0.19.3 [0.19.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.1...0.19.2 [0.19.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.19.0...0.19.1 [0.19.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.8...0.19.0 [0.18.8]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.7...0.18.8 [0.18.7]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.6...0.18.7 [0.18.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.5...0.18.6 [0.18.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.4...0.18.5 [0.18.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.3...0.18.4 [0.18.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.2...0.18.3 [0.18.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.1...0.18.2 [0.18.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.18.0...0.18.1 [0.18.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.17.4...0.18.0 [0.17.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.17.3...0.17.4 [0.17.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.17.2...0.17.3 [0.17.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.17.1...0.17.2 [0.17.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.17.0...0.17.1 [0.17.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.7...0.17.0 [0.16.7]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.6...0.16.7 [0.16.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.5...0.16.6 [0.16.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.4...0.16.5 [0.16.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.3...0.16.4 [0.16.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.2...0.16.3 [0.16.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.1...0.16.2 [0.16.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.16.0...0.16.1 [0.16.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.7...0.16.0 [0.15.7]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.6...0.15.7 [0.15.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.5...0.15.6 [0.15.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.4...0.15.5 [0.15.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.3...0.15.4 [0.15.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.2...0.15.3 [0.15.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.1...0.15.2 [0.15.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.15.0...0.15.1 [0.15.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.14.2...0.15.0 [0.14.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.14.1...0.14.2 [0.14.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.14.0...0.14.1 [0.14.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.13.0...0.14.0 [0.13.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.12.2...0.13.0 [0.12.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.12.1...0.12.2 [0.12.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.12.0...0.12.1 [0.12.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.6...0.12.0 [0.11.6]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.5...0.11.6 [0.11.5]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.4...0.11.5 [0.11.4]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.3...0.11.4 [0.11.3]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.2...0.11.3 [0.11.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.1...0.11.2 [0.11.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.11.0...0.11.1 [0.11.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.10.2...0.11.0 [0.10.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.10.1...0.10.2 [0.10.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.10.0...0.10.1 [0.10.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.9.1...0.10.0 [0.9.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.9.0...0.9.1 [0.9.0]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.8.1...0.9.0 [0.8.2]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.8.1...0.8.2 [0.8.1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/compare/0.8.0...0.8.1 gstreamer-sys-0.23.0/COPYRIGHT000064400000000000000000000022331046102023000140060ustar 00000000000000The gstreamer-rs project is dual-licensed under Apache 2.0 and MIT terms, with the exception of the sys crates which are licensed only under the terms of the MIT license. Copyrights in the gstreamer-rs project are retained by their contributors. No copyright assignment is required to contribute to the gstreamer-rs project. Some files include explicit copyright notices and/or license notices. For full authorship information, see the version control history. Except as otherwise noted (below and/or in individual files), gstreamer-rs is licensed under the Apache License, Version 2.0 or or the MIT license or , at your option. All the sys crates (e.g. gstreamer/sys and gstreamer-base/sys) are licensed only under the terms of the MIT license. This project provides interoperability with various GStreamer libraries but doesn't distribute any parts of them. Distributing compiled libraries and executables that link to those libraries may be subject to terms of the GNU LGPL or other licenses. For more information check the license of each GStreamer library. gstreamer-sys-0.23.0/Cargo.toml0000644000000044530000000000100117270ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.71.1" name = "gstreamer-sys" version = "0.23.0" authors = ["Sebastian Dröge "] build = "build.rs" description = "FFI bindings to libgstreamer-1.0" homepage = "https://gstreamer.freedesktop.org" documentation = "https://gstreamer.pages.freedesktop.org/gstreamer-rs/stable/latest/docs/gstreamer_sys/" readme = "README.md" keywords = [ "ffi", "gstreamer", "gnome", "multimedia", ] categories = [ "api-bindings", "multimedia", ] license = "MIT" repository = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs" [package.metadata.docs.rs] all-features = true rustc-args = [ "--cfg", "docsrs", ] rustdoc-args = [ "--cfg", "docsrs", "--generate-link-to-definition", ] [package.metadata.system-deps.gstreamer_1_0] name = "gstreamer-1.0" version = "1.14" [package.metadata.system-deps.gstreamer_1_0.v1_16] version = "1.16" [package.metadata.system-deps.gstreamer_1_0.v1_18] version = "1.18" [package.metadata.system-deps.gstreamer_1_0.v1_18_3] version = "1.18.3" [package.metadata.system-deps.gstreamer_1_0.v1_20] version = "1.20" [package.metadata.system-deps.gstreamer_1_0.v1_20_4] version = "1.20.4" [package.metadata.system-deps.gstreamer_1_0.v1_22] version = "1.22" [package.metadata.system-deps.gstreamer_1_0.v1_24] version = "1.24" [package.metadata.system-deps.gstreamer_1_0.v1_26] version = "1.25" [lib] name = "gstreamer_sys" [dependencies.glib-sys] version = "0.20" [dependencies.gobject-sys] version = "0.20" [dependencies.libc] version = "0.2" [dev-dependencies.shell-words] version = "1.0.0" [dev-dependencies.tempfile] version = "3" [build-dependencies.system-deps] version = "7" [features] v1_16 = [] v1_18 = ["v1_16"] v1_18_3 = ["v1_18"] v1_20 = ["v1_18_3"] v1_20_4 = ["v1_20"] v1_22 = ["v1_20_4"] v1_24 = ["v1_22"] v1_26 = ["v1_24"] gstreamer-sys-0.23.0/Cargo.toml.orig000064400000000000000000000033641046102023000154100ustar 00000000000000[build-dependencies] system-deps = "7" [dependencies] libc = "0.2" [dependencies.glib-sys] workspace = true [dependencies.gobject-sys] workspace = true [dev-dependencies] shell-words = "1.0.0" tempfile = "3" [features] v1_16 = [] v1_18 = ["v1_16"] v1_18_3 = ["v1_18"] v1_20 = ["v1_18_3"] v1_20_4 = ["v1_20"] v1_22 = ["v1_20_4"] v1_24 = ["v1_22"] v1_26 = ["v1_24"] [lib] name = "gstreamer_sys" [package] authors = ["Sebastian Dröge "] build = "build.rs" description = "FFI bindings to libgstreamer-1.0" documentation = "https://gstreamer.pages.freedesktop.org/gstreamer-rs/stable/latest/docs/gstreamer_sys/" keywords = ["ffi", "gstreamer", "gnome", "multimedia"] license = "MIT" name = "gstreamer-sys" readme = "README.md" [package.version] workspace = true [package.categories] workspace = true [package.repository] workspace = true [package.homepage] workspace = true [package.edition] workspace = true [package.rust-version] workspace = true [package.metadata.docs.rs] all-features = true rustc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs", "--generate-link-to-definition"] [package.metadata.system-deps.gstreamer_1_0] name = "gstreamer-1.0" version = "1.14" [package.metadata.system-deps.gstreamer_1_0.v1_16] version = "1.16" [package.metadata.system-deps.gstreamer_1_0.v1_18] version = "1.18" [package.metadata.system-deps.gstreamer_1_0.v1_18_3] version = "1.18.3" [package.metadata.system-deps.gstreamer_1_0.v1_20] version = "1.20" [package.metadata.system-deps.gstreamer_1_0.v1_22] version = "1.22" [package.metadata.system-deps.gstreamer_1_0.v1_20_4] version = "1.20.4" [package.metadata.system-deps.gstreamer_1_0.v1_24] version = "1.24" [package.metadata.system-deps.gstreamer_1_0.v1_26] version = "1.25" gstreamer-sys-0.23.0/Gir.toml000064400000000000000000000121411046102023000141300ustar 00000000000000[options] girs_directories = ["../../gir-files", "../../gst-gir-files"] library = "Gst" version = "1.0" min_cfg_version = "1.14" work_mode = "sys" single_version_file = true extra_versions = [ "1.24", "1.22", "1.20", "1.18.3", "1.18", "1.16", ] external_libraries = [ "GLib", "GObject", ] ignore = [ "Gst.VERSION_MAJOR", "Gst.VERSION_MINOR", "Gst.VERSION_MICRO", "Gst.VERSION_NANO", "Gst.ERROR_SYSTEM", "Gst.TIME_FORMAT", "Gst.STIME_FORMAT", "Gst.TIMEP_FORMAT", "Gst.STIMEP_FORMAT", "Gst.PTR_FORMAT", "Gst.SEGMENT_FORMAT", "Gst.FOURCC_FORMAT", ] [[object]] name = "Gst.Buffer" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "copy" version = "1.18.3" [[object]] name = "Gst.BufferList" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object]] name = "Gst.*" status = "generate" [[object.function]] name = "clear_buffer" version = "1.18.3" [[object.function]] name = "clear_buffer_list" version = "1.18.3" [[object.function]] name = "clear_caps" version = "1.18.3" [[object.function]] name = "clear_event" version = "1.18.3" [[object.function]] name = "clear_message" version = "1.18.3" [[object.function]] name = "clear_query" version = "1.18.3" [[object.function]] name = "clear_tag_list" version = "1.18.3" [[object.function]] name = "clear_uri" version = "1.18.3" [[object]] name = "Gst.Caps" status = "generate" [[object.function]] name = "copy" version = "1.16" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object]] name = "Gst.Context" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object]] name = "Gst.Event" status = "generate" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object.function]] name = "steal" version = "1.18.3" [[object]] name = "Gst.MiniObject" status = "generate" [[object.function]] name = "get_type" version = "1.20" [[object]] name = "Gst.Memory" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object]] name = "Gst.Message" status = "generate" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object]] name = "Gst.Promise" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object]] name = "Gst.Query" status = "generate" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object]] name = "Gst.Sample" status = "generate" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object]] name = "Gst.TagList" status = "generate" [[object.function]] name = "copy" version = "1.18.3" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "replace" version = "1.18.3" [[object.function]] name = "take" version = "1.18.3" [[object]] name = "Gst.Uri" status = "generate" [[object.function]] name = "ref" version = "1.18.3" [[object.function]] name = "unref" version = "1.18.3" [[object.function]] name = "copy" version = "1.18.3" gstreamer-sys-0.23.0/LICENSE000064400000000000000000000017771046102023000135340ustar 00000000000000Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. gstreamer-sys-0.23.0/README.md000064400000000000000000000030521046102023000137720ustar 00000000000000# gstreamer-sys [![crates.io](https://img.shields.io/crates/v/gstreamer-sys.svg)](https://crates.io/crates/gstreamer-sys) [![pipeline status](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/badges/main/pipeline.svg)](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/commits/main) [GStreamer](https://gstreamer.freedesktop.org/) FFI bindings for Rust. These bindings are providing unsafe FFI API that can be used to interface with GStreamer. Generally they are meant to be used as the building block for higher-level abstractions like: * Bindings for GStreamer applications and plugins: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs * Various GStreamer plugins written in Rust: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs The bindings are autogenerated with [gir](https://github.com/gtk-rs/gir/) based on the [GObject-Introspection](https://wiki.gnome.org/Projects/GObjectIntrospection/) API metadata provided by the GStreamer project. ## LICENSE gstreamer-sys and all crates contained here are licensed under the MIT license ([LICENSE](LICENSE) or http://opensource.org/licenses/MIT). GStreamer itself is licensed under the Lesser General Public License version 2.1 or (at your option) any later version: https://www.gnu.org/licenses/lgpl-2.1.html ## Contribution Any kinds of contributions are welcome as a pull request. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in gstreamer-rs by you shall be licensed under the MIT license as above, without any additional terms or conditions. gstreamer-sys-0.23.0/build.rs000064400000000000000000000007761046102023000141720ustar 00000000000000// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #[cfg(not(docsrs))] use std::process; #[cfg(docsrs)] fn main() {} // prevent linking libraries to avoid documentation failure #[cfg(not(docsrs))] fn main() { if let Err(s) = system_deps::Config::new().probe() { println!("cargo:warning={s}"); process::exit(1); } } gstreamer-sys-0.23.0/src/auto/versions.txt000064400000000000000000000003421046102023000166620ustar 00000000000000Generated by gir (https://github.com/gtk-rs/gir @ d7c0763cacbc) from gir-files (https://github.com/gtk-rs/gir-files @ 4d1189172a70) from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git @ db97a3ad67f5) gstreamer-sys-0.23.0/src/lib.rs000064400000000000000000013600661046102023000144320ustar 00000000000000// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)] #![allow( clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms )] #![cfg_attr(docsrs, feature(doc_cfg))] use glib_sys as glib; use gobject_sys as gobject; #[allow(unused_imports)] use libc::{ c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE, }; #[cfg(unix)] #[allow(unused_imports)] use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t}; #[allow(unused_imports)] use glib::{gboolean, gconstpointer, gpointer, GType}; // Aliases pub type GstBufferMapInfo = GstMapInfo; pub type GstClockID = gpointer; pub type GstClockTime = u64; pub type GstClockTimeDiff = i64; pub type GstElementFactoryListType = u64; pub type GstMemoryMapInfo = GstMapInfo; // Enums pub type GstBufferingMode = c_int; pub const GST_BUFFERING_STREAM: GstBufferingMode = 0; pub const GST_BUFFERING_DOWNLOAD: GstBufferingMode = 1; pub const GST_BUFFERING_TIMESHIFT: GstBufferingMode = 2; pub const GST_BUFFERING_LIVE: GstBufferingMode = 3; pub type GstBusSyncReply = c_int; pub const GST_BUS_DROP: GstBusSyncReply = 0; pub const GST_BUS_PASS: GstBusSyncReply = 1; pub const GST_BUS_ASYNC: GstBusSyncReply = 2; pub type GstCapsIntersectMode = c_int; pub const GST_CAPS_INTERSECT_ZIG_ZAG: GstCapsIntersectMode = 0; pub const GST_CAPS_INTERSECT_FIRST: GstCapsIntersectMode = 1; pub type GstClockEntryType = c_int; pub const GST_CLOCK_ENTRY_SINGLE: GstClockEntryType = 0; pub const GST_CLOCK_ENTRY_PERIODIC: GstClockEntryType = 1; pub type GstClockReturn = c_int; pub const GST_CLOCK_OK: GstClockReturn = 0; pub const GST_CLOCK_EARLY: GstClockReturn = 1; pub const GST_CLOCK_UNSCHEDULED: GstClockReturn = 2; pub const GST_CLOCK_BUSY: GstClockReturn = 3; pub const GST_CLOCK_BADTIME: GstClockReturn = 4; pub const GST_CLOCK_ERROR: GstClockReturn = 5; pub const GST_CLOCK_UNSUPPORTED: GstClockReturn = 6; pub const GST_CLOCK_DONE: GstClockReturn = 7; pub type GstClockType = c_int; pub const GST_CLOCK_TYPE_REALTIME: GstClockType = 0; pub const GST_CLOCK_TYPE_MONOTONIC: GstClockType = 1; pub const GST_CLOCK_TYPE_OTHER: GstClockType = 2; pub const GST_CLOCK_TYPE_TAI: GstClockType = 3; pub type GstCoreError = c_int; pub const GST_CORE_ERROR_FAILED: GstCoreError = 1; pub const GST_CORE_ERROR_TOO_LAZY: GstCoreError = 2; pub const GST_CORE_ERROR_NOT_IMPLEMENTED: GstCoreError = 3; pub const GST_CORE_ERROR_STATE_CHANGE: GstCoreError = 4; pub const GST_CORE_ERROR_PAD: GstCoreError = 5; pub const GST_CORE_ERROR_THREAD: GstCoreError = 6; pub const GST_CORE_ERROR_NEGOTIATION: GstCoreError = 7; pub const GST_CORE_ERROR_EVENT: GstCoreError = 8; pub const GST_CORE_ERROR_SEEK: GstCoreError = 9; pub const GST_CORE_ERROR_CAPS: GstCoreError = 10; pub const GST_CORE_ERROR_TAG: GstCoreError = 11; pub const GST_CORE_ERROR_MISSING_PLUGIN: GstCoreError = 12; pub const GST_CORE_ERROR_CLOCK: GstCoreError = 13; pub const GST_CORE_ERROR_DISABLED: GstCoreError = 14; pub const GST_CORE_ERROR_NUM_ERRORS: GstCoreError = 15; pub type GstDebugColorMode = c_int; pub const GST_DEBUG_COLOR_MODE_OFF: GstDebugColorMode = 0; pub const GST_DEBUG_COLOR_MODE_ON: GstDebugColorMode = 1; pub const GST_DEBUG_COLOR_MODE_UNIX: GstDebugColorMode = 2; pub type GstDebugLevel = c_int; pub const GST_LEVEL_NONE: GstDebugLevel = 0; pub const GST_LEVEL_ERROR: GstDebugLevel = 1; pub const GST_LEVEL_WARNING: GstDebugLevel = 2; pub const GST_LEVEL_FIXME: GstDebugLevel = 3; pub const GST_LEVEL_INFO: GstDebugLevel = 4; pub const GST_LEVEL_DEBUG: GstDebugLevel = 5; pub const GST_LEVEL_LOG: GstDebugLevel = 6; pub const GST_LEVEL_TRACE: GstDebugLevel = 7; pub const GST_LEVEL_MEMDUMP: GstDebugLevel = 9; pub const GST_LEVEL_COUNT: GstDebugLevel = 10; pub type GstEventType = c_int; pub const GST_EVENT_UNKNOWN: GstEventType = 0; pub const GST_EVENT_FLUSH_START: GstEventType = 2563; pub const GST_EVENT_FLUSH_STOP: GstEventType = 5127; pub const GST_EVENT_STREAM_START: GstEventType = 10254; pub const GST_EVENT_CAPS: GstEventType = 12814; pub const GST_EVENT_SEGMENT: GstEventType = 17934; pub const GST_EVENT_STREAM_COLLECTION: GstEventType = 19230; pub const GST_EVENT_TAG: GstEventType = 20510; pub const GST_EVENT_BUFFERSIZE: GstEventType = 23054; pub const GST_EVENT_SINK_MESSAGE: GstEventType = 25630; pub const GST_EVENT_STREAM_GROUP_DONE: GstEventType = 26894; pub const GST_EVENT_EOS: GstEventType = 28174; pub const GST_EVENT_TOC: GstEventType = 30750; pub const GST_EVENT_PROTECTION: GstEventType = 33310; pub const GST_EVENT_SEGMENT_DONE: GstEventType = 38406; pub const GST_EVENT_GAP: GstEventType = 40966; pub const GST_EVENT_INSTANT_RATE_CHANGE: GstEventType = 46090; pub const GST_EVENT_QOS: GstEventType = 48641; pub const GST_EVENT_SEEK: GstEventType = 51201; pub const GST_EVENT_NAVIGATION: GstEventType = 53761; pub const GST_EVENT_LATENCY: GstEventType = 56321; pub const GST_EVENT_STEP: GstEventType = 58881; pub const GST_EVENT_RECONFIGURE: GstEventType = 61441; pub const GST_EVENT_TOC_SELECT: GstEventType = 64001; pub const GST_EVENT_SELECT_STREAMS: GstEventType = 66561; pub const GST_EVENT_INSTANT_RATE_SYNC_TIME: GstEventType = 66817; pub const GST_EVENT_CUSTOM_UPSTREAM: GstEventType = 69121; pub const GST_EVENT_CUSTOM_DOWNSTREAM: GstEventType = 71686; pub const GST_EVENT_CUSTOM_DOWNSTREAM_OOB: GstEventType = 74242; pub const GST_EVENT_CUSTOM_DOWNSTREAM_STICKY: GstEventType = 76830; pub const GST_EVENT_CUSTOM_BOTH: GstEventType = 79367; pub const GST_EVENT_CUSTOM_BOTH_OOB: GstEventType = 81923; pub type GstFlowReturn = c_int; pub const GST_FLOW_CUSTOM_SUCCESS_2: GstFlowReturn = 102; pub const GST_FLOW_CUSTOM_SUCCESS_1: GstFlowReturn = 101; pub const GST_FLOW_CUSTOM_SUCCESS: GstFlowReturn = 100; pub const GST_FLOW_OK: GstFlowReturn = 0; pub const GST_FLOW_NOT_LINKED: GstFlowReturn = -1; pub const GST_FLOW_FLUSHING: GstFlowReturn = -2; pub const GST_FLOW_EOS: GstFlowReturn = -3; pub const GST_FLOW_NOT_NEGOTIATED: GstFlowReturn = -4; pub const GST_FLOW_ERROR: GstFlowReturn = -5; pub const GST_FLOW_NOT_SUPPORTED: GstFlowReturn = -6; pub const GST_FLOW_CUSTOM_ERROR: GstFlowReturn = -100; pub const GST_FLOW_CUSTOM_ERROR_1: GstFlowReturn = -101; pub const GST_FLOW_CUSTOM_ERROR_2: GstFlowReturn = -102; pub type GstFormat = c_int; pub const GST_FORMAT_UNDEFINED: GstFormat = 0; pub const GST_FORMAT_DEFAULT: GstFormat = 1; pub const GST_FORMAT_BYTES: GstFormat = 2; pub const GST_FORMAT_TIME: GstFormat = 3; pub const GST_FORMAT_BUFFERS: GstFormat = 4; pub const GST_FORMAT_PERCENT: GstFormat = 5; pub type GstIteratorItem = c_int; pub const GST_ITERATOR_ITEM_SKIP: GstIteratorItem = 0; pub const GST_ITERATOR_ITEM_PASS: GstIteratorItem = 1; pub const GST_ITERATOR_ITEM_END: GstIteratorItem = 2; pub type GstIteratorResult = c_int; pub const GST_ITERATOR_DONE: GstIteratorResult = 0; pub const GST_ITERATOR_OK: GstIteratorResult = 1; pub const GST_ITERATOR_RESYNC: GstIteratorResult = 2; pub const GST_ITERATOR_ERROR: GstIteratorResult = 3; pub type GstLibraryError = c_int; pub const GST_LIBRARY_ERROR_FAILED: GstLibraryError = 1; pub const GST_LIBRARY_ERROR_TOO_LAZY: GstLibraryError = 2; pub const GST_LIBRARY_ERROR_INIT: GstLibraryError = 3; pub const GST_LIBRARY_ERROR_SHUTDOWN: GstLibraryError = 4; pub const GST_LIBRARY_ERROR_SETTINGS: GstLibraryError = 5; pub const GST_LIBRARY_ERROR_ENCODE: GstLibraryError = 6; pub const GST_LIBRARY_ERROR_NUM_ERRORS: GstLibraryError = 7; pub type GstPadDirection = c_int; pub const GST_PAD_UNKNOWN: GstPadDirection = 0; pub const GST_PAD_SRC: GstPadDirection = 1; pub const GST_PAD_SINK: GstPadDirection = 2; pub type GstPadLinkReturn = c_int; pub const GST_PAD_LINK_OK: GstPadLinkReturn = 0; pub const GST_PAD_LINK_WRONG_HIERARCHY: GstPadLinkReturn = -1; pub const GST_PAD_LINK_WAS_LINKED: GstPadLinkReturn = -2; pub const GST_PAD_LINK_WRONG_DIRECTION: GstPadLinkReturn = -3; pub const GST_PAD_LINK_NOFORMAT: GstPadLinkReturn = -4; pub const GST_PAD_LINK_NOSCHED: GstPadLinkReturn = -5; pub const GST_PAD_LINK_REFUSED: GstPadLinkReturn = -6; pub type GstPadMode = c_int; pub const GST_PAD_MODE_NONE: GstPadMode = 0; pub const GST_PAD_MODE_PUSH: GstPadMode = 1; pub const GST_PAD_MODE_PULL: GstPadMode = 2; pub type GstPadPresence = c_int; pub const GST_PAD_ALWAYS: GstPadPresence = 0; pub const GST_PAD_SOMETIMES: GstPadPresence = 1; pub const GST_PAD_REQUEST: GstPadPresence = 2; pub type GstPadProbeReturn = c_int; pub const GST_PAD_PROBE_DROP: GstPadProbeReturn = 0; pub const GST_PAD_PROBE_OK: GstPadProbeReturn = 1; pub const GST_PAD_PROBE_REMOVE: GstPadProbeReturn = 2; pub const GST_PAD_PROBE_PASS: GstPadProbeReturn = 3; pub const GST_PAD_PROBE_HANDLED: GstPadProbeReturn = 4; pub type GstParseError = c_int; pub const GST_PARSE_ERROR_SYNTAX: GstParseError = 0; pub const GST_PARSE_ERROR_NO_SUCH_ELEMENT: GstParseError = 1; pub const GST_PARSE_ERROR_NO_SUCH_PROPERTY: GstParseError = 2; pub const GST_PARSE_ERROR_LINK: GstParseError = 3; pub const GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY: GstParseError = 4; pub const GST_PARSE_ERROR_EMPTY_BIN: GstParseError = 5; pub const GST_PARSE_ERROR_EMPTY: GstParseError = 6; pub const GST_PARSE_ERROR_DELAYED_LINK: GstParseError = 7; pub type GstPluginError = c_int; pub const GST_PLUGIN_ERROR_MODULE: GstPluginError = 0; pub const GST_PLUGIN_ERROR_DEPENDENCIES: GstPluginError = 1; pub const GST_PLUGIN_ERROR_NAME_MISMATCH: GstPluginError = 2; pub type GstProgressType = c_int; pub const GST_PROGRESS_TYPE_START: GstProgressType = 0; pub const GST_PROGRESS_TYPE_CONTINUE: GstProgressType = 1; pub const GST_PROGRESS_TYPE_COMPLETE: GstProgressType = 2; pub const GST_PROGRESS_TYPE_CANCELED: GstProgressType = 3; pub const GST_PROGRESS_TYPE_ERROR: GstProgressType = 4; pub type GstPromiseResult = c_int; pub const GST_PROMISE_RESULT_PENDING: GstPromiseResult = 0; pub const GST_PROMISE_RESULT_INTERRUPTED: GstPromiseResult = 1; pub const GST_PROMISE_RESULT_REPLIED: GstPromiseResult = 2; pub const GST_PROMISE_RESULT_EXPIRED: GstPromiseResult = 3; pub type GstQOSType = c_int; pub const GST_QOS_TYPE_OVERFLOW: GstQOSType = 0; pub const GST_QOS_TYPE_UNDERFLOW: GstQOSType = 1; pub const GST_QOS_TYPE_THROTTLE: GstQOSType = 2; pub type GstQueryType = c_int; pub const GST_QUERY_UNKNOWN: GstQueryType = 0; pub const GST_QUERY_POSITION: GstQueryType = 2563; pub const GST_QUERY_DURATION: GstQueryType = 5123; pub const GST_QUERY_LATENCY: GstQueryType = 7683; pub const GST_QUERY_JITTER: GstQueryType = 10243; pub const GST_QUERY_RATE: GstQueryType = 12803; pub const GST_QUERY_SEEKING: GstQueryType = 15363; pub const GST_QUERY_SEGMENT: GstQueryType = 17923; pub const GST_QUERY_CONVERT: GstQueryType = 20483; pub const GST_QUERY_FORMATS: GstQueryType = 23043; pub const GST_QUERY_BUFFERING: GstQueryType = 28163; pub const GST_QUERY_CUSTOM: GstQueryType = 30723; pub const GST_QUERY_URI: GstQueryType = 33283; pub const GST_QUERY_ALLOCATION: GstQueryType = 35846; pub const GST_QUERY_SCHEDULING: GstQueryType = 38401; pub const GST_QUERY_ACCEPT_CAPS: GstQueryType = 40963; pub const GST_QUERY_CAPS: GstQueryType = 43523; pub const GST_QUERY_DRAIN: GstQueryType = 46086; pub const GST_QUERY_CONTEXT: GstQueryType = 48643; pub const GST_QUERY_BITRATE: GstQueryType = 51202; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub const GST_QUERY_SELECTABLE: GstQueryType = 53763; pub type GstRank = c_int; pub const GST_RANK_NONE: GstRank = 0; pub const GST_RANK_MARGINAL: GstRank = 64; pub const GST_RANK_SECONDARY: GstRank = 128; pub const GST_RANK_PRIMARY: GstRank = 256; pub type GstResourceError = c_int; pub const GST_RESOURCE_ERROR_FAILED: GstResourceError = 1; pub const GST_RESOURCE_ERROR_TOO_LAZY: GstResourceError = 2; pub const GST_RESOURCE_ERROR_NOT_FOUND: GstResourceError = 3; pub const GST_RESOURCE_ERROR_BUSY: GstResourceError = 4; pub const GST_RESOURCE_ERROR_OPEN_READ: GstResourceError = 5; pub const GST_RESOURCE_ERROR_OPEN_WRITE: GstResourceError = 6; pub const GST_RESOURCE_ERROR_OPEN_READ_WRITE: GstResourceError = 7; pub const GST_RESOURCE_ERROR_CLOSE: GstResourceError = 8; pub const GST_RESOURCE_ERROR_READ: GstResourceError = 9; pub const GST_RESOURCE_ERROR_WRITE: GstResourceError = 10; pub const GST_RESOURCE_ERROR_SEEK: GstResourceError = 11; pub const GST_RESOURCE_ERROR_SYNC: GstResourceError = 12; pub const GST_RESOURCE_ERROR_SETTINGS: GstResourceError = 13; pub const GST_RESOURCE_ERROR_NO_SPACE_LEFT: GstResourceError = 14; pub const GST_RESOURCE_ERROR_NOT_AUTHORIZED: GstResourceError = 15; pub const GST_RESOURCE_ERROR_NUM_ERRORS: GstResourceError = 16; pub type GstSearchMode = c_int; pub const GST_SEARCH_MODE_EXACT: GstSearchMode = 0; pub const GST_SEARCH_MODE_BEFORE: GstSearchMode = 1; pub const GST_SEARCH_MODE_AFTER: GstSearchMode = 2; pub type GstSeekType = c_int; pub const GST_SEEK_TYPE_NONE: GstSeekType = 0; pub const GST_SEEK_TYPE_SET: GstSeekType = 1; pub const GST_SEEK_TYPE_END: GstSeekType = 2; pub type GstState = c_int; pub const GST_STATE_VOID_PENDING: GstState = 0; pub const GST_STATE_NULL: GstState = 1; pub const GST_STATE_READY: GstState = 2; pub const GST_STATE_PAUSED: GstState = 3; pub const GST_STATE_PLAYING: GstState = 4; pub type GstStateChange = c_int; pub const GST_STATE_CHANGE_NULL_TO_READY: GstStateChange = 10; pub const GST_STATE_CHANGE_READY_TO_PAUSED: GstStateChange = 19; pub const GST_STATE_CHANGE_PAUSED_TO_PLAYING: GstStateChange = 28; pub const GST_STATE_CHANGE_PLAYING_TO_PAUSED: GstStateChange = 35; pub const GST_STATE_CHANGE_PAUSED_TO_READY: GstStateChange = 26; pub const GST_STATE_CHANGE_READY_TO_NULL: GstStateChange = 17; pub const GST_STATE_CHANGE_NULL_TO_NULL: GstStateChange = 9; pub const GST_STATE_CHANGE_READY_TO_READY: GstStateChange = 18; pub const GST_STATE_CHANGE_PAUSED_TO_PAUSED: GstStateChange = 27; pub const GST_STATE_CHANGE_PLAYING_TO_PLAYING: GstStateChange = 36; pub type GstStateChangeReturn = c_int; pub const GST_STATE_CHANGE_FAILURE: GstStateChangeReturn = 0; pub const GST_STATE_CHANGE_SUCCESS: GstStateChangeReturn = 1; pub const GST_STATE_CHANGE_ASYNC: GstStateChangeReturn = 2; pub const GST_STATE_CHANGE_NO_PREROLL: GstStateChangeReturn = 3; pub type GstStreamError = c_int; pub const GST_STREAM_ERROR_FAILED: GstStreamError = 1; pub const GST_STREAM_ERROR_TOO_LAZY: GstStreamError = 2; pub const GST_STREAM_ERROR_NOT_IMPLEMENTED: GstStreamError = 3; pub const GST_STREAM_ERROR_TYPE_NOT_FOUND: GstStreamError = 4; pub const GST_STREAM_ERROR_WRONG_TYPE: GstStreamError = 5; pub const GST_STREAM_ERROR_CODEC_NOT_FOUND: GstStreamError = 6; pub const GST_STREAM_ERROR_DECODE: GstStreamError = 7; pub const GST_STREAM_ERROR_ENCODE: GstStreamError = 8; pub const GST_STREAM_ERROR_DEMUX: GstStreamError = 9; pub const GST_STREAM_ERROR_MUX: GstStreamError = 10; pub const GST_STREAM_ERROR_FORMAT: GstStreamError = 11; pub const GST_STREAM_ERROR_DECRYPT: GstStreamError = 12; pub const GST_STREAM_ERROR_DECRYPT_NOKEY: GstStreamError = 13; pub const GST_STREAM_ERROR_NUM_ERRORS: GstStreamError = 14; pub type GstStreamStatusType = c_int; pub const GST_STREAM_STATUS_TYPE_CREATE: GstStreamStatusType = 0; pub const GST_STREAM_STATUS_TYPE_ENTER: GstStreamStatusType = 1; pub const GST_STREAM_STATUS_TYPE_LEAVE: GstStreamStatusType = 2; pub const GST_STREAM_STATUS_TYPE_DESTROY: GstStreamStatusType = 3; pub const GST_STREAM_STATUS_TYPE_START: GstStreamStatusType = 8; pub const GST_STREAM_STATUS_TYPE_PAUSE: GstStreamStatusType = 9; pub const GST_STREAM_STATUS_TYPE_STOP: GstStreamStatusType = 10; pub type GstStructureChangeType = c_int; pub const GST_STRUCTURE_CHANGE_TYPE_PAD_LINK: GstStructureChangeType = 0; pub const GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK: GstStructureChangeType = 1; pub type GstTagFlag = c_int; pub const GST_TAG_FLAG_UNDEFINED: GstTagFlag = 0; pub const GST_TAG_FLAG_META: GstTagFlag = 1; pub const GST_TAG_FLAG_ENCODED: GstTagFlag = 2; pub const GST_TAG_FLAG_DECODED: GstTagFlag = 3; pub const GST_TAG_FLAG_COUNT: GstTagFlag = 4; pub type GstTagMergeMode = c_int; pub const GST_TAG_MERGE_UNDEFINED: GstTagMergeMode = 0; pub const GST_TAG_MERGE_REPLACE_ALL: GstTagMergeMode = 1; pub const GST_TAG_MERGE_REPLACE: GstTagMergeMode = 2; pub const GST_TAG_MERGE_APPEND: GstTagMergeMode = 3; pub const GST_TAG_MERGE_PREPEND: GstTagMergeMode = 4; pub const GST_TAG_MERGE_KEEP: GstTagMergeMode = 5; pub const GST_TAG_MERGE_KEEP_ALL: GstTagMergeMode = 6; pub const GST_TAG_MERGE_COUNT: GstTagMergeMode = 7; pub type GstTagScope = c_int; pub const GST_TAG_SCOPE_STREAM: GstTagScope = 0; pub const GST_TAG_SCOPE_GLOBAL: GstTagScope = 1; pub type GstTaskState = c_int; pub const GST_TASK_STARTED: GstTaskState = 0; pub const GST_TASK_STOPPED: GstTaskState = 1; pub const GST_TASK_PAUSED: GstTaskState = 2; pub type GstTocEntryType = c_int; pub const GST_TOC_ENTRY_TYPE_ANGLE: GstTocEntryType = -3; pub const GST_TOC_ENTRY_TYPE_VERSION: GstTocEntryType = -2; pub const GST_TOC_ENTRY_TYPE_EDITION: GstTocEntryType = -1; pub const GST_TOC_ENTRY_TYPE_INVALID: GstTocEntryType = 0; pub const GST_TOC_ENTRY_TYPE_TITLE: GstTocEntryType = 1; pub const GST_TOC_ENTRY_TYPE_TRACK: GstTocEntryType = 2; pub const GST_TOC_ENTRY_TYPE_CHAPTER: GstTocEntryType = 3; pub type GstTocLoopType = c_int; pub const GST_TOC_LOOP_NONE: GstTocLoopType = 0; pub const GST_TOC_LOOP_FORWARD: GstTocLoopType = 1; pub const GST_TOC_LOOP_REVERSE: GstTocLoopType = 2; pub const GST_TOC_LOOP_PING_PONG: GstTocLoopType = 3; pub type GstTocScope = c_int; pub const GST_TOC_SCOPE_GLOBAL: GstTocScope = 1; pub const GST_TOC_SCOPE_CURRENT: GstTocScope = 2; pub type GstTracerValueScope = c_int; pub const GST_TRACER_VALUE_SCOPE_PROCESS: GstTracerValueScope = 0; pub const GST_TRACER_VALUE_SCOPE_THREAD: GstTracerValueScope = 1; pub const GST_TRACER_VALUE_SCOPE_ELEMENT: GstTracerValueScope = 2; pub const GST_TRACER_VALUE_SCOPE_PAD: GstTracerValueScope = 3; pub type GstTypeFindProbability = c_int; pub const GST_TYPE_FIND_NONE: GstTypeFindProbability = 0; pub const GST_TYPE_FIND_MINIMUM: GstTypeFindProbability = 1; pub const GST_TYPE_FIND_POSSIBLE: GstTypeFindProbability = 50; pub const GST_TYPE_FIND_LIKELY: GstTypeFindProbability = 80; pub const GST_TYPE_FIND_NEARLY_CERTAIN: GstTypeFindProbability = 99; pub const GST_TYPE_FIND_MAXIMUM: GstTypeFindProbability = 100; pub type GstURIError = c_int; pub const GST_URI_ERROR_UNSUPPORTED_PROTOCOL: GstURIError = 0; pub const GST_URI_ERROR_BAD_URI: GstURIError = 1; pub const GST_URI_ERROR_BAD_STATE: GstURIError = 2; pub const GST_URI_ERROR_BAD_REFERENCE: GstURIError = 3; pub type GstURIType = c_int; pub const GST_URI_UNKNOWN: GstURIType = 0; pub const GST_URI_SINK: GstURIType = 1; pub const GST_URI_SRC: GstURIType = 2; // Constants pub const GST_ALLOCATOR_SYSMEM: &[u8] = b"SystemMemory\0"; pub const GST_BUFFER_COPY_ALL: GstBufferCopyFlags = 15; pub const GST_BUFFER_COPY_METADATA: GstBufferCopyFlags = 7; pub const GST_BUFFER_OFFSET_NONE: u64 = 18446744073709551615; pub const GST_CAN_INLINE: c_int = 1; pub const GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY: &[u8] = b"memory:SystemMemory\0"; pub const GST_CLOCK_TIME_NONE: GstClockTime = 18446744073709551615; pub const GST_DEBUG_BG_MASK: c_int = 240; pub const GST_DEBUG_FG_MASK: c_int = 15; pub const GST_DEBUG_FORMAT_MASK: c_int = 65280; pub const GST_ELEMENT_FACTORY_KLASS_DECODER: &[u8] = b"Decoder\0"; pub const GST_ELEMENT_FACTORY_KLASS_DECRYPTOR: &[u8] = b"Decryptor\0"; pub const GST_ELEMENT_FACTORY_KLASS_DEMUXER: &[u8] = b"Demuxer\0"; pub const GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER: &[u8] = b"Depayloader\0"; pub const GST_ELEMENT_FACTORY_KLASS_ENCODER: &[u8] = b"Encoder\0"; pub const GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR: &[u8] = b"Encryptor\0"; pub const GST_ELEMENT_FACTORY_KLASS_FORMATTER: &[u8] = b"Formatter\0"; pub const GST_ELEMENT_FACTORY_KLASS_HARDWARE: &[u8] = b"Hardware\0"; pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO: &[u8] = b"Audio\0"; pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE: &[u8] = b"Image\0"; pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA: &[u8] = b"Metadata\0"; pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE: &[u8] = b"Subtitle\0"; pub const GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO: &[u8] = b"Video\0"; pub const GST_ELEMENT_FACTORY_KLASS_MUXER: &[u8] = b"Muxer\0"; pub const GST_ELEMENT_FACTORY_KLASS_PARSER: &[u8] = b"Parser\0"; pub const GST_ELEMENT_FACTORY_KLASS_PAYLOADER: &[u8] = b"Payloader\0"; pub const GST_ELEMENT_FACTORY_KLASS_SINK: &[u8] = b"Sink\0"; pub const GST_ELEMENT_FACTORY_KLASS_SRC: &[u8] = b"Source\0"; pub const GST_ELEMENT_FACTORY_TYPE_ANY: GstElementFactoryListType = 562949953421311; pub const GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS: GstElementFactoryListType = 3940649673949188; pub const GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER: GstElementFactoryListType = 1125899906842626; pub const GST_ELEMENT_FACTORY_TYPE_DECODABLE: GstElementFactoryListType = 1377; pub const GST_ELEMENT_FACTORY_TYPE_DECODER: GstElementFactoryListType = 1; pub const GST_ELEMENT_FACTORY_TYPE_DECRYPTOR: GstElementFactoryListType = 1024; pub const GST_ELEMENT_FACTORY_TYPE_DEMUXER: GstElementFactoryListType = 32; pub const GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER: GstElementFactoryListType = 256; pub const GST_ELEMENT_FACTORY_TYPE_ENCODER: GstElementFactoryListType = 2; pub const GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR: GstElementFactoryListType = 2048; pub const GST_ELEMENT_FACTORY_TYPE_FORMATTER: GstElementFactoryListType = 512; pub const GST_ELEMENT_FACTORY_TYPE_HARDWARE: GstElementFactoryListType = 4096; pub const GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS: GstElementFactoryListType = 281474976710656; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY: GstElementFactoryListType = 18446462598732840960; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO: GstElementFactoryListType = 1125899906842624; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE: GstElementFactoryListType = 2251799813685248; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA: GstElementFactoryListType = 9007199254740992; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE: GstElementFactoryListType = 4503599627370496; pub const GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO: GstElementFactoryListType = 562949953421312; pub const GST_ELEMENT_FACTORY_TYPE_MUXER: GstElementFactoryListType = 16; pub const GST_ELEMENT_FACTORY_TYPE_PARSER: GstElementFactoryListType = 64; pub const GST_ELEMENT_FACTORY_TYPE_PAYLOADER: GstElementFactoryListType = 128; pub const GST_ELEMENT_FACTORY_TYPE_SINK: GstElementFactoryListType = 4; pub const GST_ELEMENT_FACTORY_TYPE_SRC: GstElementFactoryListType = 8; pub const GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER: GstElementFactoryListType = 8192; pub const GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER: GstElementFactoryListType = 2814749767106562; pub const GST_ELEMENT_METADATA_AUTHOR: &[u8] = b"author\0"; pub const GST_ELEMENT_METADATA_DESCRIPTION: &[u8] = b"description\0"; pub const GST_ELEMENT_METADATA_DOC_URI: &[u8] = b"doc-uri\0"; pub const GST_ELEMENT_METADATA_ICON_NAME: &[u8] = b"icon-name\0"; pub const GST_ELEMENT_METADATA_KLASS: &[u8] = b"klass\0"; pub const GST_ELEMENT_METADATA_LONGNAME: &[u8] = b"long-name\0"; pub const GST_EVENT_NUM_SHIFT: c_int = 8; pub const GST_EVENT_TYPE_BOTH: GstEventTypeFlags = 3; pub const GST_FLAG_SET_MASK_EXACT: c_uint = 4294967295; pub const GST_FORMAT_PERCENT_MAX: i64 = 1000000; pub const GST_FORMAT_PERCENT_SCALE: i64 = 10000; pub const GST_GROUP_ID_INVALID: c_int = 0; pub const GST_LICENSE_UNKNOWN: &[u8] = b"unknown\0"; pub const GST_LOCK_FLAG_READWRITE: GstLockFlags = 3; pub const GST_MAP_READWRITE: GstMapFlags = 3; pub const GST_META_TAG_MEMORY_REFERENCE_STR: &[u8] = b"memory-reference\0"; pub const GST_META_TAG_MEMORY_STR: &[u8] = b"memory\0"; pub const GST_MSECOND: GstClockTimeDiff = 1000000; pub const GST_NSECOND: GstClockTimeDiff = 1; pub const GST_PARAM_CONDITIONALLY_AVAILABLE: c_int = 16384; pub const GST_PARAM_CONTROLLABLE: c_int = 512; pub const GST_PARAM_DOC_SHOW_DEFAULT: c_int = 8192; pub const GST_PARAM_MUTABLE_PAUSED: c_int = 2048; pub const GST_PARAM_MUTABLE_PLAYING: c_int = 4096; pub const GST_PARAM_MUTABLE_READY: c_int = 1024; pub const GST_PARAM_USER_SHIFT: c_int = 65536; pub const GST_PROTECTION_SYSTEM_ID_CAPS_FIELD: &[u8] = b"protection-system\0"; pub const GST_PROTECTION_UNSPECIFIED_SYSTEM_ID: &[u8] = b"unspecified-system-id\0"; pub const GST_QUERY_NUM_SHIFT: c_int = 8; pub const GST_QUERY_TYPE_BOTH: GstQueryTypeFlags = 3; pub const GST_SECOND: GstClockTimeDiff = 1000000000; pub const GST_SEGMENT_INSTANT_FLAGS: c_int = 912; pub const GST_SEQNUM_INVALID: c_int = 0; pub const GST_TAG_ALBUM: &[u8] = b"album\0"; pub const GST_TAG_ALBUM_ARTIST: &[u8] = b"album-artist\0"; pub const GST_TAG_ALBUM_ARTIST_SORTNAME: &[u8] = b"album-artist-sortname\0"; pub const GST_TAG_ALBUM_GAIN: &[u8] = b"replaygain-album-gain\0"; pub const GST_TAG_ALBUM_PEAK: &[u8] = b"replaygain-album-peak\0"; pub const GST_TAG_ALBUM_SORTNAME: &[u8] = b"album-sortname\0"; pub const GST_TAG_ALBUM_VOLUME_COUNT: &[u8] = b"album-disc-count\0"; pub const GST_TAG_ALBUM_VOLUME_NUMBER: &[u8] = b"album-disc-number\0"; pub const GST_TAG_APPLICATION_DATA: &[u8] = b"application-data\0"; pub const GST_TAG_APPLICATION_NAME: &[u8] = b"application-name\0"; pub const GST_TAG_ARTIST: &[u8] = b"artist\0"; pub const GST_TAG_ARTIST_SORTNAME: &[u8] = b"artist-sortname\0"; pub const GST_TAG_ATTACHMENT: &[u8] = b"attachment\0"; pub const GST_TAG_AUDIO_CODEC: &[u8] = b"audio-codec\0"; pub const GST_TAG_BEATS_PER_MINUTE: &[u8] = b"beats-per-minute\0"; pub const GST_TAG_BITRATE: &[u8] = b"bitrate\0"; pub const GST_TAG_CODEC: &[u8] = b"codec\0"; pub const GST_TAG_COMMENT: &[u8] = b"comment\0"; pub const GST_TAG_COMPOSER: &[u8] = b"composer\0"; pub const GST_TAG_COMPOSER_SORTNAME: &[u8] = b"composer-sortname\0"; pub const GST_TAG_CONDUCTOR: &[u8] = b"conductor\0"; pub const GST_TAG_CONTACT: &[u8] = b"contact\0"; pub const GST_TAG_CONTAINER_FORMAT: &[u8] = b"container-format\0"; pub const GST_TAG_CONTAINER_SPECIFIC_TRACK_ID: &[u8] = b"container-specific-track-id\0"; pub const GST_TAG_COPYRIGHT: &[u8] = b"copyright\0"; pub const GST_TAG_COPYRIGHT_URI: &[u8] = b"copyright-uri\0"; pub const GST_TAG_DATE: &[u8] = b"date\0"; pub const GST_TAG_DATE_TIME: &[u8] = b"datetime\0"; pub const GST_TAG_DESCRIPTION: &[u8] = b"description\0"; pub const GST_TAG_DEVICE_MANUFACTURER: &[u8] = b"device-manufacturer\0"; pub const GST_TAG_DEVICE_MODEL: &[u8] = b"device-model\0"; pub const GST_TAG_DURATION: &[u8] = b"duration\0"; pub const GST_TAG_ENCODED_BY: &[u8] = b"encoded-by\0"; pub const GST_TAG_ENCODER: &[u8] = b"encoder\0"; pub const GST_TAG_ENCODER_VERSION: &[u8] = b"encoder-version\0"; pub const GST_TAG_EXTENDED_COMMENT: &[u8] = b"extended-comment\0"; pub const GST_TAG_GENRE: &[u8] = b"genre\0"; pub const GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION: &[u8] = b"geo-location-capture-direction\0"; pub const GST_TAG_GEO_LOCATION_CITY: &[u8] = b"geo-location-city\0"; pub const GST_TAG_GEO_LOCATION_COUNTRY: &[u8] = b"geo-location-country\0"; pub const GST_TAG_GEO_LOCATION_ELEVATION: &[u8] = b"geo-location-elevation\0"; pub const GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR: &[u8] = b"geo-location-horizontal-error\0"; pub const GST_TAG_GEO_LOCATION_LATITUDE: &[u8] = b"geo-location-latitude\0"; pub const GST_TAG_GEO_LOCATION_LONGITUDE: &[u8] = b"geo-location-longitude\0"; pub const GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION: &[u8] = b"geo-location-movement-direction\0"; pub const GST_TAG_GEO_LOCATION_MOVEMENT_SPEED: &[u8] = b"geo-location-movement-speed\0"; pub const GST_TAG_GEO_LOCATION_NAME: &[u8] = b"geo-location-name\0"; pub const GST_TAG_GEO_LOCATION_SUBLOCATION: &[u8] = b"geo-location-sublocation\0"; pub const GST_TAG_GROUPING: &[u8] = b"grouping\0"; pub const GST_TAG_HOMEPAGE: &[u8] = b"homepage\0"; pub const GST_TAG_IMAGE: &[u8] = b"image\0"; pub const GST_TAG_IMAGE_ORIENTATION: &[u8] = b"image-orientation\0"; pub const GST_TAG_INTERPRETED_BY: &[u8] = b"interpreted-by\0"; pub const GST_TAG_ISRC: &[u8] = b"isrc\0"; pub const GST_TAG_KEYWORDS: &[u8] = b"keywords\0"; pub const GST_TAG_LANGUAGE_CODE: &[u8] = b"language-code\0"; pub const GST_TAG_LANGUAGE_NAME: &[u8] = b"language-name\0"; pub const GST_TAG_LICENSE: &[u8] = b"license\0"; pub const GST_TAG_LICENSE_URI: &[u8] = b"license-uri\0"; pub const GST_TAG_LOCATION: &[u8] = b"location\0"; pub const GST_TAG_LYRICS: &[u8] = b"lyrics\0"; pub const GST_TAG_MAXIMUM_BITRATE: &[u8] = b"maximum-bitrate\0"; pub const GST_TAG_MIDI_BASE_NOTE: &[u8] = b"midi-base-note\0"; pub const GST_TAG_MINIMUM_BITRATE: &[u8] = b"minimum-bitrate\0"; pub const GST_TAG_NOMINAL_BITRATE: &[u8] = b"nominal-bitrate\0"; pub const GST_TAG_ORGANIZATION: &[u8] = b"organization\0"; pub const GST_TAG_PERFORMER: &[u8] = b"performer\0"; pub const GST_TAG_PREVIEW_IMAGE: &[u8] = b"preview-image\0"; pub const GST_TAG_PRIVATE_DATA: &[u8] = b"private-data\0"; pub const GST_TAG_PUBLISHER: &[u8] = b"publisher\0"; pub const GST_TAG_REFERENCE_LEVEL: &[u8] = b"replaygain-reference-level\0"; pub const GST_TAG_SERIAL: &[u8] = b"serial\0"; pub const GST_TAG_SHOW_EPISODE_NUMBER: &[u8] = b"show-episode-number\0"; pub const GST_TAG_SHOW_NAME: &[u8] = b"show-name\0"; pub const GST_TAG_SHOW_SEASON_NUMBER: &[u8] = b"show-season-number\0"; pub const GST_TAG_SHOW_SORTNAME: &[u8] = b"show-sortname\0"; pub const GST_TAG_SUBTITLE_CODEC: &[u8] = b"subtitle-codec\0"; pub const GST_TAG_TITLE: &[u8] = b"title\0"; pub const GST_TAG_TITLE_SORTNAME: &[u8] = b"title-sortname\0"; pub const GST_TAG_TRACK_COUNT: &[u8] = b"track-count\0"; pub const GST_TAG_TRACK_GAIN: &[u8] = b"replaygain-track-gain\0"; pub const GST_TAG_TRACK_NUMBER: &[u8] = b"track-number\0"; pub const GST_TAG_TRACK_PEAK: &[u8] = b"replaygain-track-peak\0"; pub const GST_TAG_USER_RATING: &[u8] = b"user-rating\0"; pub const GST_TAG_VERSION: &[u8] = b"version\0"; pub const GST_TAG_VIDEO_CODEC: &[u8] = b"video-codec\0"; pub const GST_TOC_REPEAT_COUNT_INFINITE: c_int = -1; pub const GST_URI_NO_PORT: c_int = 0; pub const GST_USECOND: GstClockTimeDiff = 1000; pub const GST_VALUE_EQUAL: c_int = 0; pub const GST_VALUE_GREATER_THAN: c_int = 1; pub const GST_VALUE_LESS_THAN: c_int = -1; pub const GST_VALUE_UNORDERED: c_int = 2; // Flags pub type GstAllocatorFlags = c_uint; pub const GST_ALLOCATOR_FLAG_CUSTOM_ALLOC: GstAllocatorFlags = 16; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub const GST_ALLOCATOR_FLAG_NO_COPY: GstAllocatorFlags = 32; pub const GST_ALLOCATOR_FLAG_LAST: GstAllocatorFlags = 1048576; pub type GstBinFlags = c_uint; pub const GST_BIN_FLAG_NO_RESYNC: GstBinFlags = 16384; pub const GST_BIN_FLAG_STREAMS_AWARE: GstBinFlags = 32768; pub const GST_BIN_FLAG_LAST: GstBinFlags = 524288; pub type GstBufferCopyFlags = c_uint; pub const GST_BUFFER_COPY_NONE: GstBufferCopyFlags = 0; pub const GST_BUFFER_COPY_FLAGS: GstBufferCopyFlags = 1; pub const GST_BUFFER_COPY_TIMESTAMPS: GstBufferCopyFlags = 2; pub const GST_BUFFER_COPY_META: GstBufferCopyFlags = 4; pub const GST_BUFFER_COPY_MEMORY: GstBufferCopyFlags = 8; pub const GST_BUFFER_COPY_MERGE: GstBufferCopyFlags = 16; pub const GST_BUFFER_COPY_DEEP: GstBufferCopyFlags = 32; pub type GstBufferFlags = c_uint; pub const GST_BUFFER_FLAG_LIVE: GstBufferFlags = 16; pub const GST_BUFFER_FLAG_DECODE_ONLY: GstBufferFlags = 32; pub const GST_BUFFER_FLAG_DISCONT: GstBufferFlags = 64; pub const GST_BUFFER_FLAG_RESYNC: GstBufferFlags = 128; pub const GST_BUFFER_FLAG_CORRUPTED: GstBufferFlags = 256; pub const GST_BUFFER_FLAG_MARKER: GstBufferFlags = 512; pub const GST_BUFFER_FLAG_HEADER: GstBufferFlags = 1024; pub const GST_BUFFER_FLAG_GAP: GstBufferFlags = 2048; pub const GST_BUFFER_FLAG_DROPPABLE: GstBufferFlags = 4096; pub const GST_BUFFER_FLAG_DELTA_UNIT: GstBufferFlags = 8192; pub const GST_BUFFER_FLAG_TAG_MEMORY: GstBufferFlags = 16384; pub const GST_BUFFER_FLAG_SYNC_AFTER: GstBufferFlags = 32768; pub const GST_BUFFER_FLAG_NON_DROPPABLE: GstBufferFlags = 65536; pub const GST_BUFFER_FLAG_LAST: GstBufferFlags = 1048576; pub type GstBufferPoolAcquireFlags = c_uint; pub const GST_BUFFER_POOL_ACQUIRE_FLAG_NONE: GstBufferPoolAcquireFlags = 0; pub const GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT: GstBufferPoolAcquireFlags = 1; pub const GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT: GstBufferPoolAcquireFlags = 2; pub const GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT: GstBufferPoolAcquireFlags = 4; pub const GST_BUFFER_POOL_ACQUIRE_FLAG_LAST: GstBufferPoolAcquireFlags = 65536; pub type GstBusFlags = c_uint; pub const GST_BUS_FLUSHING: GstBusFlags = 16; pub const GST_BUS_FLAG_LAST: GstBusFlags = 32; pub type GstCapsFlags = c_uint; pub const GST_CAPS_FLAG_ANY: GstCapsFlags = 16; pub type GstClockFlags = c_uint; pub const GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC: GstClockFlags = 16; pub const GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC: GstClockFlags = 32; pub const GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC: GstClockFlags = 64; pub const GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC: GstClockFlags = 128; pub const GST_CLOCK_FLAG_CAN_SET_RESOLUTION: GstClockFlags = 256; pub const GST_CLOCK_FLAG_CAN_SET_MASTER: GstClockFlags = 512; pub const GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC: GstClockFlags = 1024; pub const GST_CLOCK_FLAG_LAST: GstClockFlags = 4096; pub type GstDebugColorFlags = c_uint; pub const GST_DEBUG_FG_BLACK: GstDebugColorFlags = 0; pub const GST_DEBUG_FG_RED: GstDebugColorFlags = 1; pub const GST_DEBUG_FG_GREEN: GstDebugColorFlags = 2; pub const GST_DEBUG_FG_YELLOW: GstDebugColorFlags = 3; pub const GST_DEBUG_FG_BLUE: GstDebugColorFlags = 4; pub const GST_DEBUG_FG_MAGENTA: GstDebugColorFlags = 5; pub const GST_DEBUG_FG_CYAN: GstDebugColorFlags = 6; pub const GST_DEBUG_FG_WHITE: GstDebugColorFlags = 7; pub const GST_DEBUG_BG_BLACK: GstDebugColorFlags = 0; pub const GST_DEBUG_BG_RED: GstDebugColorFlags = 16; pub const GST_DEBUG_BG_GREEN: GstDebugColorFlags = 32; pub const GST_DEBUG_BG_YELLOW: GstDebugColorFlags = 48; pub const GST_DEBUG_BG_BLUE: GstDebugColorFlags = 64; pub const GST_DEBUG_BG_MAGENTA: GstDebugColorFlags = 80; pub const GST_DEBUG_BG_CYAN: GstDebugColorFlags = 96; pub const GST_DEBUG_BG_WHITE: GstDebugColorFlags = 112; pub const GST_DEBUG_BOLD: GstDebugColorFlags = 256; pub const GST_DEBUG_UNDERLINE: GstDebugColorFlags = 512; pub type GstDebugGraphDetails = c_uint; pub const GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE: GstDebugGraphDetails = 1; pub const GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS: GstDebugGraphDetails = 2; pub const GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS: GstDebugGraphDetails = 4; pub const GST_DEBUG_GRAPH_SHOW_STATES: GstDebugGraphDetails = 8; pub const GST_DEBUG_GRAPH_SHOW_FULL_PARAMS: GstDebugGraphDetails = 16; pub const GST_DEBUG_GRAPH_SHOW_ALL: GstDebugGraphDetails = 15; pub const GST_DEBUG_GRAPH_SHOW_VERBOSE: GstDebugGraphDetails = 4294967295; pub type GstElementFlags = c_uint; pub const GST_ELEMENT_FLAG_LOCKED_STATE: GstElementFlags = 16; pub const GST_ELEMENT_FLAG_SINK: GstElementFlags = 32; pub const GST_ELEMENT_FLAG_SOURCE: GstElementFlags = 64; pub const GST_ELEMENT_FLAG_PROVIDE_CLOCK: GstElementFlags = 128; pub const GST_ELEMENT_FLAG_REQUIRE_CLOCK: GstElementFlags = 256; pub const GST_ELEMENT_FLAG_INDEXABLE: GstElementFlags = 512; pub const GST_ELEMENT_FLAG_LAST: GstElementFlags = 16384; pub type GstEventTypeFlags = c_uint; pub const GST_EVENT_TYPE_UPSTREAM: GstEventTypeFlags = 1; pub const GST_EVENT_TYPE_DOWNSTREAM: GstEventTypeFlags = 2; pub const GST_EVENT_TYPE_SERIALIZED: GstEventTypeFlags = 4; pub const GST_EVENT_TYPE_STICKY: GstEventTypeFlags = 8; pub const GST_EVENT_TYPE_STICKY_MULTI: GstEventTypeFlags = 16; pub type GstGapFlags = c_uint; pub const GST_GAP_FLAG_MISSING_DATA: GstGapFlags = 1; pub type GstLockFlags = c_uint; pub const GST_LOCK_FLAG_READ: GstLockFlags = 1; pub const GST_LOCK_FLAG_WRITE: GstLockFlags = 2; pub const GST_LOCK_FLAG_EXCLUSIVE: GstLockFlags = 4; pub const GST_LOCK_FLAG_LAST: GstLockFlags = 256; pub type GstMapFlags = c_uint; pub const GST_MAP_READ: GstMapFlags = 1; pub const GST_MAP_WRITE: GstMapFlags = 2; pub const GST_MAP_FLAG_LAST: GstMapFlags = 65536; pub type GstMemoryFlags = c_uint; pub const GST_MEMORY_FLAG_READONLY: GstMemoryFlags = 2; pub const GST_MEMORY_FLAG_NO_SHARE: GstMemoryFlags = 16; pub const GST_MEMORY_FLAG_ZERO_PREFIXED: GstMemoryFlags = 32; pub const GST_MEMORY_FLAG_ZERO_PADDED: GstMemoryFlags = 64; pub const GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS: GstMemoryFlags = 128; pub const GST_MEMORY_FLAG_NOT_MAPPABLE: GstMemoryFlags = 256; pub const GST_MEMORY_FLAG_LAST: GstMemoryFlags = 1048576; pub type GstMessageType = c_uint; pub const GST_MESSAGE_UNKNOWN: GstMessageType = 0; pub const GST_MESSAGE_EOS: GstMessageType = 1; pub const GST_MESSAGE_ERROR: GstMessageType = 2; pub const GST_MESSAGE_WARNING: GstMessageType = 4; pub const GST_MESSAGE_INFO: GstMessageType = 8; pub const GST_MESSAGE_TAG: GstMessageType = 16; pub const GST_MESSAGE_BUFFERING: GstMessageType = 32; pub const GST_MESSAGE_STATE_CHANGED: GstMessageType = 64; pub const GST_MESSAGE_STATE_DIRTY: GstMessageType = 128; pub const GST_MESSAGE_STEP_DONE: GstMessageType = 256; pub const GST_MESSAGE_CLOCK_PROVIDE: GstMessageType = 512; pub const GST_MESSAGE_CLOCK_LOST: GstMessageType = 1024; pub const GST_MESSAGE_NEW_CLOCK: GstMessageType = 2048; pub const GST_MESSAGE_STRUCTURE_CHANGE: GstMessageType = 4096; pub const GST_MESSAGE_STREAM_STATUS: GstMessageType = 8192; pub const GST_MESSAGE_APPLICATION: GstMessageType = 16384; pub const GST_MESSAGE_ELEMENT: GstMessageType = 32768; pub const GST_MESSAGE_SEGMENT_START: GstMessageType = 65536; pub const GST_MESSAGE_SEGMENT_DONE: GstMessageType = 131072; pub const GST_MESSAGE_DURATION_CHANGED: GstMessageType = 262144; pub const GST_MESSAGE_LATENCY: GstMessageType = 524288; pub const GST_MESSAGE_ASYNC_START: GstMessageType = 1048576; pub const GST_MESSAGE_ASYNC_DONE: GstMessageType = 2097152; pub const GST_MESSAGE_REQUEST_STATE: GstMessageType = 4194304; pub const GST_MESSAGE_STEP_START: GstMessageType = 8388608; pub const GST_MESSAGE_QOS: GstMessageType = 16777216; pub const GST_MESSAGE_PROGRESS: GstMessageType = 33554432; pub const GST_MESSAGE_TOC: GstMessageType = 67108864; pub const GST_MESSAGE_RESET_TIME: GstMessageType = 134217728; pub const GST_MESSAGE_STREAM_START: GstMessageType = 268435456; pub const GST_MESSAGE_NEED_CONTEXT: GstMessageType = 536870912; pub const GST_MESSAGE_HAVE_CONTEXT: GstMessageType = 1073741824; pub const GST_MESSAGE_EXTENDED: GstMessageType = 2147483648; pub const GST_MESSAGE_DEVICE_ADDED: GstMessageType = 2147483649; pub const GST_MESSAGE_DEVICE_REMOVED: GstMessageType = 2147483650; pub const GST_MESSAGE_PROPERTY_NOTIFY: GstMessageType = 2147483651; pub const GST_MESSAGE_STREAM_COLLECTION: GstMessageType = 2147483652; pub const GST_MESSAGE_STREAMS_SELECTED: GstMessageType = 2147483653; pub const GST_MESSAGE_REDIRECT: GstMessageType = 2147483654; pub const GST_MESSAGE_DEVICE_CHANGED: GstMessageType = 2147483655; pub const GST_MESSAGE_INSTANT_RATE_REQUEST: GstMessageType = 2147483656; pub const GST_MESSAGE_ANY: GstMessageType = 4294967295; pub type GstMetaFlags = c_uint; pub const GST_META_FLAG_NONE: GstMetaFlags = 0; pub const GST_META_FLAG_READONLY: GstMetaFlags = 1; pub const GST_META_FLAG_POOLED: GstMetaFlags = 2; pub const GST_META_FLAG_LOCKED: GstMetaFlags = 4; pub const GST_META_FLAG_LAST: GstMetaFlags = 65536; pub type GstMiniObjectFlags = c_uint; pub const GST_MINI_OBJECT_FLAG_LOCKABLE: GstMiniObjectFlags = 1; pub const GST_MINI_OBJECT_FLAG_LOCK_READONLY: GstMiniObjectFlags = 2; pub const GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED: GstMiniObjectFlags = 4; pub const GST_MINI_OBJECT_FLAG_LAST: GstMiniObjectFlags = 16; pub type GstObjectFlags = c_uint; pub const GST_OBJECT_FLAG_MAY_BE_LEAKED: GstObjectFlags = 1; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub const GST_OBJECT_FLAG_CONSTRUCTED: GstObjectFlags = 2; pub const GST_OBJECT_FLAG_LAST: GstObjectFlags = 16; pub type GstPadFlags = c_uint; pub const GST_PAD_FLAG_BLOCKED: GstPadFlags = 16; pub const GST_PAD_FLAG_FLUSHING: GstPadFlags = 32; pub const GST_PAD_FLAG_EOS: GstPadFlags = 64; pub const GST_PAD_FLAG_BLOCKING: GstPadFlags = 128; pub const GST_PAD_FLAG_NEED_PARENT: GstPadFlags = 256; pub const GST_PAD_FLAG_NEED_RECONFIGURE: GstPadFlags = 512; pub const GST_PAD_FLAG_PENDING_EVENTS: GstPadFlags = 1024; pub const GST_PAD_FLAG_FIXED_CAPS: GstPadFlags = 2048; pub const GST_PAD_FLAG_PROXY_CAPS: GstPadFlags = 4096; pub const GST_PAD_FLAG_PROXY_ALLOCATION: GstPadFlags = 8192; pub const GST_PAD_FLAG_PROXY_SCHEDULING: GstPadFlags = 16384; pub const GST_PAD_FLAG_ACCEPT_INTERSECT: GstPadFlags = 32768; pub const GST_PAD_FLAG_ACCEPT_TEMPLATE: GstPadFlags = 65536; pub const GST_PAD_FLAG_LAST: GstPadFlags = 1048576; pub type GstPadLinkCheck = c_uint; pub const GST_PAD_LINK_CHECK_NOTHING: GstPadLinkCheck = 0; pub const GST_PAD_LINK_CHECK_HIERARCHY: GstPadLinkCheck = 1; pub const GST_PAD_LINK_CHECK_TEMPLATE_CAPS: GstPadLinkCheck = 2; pub const GST_PAD_LINK_CHECK_CAPS: GstPadLinkCheck = 4; pub const GST_PAD_LINK_CHECK_NO_RECONFIGURE: GstPadLinkCheck = 8; pub const GST_PAD_LINK_CHECK_DEFAULT: GstPadLinkCheck = 5; pub type GstPadProbeType = c_uint; pub const GST_PAD_PROBE_TYPE_INVALID: GstPadProbeType = 0; pub const GST_PAD_PROBE_TYPE_IDLE: GstPadProbeType = 1; pub const GST_PAD_PROBE_TYPE_BLOCK: GstPadProbeType = 2; pub const GST_PAD_PROBE_TYPE_BUFFER: GstPadProbeType = 16; pub const GST_PAD_PROBE_TYPE_BUFFER_LIST: GstPadProbeType = 32; pub const GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM: GstPadProbeType = 64; pub const GST_PAD_PROBE_TYPE_EVENT_UPSTREAM: GstPadProbeType = 128; pub const GST_PAD_PROBE_TYPE_EVENT_FLUSH: GstPadProbeType = 256; pub const GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM: GstPadProbeType = 512; pub const GST_PAD_PROBE_TYPE_QUERY_UPSTREAM: GstPadProbeType = 1024; pub const GST_PAD_PROBE_TYPE_PUSH: GstPadProbeType = 4096; pub const GST_PAD_PROBE_TYPE_PULL: GstPadProbeType = 8192; pub const GST_PAD_PROBE_TYPE_BLOCKING: GstPadProbeType = 3; pub const GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM: GstPadProbeType = 112; pub const GST_PAD_PROBE_TYPE_DATA_UPSTREAM: GstPadProbeType = 128; pub const GST_PAD_PROBE_TYPE_DATA_BOTH: GstPadProbeType = 240; pub const GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM: GstPadProbeType = 114; pub const GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM: GstPadProbeType = 130; pub const GST_PAD_PROBE_TYPE_EVENT_BOTH: GstPadProbeType = 192; pub const GST_PAD_PROBE_TYPE_QUERY_BOTH: GstPadProbeType = 1536; pub const GST_PAD_PROBE_TYPE_ALL_BOTH: GstPadProbeType = 1776; pub const GST_PAD_PROBE_TYPE_SCHEDULING: GstPadProbeType = 12288; pub type GstPadTemplateFlags = c_uint; pub const GST_PAD_TEMPLATE_FLAG_LAST: GstPadTemplateFlags = 256; pub type GstParseFlags = c_uint; pub const GST_PARSE_FLAG_NONE: GstParseFlags = 0; pub const GST_PARSE_FLAG_FATAL_ERRORS: GstParseFlags = 1; pub const GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS: GstParseFlags = 2; pub const GST_PARSE_FLAG_PLACE_IN_BIN: GstParseFlags = 4; pub type GstPipelineFlags = c_uint; pub const GST_PIPELINE_FLAG_FIXED_CLOCK: GstPipelineFlags = 524288; pub const GST_PIPELINE_FLAG_LAST: GstPipelineFlags = 8388608; pub type GstPluginAPIFlags = c_uint; pub const GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS: GstPluginAPIFlags = 1; pub type GstPluginDependencyFlags = c_uint; pub const GST_PLUGIN_DEPENDENCY_FLAG_NONE: GstPluginDependencyFlags = 0; pub const GST_PLUGIN_DEPENDENCY_FLAG_RECURSE: GstPluginDependencyFlags = 1; pub const GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY: GstPluginDependencyFlags = 2; pub const GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX: GstPluginDependencyFlags = 4; pub const GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX: GstPluginDependencyFlags = 8; pub const GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE: GstPluginDependencyFlags = 16; pub type GstPluginFlags = c_uint; pub const GST_PLUGIN_FLAG_CACHED: GstPluginFlags = 16; pub const GST_PLUGIN_FLAG_BLACKLISTED: GstPluginFlags = 32; pub type GstQueryTypeFlags = c_uint; pub const GST_QUERY_TYPE_UPSTREAM: GstQueryTypeFlags = 1; pub const GST_QUERY_TYPE_DOWNSTREAM: GstQueryTypeFlags = 2; pub const GST_QUERY_TYPE_SERIALIZED: GstQueryTypeFlags = 4; pub type GstSchedulingFlags = c_uint; pub const GST_SCHEDULING_FLAG_SEEKABLE: GstSchedulingFlags = 1; pub const GST_SCHEDULING_FLAG_SEQUENTIAL: GstSchedulingFlags = 2; pub const GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED: GstSchedulingFlags = 4; pub type GstSeekFlags = c_uint; pub const GST_SEEK_FLAG_NONE: GstSeekFlags = 0; pub const GST_SEEK_FLAG_FLUSH: GstSeekFlags = 1; pub const GST_SEEK_FLAG_ACCURATE: GstSeekFlags = 2; pub const GST_SEEK_FLAG_KEY_UNIT: GstSeekFlags = 4; pub const GST_SEEK_FLAG_SEGMENT: GstSeekFlags = 8; pub const GST_SEEK_FLAG_TRICKMODE: GstSeekFlags = 16; pub const GST_SEEK_FLAG_SKIP: GstSeekFlags = 16; pub const GST_SEEK_FLAG_SNAP_BEFORE: GstSeekFlags = 32; pub const GST_SEEK_FLAG_SNAP_AFTER: GstSeekFlags = 64; pub const GST_SEEK_FLAG_SNAP_NEAREST: GstSeekFlags = 96; pub const GST_SEEK_FLAG_TRICKMODE_KEY_UNITS: GstSeekFlags = 128; pub const GST_SEEK_FLAG_TRICKMODE_NO_AUDIO: GstSeekFlags = 256; pub const GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED: GstSeekFlags = 512; pub const GST_SEEK_FLAG_INSTANT_RATE_CHANGE: GstSeekFlags = 1024; pub type GstSegmentFlags = c_uint; pub const GST_SEGMENT_FLAG_NONE: GstSegmentFlags = 0; pub const GST_SEGMENT_FLAG_RESET: GstSegmentFlags = 1; pub const GST_SEGMENT_FLAG_TRICKMODE: GstSegmentFlags = 16; pub const GST_SEGMENT_FLAG_SKIP: GstSegmentFlags = 16; pub const GST_SEGMENT_FLAG_SEGMENT: GstSegmentFlags = 8; pub const GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS: GstSegmentFlags = 128; pub const GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED: GstSegmentFlags = 512; pub const GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO: GstSegmentFlags = 256; pub type GstSerializeFlags = c_uint; pub const GST_SERIALIZE_FLAG_NONE: GstSerializeFlags = 0; pub const GST_SERIALIZE_FLAG_BACKWARD_COMPAT: GstSerializeFlags = 1; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub const GST_SERIALIZE_FLAG_STRICT: GstSerializeFlags = 2; pub type GstStackTraceFlags = c_uint; pub const GST_STACK_TRACE_SHOW_NONE: GstStackTraceFlags = 0; pub const GST_STACK_TRACE_SHOW_FULL: GstStackTraceFlags = 1; pub type GstStreamFlags = c_uint; pub const GST_STREAM_FLAG_NONE: GstStreamFlags = 0; pub const GST_STREAM_FLAG_SPARSE: GstStreamFlags = 1; pub const GST_STREAM_FLAG_SELECT: GstStreamFlags = 2; pub const GST_STREAM_FLAG_UNSELECT: GstStreamFlags = 4; pub type GstStreamType = c_uint; pub const GST_STREAM_TYPE_UNKNOWN: GstStreamType = 1; pub const GST_STREAM_TYPE_AUDIO: GstStreamType = 2; pub const GST_STREAM_TYPE_VIDEO: GstStreamType = 4; pub const GST_STREAM_TYPE_CONTAINER: GstStreamType = 8; pub const GST_STREAM_TYPE_TEXT: GstStreamType = 16; pub type GstTracerValueFlags = c_uint; pub const GST_TRACER_VALUE_FLAGS_NONE: GstTracerValueFlags = 0; pub const GST_TRACER_VALUE_FLAGS_OPTIONAL: GstTracerValueFlags = 1; pub const GST_TRACER_VALUE_FLAGS_AGGREGATED: GstTracerValueFlags = 2; // Unions #[derive(Copy, Clone)] #[repr(C)] pub union GstControlBinding_ABI { pub abi: GstControlBinding_ABI_abi, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstControlBinding_ABI { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlBinding_ABI @ {self:p}")) .field("abi", unsafe { &self.abi }) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub union GstPadProbeInfo_ABI { pub _gst_reserved: [gpointer; 4], pub abi: GstPadProbeInfo_ABI_abi, } impl ::std::fmt::Debug for GstPadProbeInfo_ABI { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadProbeInfo_ABI @ {self:p}")) .field("_gst_reserved", unsafe { &self._gst_reserved }) .field("abi", unsafe { &self.abi }) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub union GstPadTemplate_ABI { pub _gst_reserved: [gpointer; 4], pub abi: GstPadTemplate_ABI_abi, } impl ::std::fmt::Debug for GstPadTemplate_ABI { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadTemplate_ABI @ {self:p}")) .field("_gst_reserved", unsafe { &self._gst_reserved }) .field("abi", unsafe { &self.abi }) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub union GstPad_ABI { pub _gst_reserved: [gpointer; 4], pub abi: GstPad_ABI_abi, } impl ::std::fmt::Debug for GstPad_ABI { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPad_ABI @ {self:p}")) .field("_gst_reserved", unsafe { &self._gst_reserved }) .field("abi", unsafe { &self.abi }) .finish() } } // Callbacks pub type GstBufferForeachMetaFunc = Option gboolean>; pub type GstBufferListFunc = Option gboolean>; pub type GstBusFunc = Option gboolean>; pub type GstBusSyncHandler = Option GstBusSyncReply>; pub type GstCapsFilterMapFunc = Option gboolean>; pub type GstCapsForeachFunc = Option gboolean>; pub type GstCapsMapFunc = Option gboolean>; pub type GstClockCallback = Option gboolean>; pub type GstControlBindingConvert = Option; pub type GstControlSourceGetValue = Option gboolean>; pub type GstControlSourceGetValueArray = Option< unsafe extern "C" fn( *mut GstControlSource, GstClockTime, GstClockTime, c_uint, *mut c_double, ) -> gboolean, >; pub type GstCustomMetaTransformFunction = Option< unsafe extern "C" fn( *mut GstBuffer, *mut GstCustomMeta, *mut GstBuffer, glib::GQuark, gpointer, gpointer, ) -> gboolean, >; pub type GstDebugFuncPtr = Option; pub type GstElementCallAsyncFunc = Option; pub type GstElementForeachPadFunc = Option gboolean>; pub type GstIteratorCopyFunction = Option; pub type GstIteratorFoldFunction = Option< unsafe extern "C" fn(*const gobject::GValue, *mut gobject::GValue, gpointer) -> gboolean, >; pub type GstIteratorForeachFunction = Option; pub type GstIteratorFreeFunction = Option; pub type GstIteratorItemFunction = Option GstIteratorItem>; pub type GstIteratorNextFunction = Option GstIteratorResult>; pub type GstIteratorResyncFunction = Option; pub type GstLogFunction = Option< unsafe extern "C" fn( *mut GstDebugCategory, GstDebugLevel, *const c_char, *const c_char, c_int, *mut gobject::GObject, *mut GstDebugMessage, gpointer, ), >; pub type GstMemoryCopyFunction = Option *mut GstMemory>; pub type GstMemoryIsSpanFunction = Option gboolean>; pub type GstMemoryMapFullFunction = Option gpointer>; pub type GstMemoryMapFunction = Option gpointer>; pub type GstMemoryShareFunction = Option *mut GstMemory>; pub type GstMemoryUnmapFullFunction = Option; pub type GstMemoryUnmapFunction = Option; pub type GstMetaClearFunction = Option; pub type GstMetaDeserializeFunction = Option< unsafe extern "C" fn(*const GstMetaInfo, *mut GstBuffer, *const u8, size_t, u8) -> *mut GstMeta, >; pub type GstMetaFreeFunction = Option; pub type GstMetaInitFunction = Option gboolean>; pub type GstMetaSerializeFunction = Option gboolean>; pub type GstMetaTransformFunction = Option< unsafe extern "C" fn( *mut GstBuffer, *mut GstMeta, *mut GstBuffer, glib::GQuark, gpointer, ) -> gboolean, >; pub type GstMiniObjectCopyFunction = Option *mut GstMiniObject>; pub type GstMiniObjectDisposeFunction = Option gboolean>; pub type GstMiniObjectFreeFunction = Option; pub type GstMiniObjectNotify = Option; pub type GstPadActivateFunction = Option gboolean>; pub type GstPadActivateModeFunction = Option gboolean>; pub type GstPadChainFunction = Option GstFlowReturn>; pub type GstPadChainListFunction = Option GstFlowReturn>; pub type GstPadEventFullFunction = Option GstFlowReturn>; pub type GstPadEventFunction = Option gboolean>; pub type GstPadForwardFunction = Option gboolean>; pub type GstPadGetRangeFunction = Option< unsafe extern "C" fn( *mut GstPad, *mut GstObject, u64, c_uint, *mut *mut GstBuffer, ) -> GstFlowReturn, >; pub type GstPadIterIntLinkFunction = Option *mut GstIterator>; pub type GstPadLinkFunction = Option GstPadLinkReturn>; pub type GstPadProbeCallback = Option GstPadProbeReturn>; pub type GstPadQueryFunction = Option gboolean>; pub type GstPadStickyEventsForeachFunction = Option gboolean>; pub type GstPadUnlinkFunction = Option; pub type GstPluginFeatureFilter = Option gboolean>; pub type GstPluginFilter = Option gboolean>; pub type GstPluginInitFullFunc = Option gboolean>; pub type GstPluginInitFunc = Option gboolean>; pub type GstPromiseChangeFunc = Option; pub type GstStructureFilterMapFunc = Option gboolean>; pub type GstStructureForeachFunc = Option gboolean>; pub type GstStructureMapFunc = Option gboolean>; pub type GstTagForeachFunc = Option; pub type GstTagMergeFunc = Option; pub type GstTaskFunction = Option; pub type GstTaskPoolFunction = Option; pub type GstTaskThreadFunc = Option; pub type GstTypeFindFunction = Option; pub type GstValueCompareFunc = Option c_int>; pub type GstValueDeserializeFunc = Option gboolean>; pub type GstValueDeserializeWithPSpecFunc = Option< unsafe extern "C" fn(*mut gobject::GValue, *const c_char, *mut gobject::GParamSpec) -> gboolean, >; pub type GstValueSerializeFunc = Option *mut c_char>; // Records #[derive(Copy, Clone)] #[repr(C)] pub struct GstAllocationParams { pub flags: GstMemoryFlags, pub align: size_t, pub prefix: size_t, pub padding: size_t, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstAllocationParams { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstAllocationParams @ {self:p}")) .field("flags", &self.flags) .field("align", &self.align) .field("prefix", &self.prefix) .field("padding", &self.padding) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstAllocatorClass { pub object_class: GstObjectClass, pub alloc: Option< unsafe extern "C" fn(*mut GstAllocator, size_t, *mut GstAllocationParams) -> *mut GstMemory, >, pub free: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstAllocatorClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstAllocatorClass @ {self:p}")) .field("object_class", &self.object_class) .field("alloc", &self.alloc) .field("free", &self.free) .finish() } } #[repr(C)] pub struct _GstAllocatorPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstAllocatorPrivate = _GstAllocatorPrivate; #[repr(C)] pub struct GstAtomicQueue { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstAtomicQueue { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstAtomicQueue @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBinClass { pub parent_class: GstElementClass, pub pool: *mut glib::GThreadPool, pub element_added: Option, pub element_removed: Option, pub add_element: Option gboolean>, pub remove_element: Option gboolean>, pub handle_message: Option, pub do_latency: Option gboolean>, pub deep_element_added: Option, pub deep_element_removed: Option, pub _gst_reserved: [gpointer; 2], } impl ::std::fmt::Debug for GstBinClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBinClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("element_added", &self.element_added) .field("element_removed", &self.element_removed) .field("add_element", &self.add_element) .field("remove_element", &self.remove_element) .field("handle_message", &self.handle_message) .field("do_latency", &self.do_latency) .field("deep_element_added", &self.deep_element_added) .field("deep_element_removed", &self.deep_element_removed) .finish() } } #[repr(C)] pub struct _GstBinPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstBinPrivate = _GstBinPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstBuffer { pub mini_object: GstMiniObject, pub pool: *mut GstBufferPool, pub pts: GstClockTime, pub dts: GstClockTime, pub duration: GstClockTime, pub offset: u64, pub offset_end: u64, } impl ::std::fmt::Debug for GstBuffer { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBuffer @ {self:p}")) .field("mini_object", &self.mini_object) .field("pool", &self.pool) .field("pts", &self.pts) .field("dts", &self.dts) .field("duration", &self.duration) .field("offset", &self.offset) .field("offset_end", &self.offset_end) .finish() } } #[repr(C)] pub struct GstBufferList { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstBufferList { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBufferList @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBufferPoolAcquireParams { pub format: GstFormat, pub start: i64, pub stop: i64, pub flags: GstBufferPoolAcquireFlags, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstBufferPoolAcquireParams { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBufferPoolAcquireParams @ {self:p}")) .field("format", &self.format) .field("start", &self.start) .field("stop", &self.stop) .field("flags", &self.flags) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBufferPoolClass { pub object_class: GstObjectClass, pub get_options: Option *mut *const c_char>, pub set_config: Option gboolean>, pub start: Option gboolean>, pub stop: Option gboolean>, pub acquire_buffer: Option< unsafe extern "C" fn( *mut GstBufferPool, *mut *mut GstBuffer, *mut GstBufferPoolAcquireParams, ) -> GstFlowReturn, >, pub alloc_buffer: Option< unsafe extern "C" fn( *mut GstBufferPool, *mut *mut GstBuffer, *mut GstBufferPoolAcquireParams, ) -> GstFlowReturn, >, pub reset_buffer: Option, pub release_buffer: Option, pub free_buffer: Option, pub flush_start: Option, pub flush_stop: Option, pub _gst_reserved: [gpointer; 2], } impl ::std::fmt::Debug for GstBufferPoolClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBufferPoolClass @ {self:p}")) .field("object_class", &self.object_class) .field("get_options", &self.get_options) .field("set_config", &self.set_config) .field("start", &self.start) .field("stop", &self.stop) .field("acquire_buffer", &self.acquire_buffer) .field("alloc_buffer", &self.alloc_buffer) .field("reset_buffer", &self.reset_buffer) .field("release_buffer", &self.release_buffer) .field("free_buffer", &self.free_buffer) .field("flush_start", &self.flush_start) .field("flush_stop", &self.flush_stop) .finish() } } #[repr(C)] pub struct _GstBufferPoolPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstBufferPoolPrivate = _GstBufferPoolPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstBusClass { pub parent_class: GstObjectClass, pub message: Option, pub sync_message: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstBusClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBusClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("message", &self.message) .field("sync_message", &self.sync_message) .finish() } } #[repr(C)] pub struct _GstBusPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstBusPrivate = _GstBusPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstByteArrayInterface { pub data: *mut u8, pub len: size_t, pub resize: Option gboolean>, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstByteArrayInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstByteArrayInterface @ {self:p}")) .field("data", &self.data) .field("len", &self.len) .field("resize", &self.resize) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstCaps { pub mini_object: GstMiniObject, } impl ::std::fmt::Debug for GstCaps { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstCaps @ {self:p}")) .field("mini_object", &self.mini_object) .finish() } } #[repr(C)] pub struct GstCapsFeatures { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstCapsFeatures { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstCapsFeatures @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstChildProxyInterface { pub parent: gobject::GTypeInterface, pub get_child_by_name: Option *mut gobject::GObject>, pub get_child_by_index: Option *mut gobject::GObject>, pub get_children_count: Option c_uint>, pub child_added: Option, pub child_removed: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstChildProxyInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstChildProxyInterface @ {self:p}")) .field("parent", &self.parent) .field("get_child_by_name", &self.get_child_by_name) .field("get_child_by_index", &self.get_child_by_index) .field("get_children_count", &self.get_children_count) .field("child_added", &self.child_added) .field("child_removed", &self.child_removed) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstClockClass { pub parent_class: GstObjectClass, pub change_resolution: Option GstClockTime>, pub get_resolution: Option GstClockTime>, pub get_internal_time: Option GstClockTime>, pub wait: Option< unsafe extern "C" fn( *mut GstClock, *mut GstClockEntry, *mut GstClockTimeDiff, ) -> GstClockReturn, >, pub wait_async: Option GstClockReturn>, pub unschedule: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstClockClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstClockClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("change_resolution", &self.change_resolution) .field("get_resolution", &self.get_resolution) .field("get_internal_time", &self.get_internal_time) .field("wait", &self.wait) .field("wait_async", &self.wait_async) .field("unschedule", &self.unschedule) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstClockEntry { pub refcount: c_int, pub clock: *mut GstClock, pub type_: GstClockEntryType, pub time: GstClockTime, pub interval: GstClockTime, pub status: GstClockReturn, pub func: GstClockCallback, pub user_data: gpointer, pub destroy_data: glib::GDestroyNotify, pub unscheduled: gboolean, pub woken_up: gboolean, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstClockEntry { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstClockEntry @ {self:p}")) .field("refcount", &self.refcount) .finish() } } #[repr(C)] pub struct _GstClockPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstClockPrivate = _GstClockPrivate; #[repr(C)] pub struct GstContext { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstContext { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstContext @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstControlBindingClass { pub parent_class: GstObjectClass, pub sync_values: Option< unsafe extern "C" fn( *mut GstControlBinding, *mut GstObject, GstClockTime, GstClockTime, ) -> gboolean, >, pub get_value: Option *mut gobject::GValue>, pub get_value_array: Option< unsafe extern "C" fn( *mut GstControlBinding, GstClockTime, GstClockTime, c_uint, gpointer, ) -> gboolean, >, pub get_g_value_array: Option< unsafe extern "C" fn( *mut GstControlBinding, GstClockTime, GstClockTime, c_uint, *mut gobject::GValue, ) -> gboolean, >, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstControlBindingClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlBindingClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("sync_values", &self.sync_values) .field("get_value", &self.get_value) .field("get_value_array", &self.get_value_array) .field("get_g_value_array", &self.get_g_value_array) .finish() } } #[repr(C)] pub struct _GstControlBindingPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstControlBindingPrivate = _GstControlBindingPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstControlBinding_ABI_abi { pub priv_: *mut GstControlBindingPrivate, } impl ::std::fmt::Debug for GstControlBinding_ABI_abi { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlBinding_ABI_abi @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstControlSourceClass { pub parent_class: GstObjectClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstControlSourceClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlSourceClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstCustomMeta { pub meta: GstMeta, pub structure: *mut GstStructure, } impl ::std::fmt::Debug for GstCustomMeta { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstCustomMeta @ {self:p}")) .field("meta", &self.meta) .field("structure", &self.structure) .finish() } } #[repr(C)] pub struct GstDateTime { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstDateTime { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDateTime @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstDebugCategory { pub threshold: c_int, pub color: c_uint, pub name: *const c_char, pub description: *const c_char, } impl ::std::fmt::Debug for GstDebugCategory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDebugCategory @ {self:p}")) .finish() } } #[repr(C)] pub struct _GstDebugMessage { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDebugMessage = _GstDebugMessage; #[derive(Copy, Clone)] #[repr(C)] pub struct GstDeviceClass { pub parent_class: GstObjectClass, pub create_element: Option *mut GstElement>, pub reconfigure_element: Option gboolean>, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDeviceClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("create_element", &self.create_element) .field("reconfigure_element", &self.reconfigure_element) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstDeviceMonitorClass { pub parent_class: GstObjectClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDeviceMonitorClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceMonitorClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstDeviceMonitorPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDeviceMonitorPrivate = _GstDeviceMonitorPrivate; #[repr(C)] pub struct _GstDevicePrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDevicePrivate = _GstDevicePrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstDeviceProviderClass { pub parent_class: GstObjectClass, pub factory: *mut GstDeviceProviderFactory, pub probe: Option *mut glib::GList>, pub start: Option gboolean>, pub stop: Option, pub metadata: gpointer, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDeviceProviderClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceProviderClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("factory", &self.factory) .field("probe", &self.probe) .field("start", &self.start) .field("stop", &self.stop) .finish() } } #[repr(C)] pub struct _GstDeviceProviderFactoryClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDeviceProviderFactoryClass = _GstDeviceProviderFactoryClass; #[repr(C)] pub struct _GstDeviceProviderPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDeviceProviderPrivate = _GstDeviceProviderPrivate; #[repr(C)] pub struct _GstDynamicTypeFactoryClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstDynamicTypeFactoryClass = _GstDynamicTypeFactoryClass; #[derive(Copy, Clone)] #[repr(C)] pub struct GstElementClass { pub parent_class: GstObjectClass, pub metadata: gpointer, pub elementfactory: *mut GstElementFactory, pub padtemplates: *mut glib::GList, pub numpadtemplates: c_int, pub pad_templ_cookie: u32, pub pad_added: Option, pub pad_removed: Option, pub no_more_pads: Option, pub request_new_pad: Option< unsafe extern "C" fn( *mut GstElement, *mut GstPadTemplate, *const c_char, *const GstCaps, ) -> *mut GstPad, >, pub release_pad: Option, pub get_state: Option< unsafe extern "C" fn( *mut GstElement, *mut GstState, *mut GstState, GstClockTime, ) -> GstStateChangeReturn, >, pub set_state: Option GstStateChangeReturn>, pub change_state: Option GstStateChangeReturn>, pub state_changed: Option, pub set_bus: Option, pub provide_clock: Option *mut GstClock>, pub set_clock: Option gboolean>, pub send_event: Option gboolean>, pub query: Option gboolean>, pub post_message: Option gboolean>, pub set_context: Option, pub _gst_reserved: [gpointer; 18], } impl ::std::fmt::Debug for GstElementClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstElementClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("metadata", &self.metadata) .field("elementfactory", &self.elementfactory) .field("padtemplates", &self.padtemplates) .field("numpadtemplates", &self.numpadtemplates) .field("pad_templ_cookie", &self.pad_templ_cookie) .field("pad_added", &self.pad_added) .field("pad_removed", &self.pad_removed) .field("no_more_pads", &self.no_more_pads) .field("request_new_pad", &self.request_new_pad) .field("release_pad", &self.release_pad) .field("get_state", &self.get_state) .field("set_state", &self.set_state) .field("change_state", &self.change_state) .field("state_changed", &self.state_changed) .field("set_bus", &self.set_bus) .field("provide_clock", &self.provide_clock) .field("set_clock", &self.set_clock) .field("send_event", &self.send_event) .field("query", &self.query) .field("post_message", &self.post_message) .field("set_context", &self.set_context) .finish() } } #[repr(C)] pub struct _GstElementFactoryClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstElementFactoryClass = _GstElementFactoryClass; #[derive(Copy, Clone)] #[repr(C)] pub struct GstEvent { pub mini_object: GstMiniObject, pub type_: GstEventType, pub timestamp: u64, pub seqnum: u32, } impl ::std::fmt::Debug for GstEvent { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstEvent @ {self:p}")) .field("mini_object", &self.mini_object) .field("type_", &self.type_) .field("timestamp", &self.timestamp) .field("seqnum", &self.seqnum) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstFormatDefinition { pub value: GstFormat, pub nick: *const c_char, pub description: *const c_char, pub quark: glib::GQuark, } impl ::std::fmt::Debug for GstFormatDefinition { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstFormatDefinition @ {self:p}")) .field("value", &self.value) .field("nick", &self.nick) .field("description", &self.description) .field("quark", &self.quark) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstGhostPadClass { pub parent_class: GstProxyPadClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstGhostPadClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstGhostPadClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstGhostPadPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstGhostPadPrivate = _GstGhostPadPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstIterator { pub copy: GstIteratorCopyFunction, pub next: GstIteratorNextFunction, pub item: GstIteratorItemFunction, pub resync: GstIteratorResyncFunction, pub free: GstIteratorFreeFunction, pub pushed: *mut GstIterator, pub type_: GType, pub lock: *mut glib::GMutex, pub cookie: u32, pub master_cookie: *mut u32, pub size: c_uint, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstIterator { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstIterator @ {self:p}")) .field("copy", &self.copy) .field("next", &self.next) .field("item", &self.item) .field("resync", &self.resync) .field("free", &self.free) .field("pushed", &self.pushed) .field("type_", &self.type_) .field("lock", &self.lock) .field("cookie", &self.cookie) .field("master_cookie", &self.master_cookie) .field("size", &self.size) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMapInfo { pub memory: *mut GstMemory, pub flags: GstMapFlags, pub data: *mut u8, pub size: size_t, pub maxsize: size_t, pub user_data: [gpointer; 4], pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstMapInfo { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMapInfo @ {self:p}")) .field("memory", &self.memory) .field("flags", &self.flags) .field("data", &self.data) .field("size", &self.size) .field("maxsize", &self.maxsize) .field("user_data", &self.user_data) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMemory { pub mini_object: GstMiniObject, pub allocator: *mut GstAllocator, pub parent: *mut GstMemory, pub maxsize: size_t, pub align: size_t, pub offset: size_t, pub size: size_t, } impl ::std::fmt::Debug for GstMemory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMemory @ {self:p}")) .field("mini_object", &self.mini_object) .field("allocator", &self.allocator) .field("parent", &self.parent) .field("maxsize", &self.maxsize) .field("align", &self.align) .field("offset", &self.offset) .field("size", &self.size) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMessage { pub mini_object: GstMiniObject, pub type_: GstMessageType, pub timestamp: u64, pub src: *mut GstObject, pub seqnum: u32, pub lock: glib::GMutex, pub cond: glib::GCond, } impl ::std::fmt::Debug for GstMessage { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMessage @ {self:p}")) .field("mini_object", &self.mini_object) .field("type_", &self.type_) .field("timestamp", &self.timestamp) .field("src", &self.src) .field("seqnum", &self.seqnum) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMeta { pub flags: GstMetaFlags, pub info: *const GstMetaInfo, } impl ::std::fmt::Debug for GstMeta { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMeta @ {self:p}")) .field("flags", &self.flags) .field("info", &self.info) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMetaInfo { pub api: GType, pub type_: GType, pub size: size_t, pub init_func: GstMetaInitFunction, pub free_func: GstMetaFreeFunction, pub transform_func: GstMetaTransformFunction, pub serialize_func: GstMetaSerializeFunction, pub deserialize_func: GstMetaDeserializeFunction, pub clear_func: GstMetaClearFunction, } impl ::std::fmt::Debug for GstMetaInfo { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMetaInfo @ {self:p}")) .field("api", &self.api) .field("type_", &self.type_) .field("size", &self.size) .field("init_func", &self.init_func) .field("free_func", &self.free_func) .field("transform_func", &self.transform_func) .field("serialize_func", &self.serialize_func) .field("deserialize_func", &self.deserialize_func) .field("clear_func", &self.clear_func) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMetaTransformCopy { pub region: gboolean, pub offset: size_t, pub size: size_t, } impl ::std::fmt::Debug for GstMetaTransformCopy { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMetaTransformCopy @ {self:p}")) .field("region", &self.region) .field("offset", &self.offset) .field("size", &self.size) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstMiniObject { pub type_: GType, pub refcount: c_int, pub lockstate: c_int, pub flags: c_uint, pub copy: GstMiniObjectCopyFunction, pub dispose: GstMiniObjectDisposeFunction, pub free: GstMiniObjectFreeFunction, pub priv_uint: c_uint, pub priv_pointer: gpointer, } impl ::std::fmt::Debug for GstMiniObject { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstMiniObject @ {self:p}")) .field("type_", &self.type_) .field("refcount", &self.refcount) .field("lockstate", &self.lockstate) .field("flags", &self.flags) .field("copy", &self.copy) .field("dispose", &self.dispose) .field("free", &self.free) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstObjectClass { pub parent_class: gobject::GInitiallyUnownedClass, pub path_string_separator: *const c_char, pub deep_notify: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstObjectClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstObjectClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("path_string_separator", &self.path_string_separator) .field("deep_notify", &self.deep_notify) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadClass { pub parent_class: GstObjectClass, pub linked: Option, pub unlinked: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPadClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("linked", &self.linked) .field("unlinked", &self.unlinked) .finish() } } #[repr(C)] pub struct _GstPadPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstPadPrivate = _GstPadPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadProbeInfo { pub type_: GstPadProbeType, pub id: c_ulong, pub data: gpointer, pub offset: u64, pub size: c_uint, pub ABI: GstPadProbeInfo_ABI, } impl ::std::fmt::Debug for GstPadProbeInfo { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadProbeInfo @ {self:p}")) .field("type_", &self.type_) .field("id", &self.id) .field("data", &self.data) .field("offset", &self.offset) .field("size", &self.size) .field("ABI", &self.ABI) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadProbeInfo_ABI_abi { pub flow_ret: GstFlowReturn, } impl ::std::fmt::Debug for GstPadProbeInfo_ABI_abi { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadProbeInfo_ABI_abi @ {self:p}")) .field("flow_ret", &self.flow_ret) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadTemplateClass { pub parent_class: GstObjectClass, pub pad_created: Option, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPadTemplateClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadTemplateClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("pad_created", &self.pad_created) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadTemplate_ABI_abi { pub gtype: GType, pub documentation_caps: *mut GstCaps, } impl ::std::fmt::Debug for GstPadTemplate_ABI_abi { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadTemplate_ABI_abi @ {self:p}")) .field("gtype", &self.gtype) .field("documentation_caps", &self.documentation_caps) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPad_ABI_abi { pub last_flowret: GstFlowReturn, pub eventfullfunc: GstPadEventFullFunction, } impl ::std::fmt::Debug for GstPad_ABI_abi { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPad_ABI_abi @ {self:p}")) .field("last_flowret", &self.last_flowret) .field("eventfullfunc", &self.eventfullfunc) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstParamSpecArray { pub parent_instance: gobject::GParamSpec, pub element_spec: *mut gobject::GParamSpec, } impl ::std::fmt::Debug for GstParamSpecArray { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParamSpecArray @ {self:p}")) .field("parent_instance", &self.parent_instance) .field("element_spec", &self.element_spec) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstParamSpecFraction { pub parent_instance: gobject::GParamSpec, pub min_num: c_int, pub min_den: c_int, pub max_num: c_int, pub max_den: c_int, pub def_num: c_int, pub def_den: c_int, } impl ::std::fmt::Debug for GstParamSpecFraction { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParamSpecFraction @ {self:p}")) .field("parent_instance", &self.parent_instance) .field("min_num", &self.min_num) .field("min_den", &self.min_den) .field("max_num", &self.max_num) .field("max_den", &self.max_den) .field("def_num", &self.def_num) .field("def_den", &self.def_den) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstParentBufferMeta { pub parent: GstMeta, pub buffer: *mut GstBuffer, } impl ::std::fmt::Debug for GstParentBufferMeta { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParentBufferMeta @ {self:p}")) .field("parent", &self.parent) .field("buffer", &self.buffer) .finish() } } #[repr(C)] pub struct GstParseContext { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstParseContext { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParseContext @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPipelineClass { pub parent_class: GstBinClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPipelineClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPipelineClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstPipelinePrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstPipelinePrivate = _GstPipelinePrivate; #[repr(C)] pub struct _GstPluginClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstPluginClass = _GstPluginClass; #[derive(Copy, Clone)] #[repr(C)] pub struct GstPluginDesc { pub major_version: c_int, pub minor_version: c_int, pub name: *const c_char, pub description: *const c_char, pub plugin_init: GstPluginInitFunc, pub version: *const c_char, pub license: *const c_char, pub source: *const c_char, pub package: *const c_char, pub origin: *const c_char, pub release_datetime: *const c_char, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPluginDesc { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPluginDesc @ {self:p}")) .field("major_version", &self.major_version) .field("minor_version", &self.minor_version) .field("name", &self.name) .field("description", &self.description) .field("plugin_init", &self.plugin_init) .field("version", &self.version) .field("license", &self.license) .field("source", &self.source) .field("package", &self.package) .field("origin", &self.origin) .field("release_datetime", &self.release_datetime) .finish() } } #[repr(C)] pub struct _GstPluginFeatureClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstPluginFeatureClass = _GstPluginFeatureClass; #[repr(C)] pub struct _GstPoll { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstPoll = _GstPoll; #[derive(Copy, Clone)] #[repr(C)] pub struct GstPollFD { pub fd: c_int, pub idx: c_int, } impl ::std::fmt::Debug for GstPollFD { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPollFD @ {self:p}")) .field("fd", &self.fd) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPresetInterface { pub parent: gobject::GTypeInterface, pub get_preset_names: Option *mut *mut c_char>, pub get_property_names: Option *mut *mut c_char>, pub load_preset: Option gboolean>, pub save_preset: Option gboolean>, pub rename_preset: Option gboolean>, pub delete_preset: Option gboolean>, pub set_meta: Option< unsafe extern "C" fn( *mut GstPreset, *const c_char, *const c_char, *mut *mut c_char, ) -> gboolean, >, pub get_meta: Option< unsafe extern "C" fn( *mut GstPreset, *const c_char, *const c_char, *mut *mut c_char, ) -> gboolean, >, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPresetInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPresetInterface @ {self:p}")) .field("parent", &self.parent) .field("get_preset_names", &self.get_preset_names) .field("get_property_names", &self.get_property_names) .field("load_preset", &self.load_preset) .field("save_preset", &self.save_preset) .field("rename_preset", &self.rename_preset) .field("delete_preset", &self.delete_preset) .field("set_meta", &self.set_meta) .field("get_meta", &self.get_meta) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPromise { pub parent: GstMiniObject, } impl ::std::fmt::Debug for GstPromise { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPromise @ {self:p}")) .field("parent", &self.parent) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstProtectionMeta { pub meta: GstMeta, pub info: *mut GstStructure, } impl ::std::fmt::Debug for GstProtectionMeta { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstProtectionMeta @ {self:p}")) .field("meta", &self.meta) .field("info", &self.info) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstProxyPadClass { pub parent_class: GstPadClass, pub _gst_reserved: [gpointer; 1], } impl ::std::fmt::Debug for GstProxyPadClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstProxyPadClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstProxyPadPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstProxyPadPrivate = _GstProxyPadPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstQuery { pub mini_object: GstMiniObject, pub type_: GstQueryType, } impl ::std::fmt::Debug for GstQuery { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstQuery @ {self:p}")) .field("mini_object", &self.mini_object) .field("type_", &self.type_) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstReferenceTimestampMeta { pub parent: GstMeta, pub reference: *mut GstCaps, pub timestamp: GstClockTime, pub duration: GstClockTime, } impl ::std::fmt::Debug for GstReferenceTimestampMeta { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstReferenceTimestampMeta @ {self:p}")) .field("parent", &self.parent) .field("reference", &self.reference) .field("timestamp", &self.timestamp) .field("duration", &self.duration) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstRegistryClass { pub parent_class: GstObjectClass, } impl ::std::fmt::Debug for GstRegistryClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstRegistryClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstRegistryPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstRegistryPrivate = _GstRegistryPrivate; #[repr(C)] pub struct GstSample { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstSample { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSample @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstSegment { pub flags: GstSegmentFlags, pub rate: c_double, pub applied_rate: c_double, pub format: GstFormat, pub base: u64, pub offset: u64, pub start: u64, pub stop: u64, pub time: u64, pub position: u64, pub duration: u64, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstSegment { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSegment @ {self:p}")) .field("flags", &self.flags) .field("rate", &self.rate) .field("applied_rate", &self.applied_rate) .field("format", &self.format) .field("base", &self.base) .field("offset", &self.offset) .field("start", &self.start) .field("stop", &self.stop) .field("time", &self.time) .field("position", &self.position) .field("duration", &self.duration) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstSharedTaskPoolClass { pub parent_class: GstTaskPoolClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstSharedTaskPoolClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSharedTaskPoolClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstSharedTaskPoolPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstSharedTaskPoolPrivate = _GstSharedTaskPoolPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstStaticCaps { pub caps: *mut GstCaps, pub string: *const c_char, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstStaticCaps { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStaticCaps @ {self:p}")) .field("caps", &self.caps) .field("string", &self.string) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstStaticPadTemplate { pub name_template: *const c_char, pub direction: GstPadDirection, pub presence: GstPadPresence, pub static_caps: GstStaticCaps, } impl ::std::fmt::Debug for GstStaticPadTemplate { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStaticPadTemplate @ {self:p}")) .field("name_template", &self.name_template) .field("direction", &self.direction) .field("presence", &self.presence) .field("static_caps", &self.static_caps) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstStreamClass { pub parent_class: GstObjectClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstStreamClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStreamClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstStreamCollectionClass { pub parent_class: GstObjectClass, pub stream_notify: Option< unsafe extern "C" fn(*mut GstStreamCollection, *mut GstStream, *mut gobject::GParamSpec), >, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstStreamCollectionClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStreamCollectionClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("stream_notify", &self.stream_notify) .finish() } } #[repr(C)] pub struct _GstStreamCollectionPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstStreamCollectionPrivate = _GstStreamCollectionPrivate; #[repr(C)] pub struct _GstStreamPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstStreamPrivate = _GstStreamPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstStructure { pub type_: GType, pub name: glib::GQuark, } impl ::std::fmt::Debug for GstStructure { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStructure @ {self:p}")) .field("type_", &self.type_) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstSystemClockClass { pub parent_class: GstClockClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstSystemClockClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSystemClockClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstSystemClockPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstSystemClockPrivate = _GstSystemClockPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstTagList { pub mini_object: GstMiniObject, } impl ::std::fmt::Debug for GstTagList { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTagList @ {self:p}")) .field("mini_object", &self.mini_object) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTagSetterInterface { pub g_iface: gobject::GTypeInterface, } impl ::std::fmt::Debug for GstTagSetterInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTagSetterInterface @ {self:p}")) .field("g_iface", &self.g_iface) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTaskClass { pub parent_class: GstObjectClass, pub pool: *mut GstTaskPool, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTaskClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTaskClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTaskPoolClass { pub parent_class: GstObjectClass, pub prepare: Option, pub cleanup: Option, pub push: Option< unsafe extern "C" fn( *mut GstTaskPool, GstTaskPoolFunction, gpointer, *mut *mut glib::GError, ) -> gpointer, >, pub join: Option, pub dispose_handle: Option, pub _gst_reserved: [gpointer; 3], } impl ::std::fmt::Debug for GstTaskPoolClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTaskPoolClass @ {self:p}")) .field("parent_class", &self.parent_class) .field("prepare", &self.prepare) .field("cleanup", &self.cleanup) .field("push", &self.push) .field("join", &self.join) .field("dispose_handle", &self.dispose_handle) .finish() } } #[repr(C)] pub struct _GstTaskPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstTaskPrivate = _GstTaskPrivate; #[derive(Copy, Clone)] #[repr(C)] pub struct GstTimedValue { pub timestamp: GstClockTime, pub value: c_double, } impl ::std::fmt::Debug for GstTimedValue { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTimedValue @ {self:p}")) .field("timestamp", &self.timestamp) .field("value", &self.value) .finish() } } #[repr(C)] pub struct GstToc { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstToc { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstToc @ {self:p}")).finish() } } #[repr(C)] pub struct GstTocEntry { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTocEntry { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTocEntry @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTocSetterInterface { pub g_iface: gobject::GTypeInterface, } impl ::std::fmt::Debug for GstTocSetterInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTocSetterInterface @ {self:p}")) .field("g_iface", &self.g_iface) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTracerClass { pub parent_class: GstObjectClass, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTracerClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTracerClass @ {self:p}")) .field("parent_class", &self.parent_class) .finish() } } #[repr(C)] pub struct _GstTracerFactoryClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstTracerFactoryClass = _GstTracerFactoryClass; #[repr(C)] pub struct _GstTracerPrivate { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstTracerPrivate = _GstTracerPrivate; #[repr(C)] pub struct _GstTracerRecordClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstTracerRecordClass = _GstTracerRecordClass; #[derive(Copy, Clone)] #[repr(C)] pub struct GstTypeFind { pub peek: Option *const u8>, pub suggest: Option, pub data: gpointer, pub get_length: Option u64>, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTypeFind { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTypeFind @ {self:p}")) .field("peek", &self.peek) .field("suggest", &self.suggest) .field("data", &self.data) .field("get_length", &self.get_length) .finish() } } #[repr(C)] pub struct _GstTypeFindFactoryClass { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstTypeFindFactoryClass = _GstTypeFindFactoryClass; #[derive(Copy, Clone)] #[repr(C)] pub struct GstURIHandlerInterface { pub parent: gobject::GTypeInterface, pub get_type: Option GstURIType>, pub get_protocols: Option *const *const c_char>, pub get_uri: Option *mut c_char>, pub set_uri: Option< unsafe extern "C" fn(*mut GstURIHandler, *const c_char, *mut *mut glib::GError) -> gboolean, >, } impl ::std::fmt::Debug for GstURIHandlerInterface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstURIHandlerInterface @ {self:p}")) .field("parent", &self.parent) .field("get_type", &self.get_type) .field("get_protocols", &self.get_protocols) .field("get_uri", &self.get_uri) .field("set_uri", &self.set_uri) .finish() } } #[repr(C)] pub struct GstUri { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstUri { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstUri @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstValueTable { pub type_: GType, pub compare: GstValueCompareFunc, pub serialize: GstValueSerializeFunc, pub deserialize: GstValueDeserializeFunc, pub deserialize_with_pspec: GstValueDeserializeWithPSpecFunc, pub _gst_reserved: [gpointer; 3], } impl ::std::fmt::Debug for GstValueTable { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstValueTable @ {self:p}")) .field("type_", &self.type_) .field("compare", &self.compare) .field("serialize", &self.serialize) .field("deserialize", &self.deserialize) .field("deserialize_with_pspec", &self.deserialize_with_pspec) .finish() } } #[repr(C)] pub struct _GstVecDeque { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } pub type GstVecDeque = _GstVecDeque; // Classes #[derive(Copy, Clone)] #[repr(C)] pub struct GstAllocator { pub object: GstObject, pub mem_type: *const c_char, pub mem_map: GstMemoryMapFunction, pub mem_unmap: GstMemoryUnmapFunction, pub mem_copy: GstMemoryCopyFunction, pub mem_share: GstMemoryShareFunction, pub mem_is_span: GstMemoryIsSpanFunction, pub mem_map_full: GstMemoryMapFullFunction, pub mem_unmap_full: GstMemoryUnmapFullFunction, pub _gst_reserved: [gpointer; 2], pub priv_: *mut GstAllocatorPrivate, } impl ::std::fmt::Debug for GstAllocator { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstAllocator @ {self:p}")) .field("object", &self.object) .field("mem_type", &self.mem_type) .field("mem_map", &self.mem_map) .field("mem_unmap", &self.mem_unmap) .field("mem_copy", &self.mem_copy) .field("mem_share", &self.mem_share) .field("mem_is_span", &self.mem_is_span) .field("mem_map_full", &self.mem_map_full) .field("mem_unmap_full", &self.mem_unmap_full) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBin { pub element: GstElement, pub numchildren: c_int, pub children: *mut glib::GList, pub children_cookie: u32, pub child_bus: *mut GstBus, pub messages: *mut glib::GList, pub polling: gboolean, pub state_dirty: gboolean, pub clock_dirty: gboolean, pub provided_clock: *mut GstClock, pub clock_provider: *mut GstElement, pub priv_: *mut GstBinPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstBin { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBin @ {self:p}")) .field("element", &self.element) .field("numchildren", &self.numchildren) .field("children", &self.children) .field("children_cookie", &self.children_cookie) .field("child_bus", &self.child_bus) .field("messages", &self.messages) .field("polling", &self.polling) .field("state_dirty", &self.state_dirty) .field("clock_dirty", &self.clock_dirty) .field("provided_clock", &self.provided_clock) .field("clock_provider", &self.clock_provider) .finish() } } #[repr(C)] pub struct GstBitmask { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstBitmask { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBitmask @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBufferPool { pub object: GstObject, pub flushing: c_int, pub priv_: *mut GstBufferPoolPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstBufferPool { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBufferPool @ {self:p}")) .field("object", &self.object) .field("flushing", &self.flushing) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstBus { pub object: GstObject, pub priv_: *mut GstBusPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstBus { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstBus @ {self:p}")) .field("object", &self.object) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstClock { pub object: GstObject, pub priv_: *mut GstClockPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstClock { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstClock @ {self:p}")) .field("object", &self.object) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstControlBinding { pub parent: GstObject, pub name: *mut c_char, pub pspec: *mut gobject::GParamSpec, pub object: *mut GstObject, pub disabled: gboolean, pub ABI: GstControlBinding_ABI, } impl ::std::fmt::Debug for GstControlBinding { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlBinding @ {self:p}")) .field("parent", &self.parent) .field("name", &self.name) .field("pspec", &self.pspec) .field("ABI", &self.ABI) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstControlSource { pub parent: GstObject, pub get_value: GstControlSourceGetValue, pub get_value_array: GstControlSourceGetValueArray, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstControlSource { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstControlSource @ {self:p}")) .field("parent", &self.parent) .field("get_value", &self.get_value) .field("get_value_array", &self.get_value_array) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstDevice { pub parent: GstObject, pub priv_: *mut GstDevicePrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDevice { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDevice @ {self:p}")) .field("parent", &self.parent) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstDeviceMonitor { pub parent: GstObject, pub priv_: *mut GstDeviceMonitorPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDeviceMonitor { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceMonitor @ {self:p}")) .field("parent", &self.parent) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstDeviceProvider { pub parent: GstObject, pub devices: *mut glib::GList, pub priv_: *mut GstDeviceProviderPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstDeviceProvider { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceProvider @ {self:p}")) .field("parent", &self.parent) .field("devices", &self.devices) .finish() } } #[repr(C)] pub struct GstDeviceProviderFactory { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstDeviceProviderFactory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDeviceProviderFactory @ {self:p}")) .finish() } } #[repr(C)] pub struct GstDoubleRange { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstDoubleRange { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDoubleRange @ {self:p}")) .finish() } } #[repr(C)] pub struct GstDynamicTypeFactory { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstDynamicTypeFactory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstDynamicTypeFactory @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstElement { pub object: GstObject, pub state_lock: glib::GRecMutex, pub state_cond: glib::GCond, pub state_cookie: u32, pub target_state: GstState, pub current_state: GstState, pub next_state: GstState, pub pending_state: GstState, pub last_return: GstStateChangeReturn, pub bus: *mut GstBus, pub clock: *mut GstClock, pub base_time: GstClockTimeDiff, pub start_time: GstClockTime, pub numpads: u16, pub pads: *mut glib::GList, pub numsrcpads: u16, pub srcpads: *mut glib::GList, pub numsinkpads: u16, pub sinkpads: *mut glib::GList, pub pads_cookie: u32, pub contexts: *mut glib::GList, pub _gst_reserved: [gpointer; 3], } impl ::std::fmt::Debug for GstElement { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstElement @ {self:p}")) .field("object", &self.object) .field("state_lock", &self.state_lock) .field("state_cond", &self.state_cond) .field("state_cookie", &self.state_cookie) .field("target_state", &self.target_state) .field("current_state", &self.current_state) .field("next_state", &self.next_state) .field("pending_state", &self.pending_state) .field("last_return", &self.last_return) .field("bus", &self.bus) .field("clock", &self.clock) .field("base_time", &self.base_time) .field("start_time", &self.start_time) .field("numpads", &self.numpads) .field("pads", &self.pads) .field("numsrcpads", &self.numsrcpads) .field("srcpads", &self.srcpads) .field("numsinkpads", &self.numsinkpads) .field("sinkpads", &self.sinkpads) .field("pads_cookie", &self.pads_cookie) .field("contexts", &self.contexts) .finish() } } #[repr(C)] pub struct GstElementFactory { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstElementFactory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstElementFactory @ {self:p}")) .finish() } } #[repr(C)] pub struct GstFlagSet { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstFlagSet { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstFlagSet @ {self:p}")).finish() } } #[repr(C)] pub struct GstFraction { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstFraction { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstFraction @ {self:p}")).finish() } } #[repr(C)] pub struct GstFractionRange { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstFractionRange { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstFractionRange @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstGhostPad { pub pad: GstProxyPad, pub priv_: *mut GstGhostPadPrivate, } impl ::std::fmt::Debug for GstGhostPad { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstGhostPad @ {self:p}")) .field("pad", &self.pad) .finish() } } #[repr(C)] pub struct GstInt64Range { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstInt64Range { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstInt64Range @ {self:p}")) .finish() } } #[repr(C)] pub struct GstIntRange { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstIntRange { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstIntRange @ {self:p}")).finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstObject { pub object: gobject::GInitiallyUnowned, pub lock: glib::GMutex, pub name: *mut c_char, pub parent: *mut GstObject, pub flags: u32, pub control_bindings: *mut glib::GList, pub control_rate: u64, pub last_sync: u64, pub _gst_reserved: gpointer, } impl ::std::fmt::Debug for GstObject { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstObject @ {self:p}")) .field("object", &self.object) .field("lock", &self.lock) .field("name", &self.name) .field("parent", &self.parent) .field("flags", &self.flags) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPad { pub object: GstObject, pub element_private: gpointer, pub padtemplate: *mut GstPadTemplate, pub direction: GstPadDirection, pub stream_rec_lock: glib::GRecMutex, pub task: *mut GstTask, pub block_cond: glib::GCond, pub probes: glib::GHookList, pub mode: GstPadMode, pub activatefunc: GstPadActivateFunction, pub activatedata: gpointer, pub activatenotify: glib::GDestroyNotify, pub activatemodefunc: GstPadActivateModeFunction, pub activatemodedata: gpointer, pub activatemodenotify: glib::GDestroyNotify, pub peer: *mut GstPad, pub linkfunc: GstPadLinkFunction, pub linkdata: gpointer, pub linknotify: glib::GDestroyNotify, pub unlinkfunc: GstPadUnlinkFunction, pub unlinkdata: gpointer, pub unlinknotify: glib::GDestroyNotify, pub chainfunc: GstPadChainFunction, pub chaindata: gpointer, pub chainnotify: glib::GDestroyNotify, pub chainlistfunc: GstPadChainListFunction, pub chainlistdata: gpointer, pub chainlistnotify: glib::GDestroyNotify, pub getrangefunc: GstPadGetRangeFunction, pub getrangedata: gpointer, pub getrangenotify: glib::GDestroyNotify, pub eventfunc: GstPadEventFunction, pub eventdata: gpointer, pub eventnotify: glib::GDestroyNotify, pub offset: i64, pub queryfunc: GstPadQueryFunction, pub querydata: gpointer, pub querynotify: glib::GDestroyNotify, pub iterintlinkfunc: GstPadIterIntLinkFunction, pub iterintlinkdata: gpointer, pub iterintlinknotify: glib::GDestroyNotify, pub num_probes: c_int, pub num_blocked: c_int, pub priv_: *mut GstPadPrivate, pub ABI: GstPad_ABI, } impl ::std::fmt::Debug for GstPad { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPad @ {self:p}")) .field("object", &self.object) .field("element_private", &self.element_private) .field("padtemplate", &self.padtemplate) .field("direction", &self.direction) .field("ABI", &self.ABI) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPadTemplate { pub object: GstObject, pub name_template: *mut c_char, pub direction: GstPadDirection, pub presence: GstPadPresence, pub caps: *mut GstCaps, pub ABI: GstPadTemplate_ABI, } impl ::std::fmt::Debug for GstPadTemplate { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPadTemplate @ {self:p}")) .field("object", &self.object) .field("name_template", &self.name_template) .field("direction", &self.direction) .field("presence", &self.presence) .field("caps", &self.caps) .field("ABI", &self.ABI) .finish() } } #[repr(C)] pub struct GstParamArray { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstParamArray { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParamArray @ {self:p}")) .finish() } } #[repr(C)] pub struct GstParamFraction { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstParamFraction { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstParamFraction @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstPipeline { pub bin: GstBin, pub fixed_clock: *mut GstClock, pub stream_time: GstClockTime, pub delay: GstClockTime, pub priv_: *mut GstPipelinePrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstPipeline { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPipeline @ {self:p}")) .field("bin", &self.bin) .field("fixed_clock", &self.fixed_clock) .field("stream_time", &self.stream_time) .field("delay", &self.delay) .finish() } } #[repr(C)] pub struct GstPlugin { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstPlugin { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPlugin @ {self:p}")).finish() } } #[repr(C)] pub struct GstPluginFeature { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstPluginFeature { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstPluginFeature @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstProxyPad { pub pad: GstPad, pub priv_: *mut GstProxyPadPrivate, } impl ::std::fmt::Debug for GstProxyPad { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstProxyPad @ {self:p}")) .field("pad", &self.pad) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstRegistry { pub object: GstObject, pub priv_: *mut GstRegistryPrivate, } impl ::std::fmt::Debug for GstRegistry { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstRegistry @ {self:p}")) .field("object", &self.object) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstSharedTaskPool { pub parent: GstTaskPool, pub priv_: *mut GstSharedTaskPoolPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstSharedTaskPool { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSharedTaskPool @ {self:p}")) .field("parent", &self.parent) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstStream { pub object: GstObject, pub stream_id: *const c_char, pub priv_: *mut GstStreamPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstStream { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStream @ {self:p}")) .field("stream_id", &self.stream_id) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstStreamCollection { pub object: GstObject, pub upstream_id: *mut c_char, pub priv_: *mut GstStreamCollectionPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstStreamCollection { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstStreamCollection @ {self:p}")) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstSystemClock { pub clock: GstClock, pub priv_: *mut GstSystemClockPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstSystemClock { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstSystemClock @ {self:p}")) .field("clock", &self.clock) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTask { pub object: GstObject, pub state: GstTaskState, pub cond: glib::GCond, pub lock: *mut glib::GRecMutex, pub func: GstTaskFunction, pub user_data: gpointer, pub notify: glib::GDestroyNotify, pub running: gboolean, pub thread: *mut glib::GThread, pub priv_: *mut GstTaskPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTask { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTask @ {self:p}")) .field("object", &self.object) .field("state", &self.state) .field("cond", &self.cond) .field("lock", &self.lock) .field("func", &self.func) .field("user_data", &self.user_data) .field("notify", &self.notify) .field("running", &self.running) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTaskPool { pub object: GstObject, pub pool: *mut glib::GThreadPool, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTaskPool { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTaskPool @ {self:p}")) .field("object", &self.object) .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct GstTracer { pub parent: GstObject, pub priv_: *mut GstTracerPrivate, pub _gst_reserved: [gpointer; 4], } impl ::std::fmt::Debug for GstTracer { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTracer @ {self:p}")) .field("parent", &self.parent) .finish() } } #[repr(C)] pub struct GstTracerFactory { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTracerFactory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTracerFactory @ {self:p}")) .finish() } } #[repr(C)] pub struct GstTracerRecord { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTracerRecord { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTracerRecord @ {self:p}")) .finish() } } #[repr(C)] pub struct GstTypeFindFactory { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTypeFindFactory { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstTypeFindFactory @ {self:p}")) .finish() } } #[repr(C)] pub struct GstValueArray { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstValueArray { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstValueArray @ {self:p}")) .finish() } } #[repr(C)] pub struct GstValueList { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstValueList { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("GstValueList @ {self:p}")).finish() } } // Interfaces #[repr(C)] pub struct GstChildProxy { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstChildProxy { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "GstChildProxy @ {self:p}") } } #[repr(C)] pub struct GstPreset { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstPreset { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "GstPreset @ {self:p}") } } #[repr(C)] pub struct GstTagSetter { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTagSetter { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "GstTagSetter @ {self:p}") } } #[repr(C)] pub struct GstTocSetter { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstTocSetter { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "GstTocSetter @ {self:p}") } } #[repr(C)] pub struct GstURIHandler { _data: [u8; 0], _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>, } impl ::std::fmt::Debug for GstURIHandler { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { write!(f, "GstURIHandler @ {self:p}") } } #[link(name = "gstreamer-1.0")] extern "C" { //========================================================================= // GstBufferingMode //========================================================================= pub fn gst_buffering_mode_get_type() -> GType; //========================================================================= // GstBusSyncReply //========================================================================= pub fn gst_bus_sync_reply_get_type() -> GType; //========================================================================= // GstCapsIntersectMode //========================================================================= pub fn gst_caps_intersect_mode_get_type() -> GType; //========================================================================= // GstClockEntryType //========================================================================= pub fn gst_clock_entry_type_get_type() -> GType; //========================================================================= // GstClockReturn //========================================================================= pub fn gst_clock_return_get_type() -> GType; //========================================================================= // GstClockType //========================================================================= pub fn gst_clock_type_get_type() -> GType; //========================================================================= // GstCoreError //========================================================================= pub fn gst_core_error_get_type() -> GType; pub fn gst_core_error_quark() -> glib::GQuark; //========================================================================= // GstDebugColorMode //========================================================================= pub fn gst_debug_color_mode_get_type() -> GType; //========================================================================= // GstDebugLevel //========================================================================= pub fn gst_debug_level_get_type() -> GType; pub fn gst_debug_level_get_name(level: GstDebugLevel) -> *const c_char; //========================================================================= // GstEventType //========================================================================= pub fn gst_event_type_get_type() -> GType; pub fn gst_event_type_get_flags(type_: GstEventType) -> GstEventTypeFlags; pub fn gst_event_type_get_name(type_: GstEventType) -> *const c_char; pub fn gst_event_type_to_quark(type_: GstEventType) -> glib::GQuark; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_event_type_to_sticky_ordering(type_: GstEventType) -> c_uint; //========================================================================= // GstFlowReturn //========================================================================= pub fn gst_flow_return_get_type() -> GType; //========================================================================= // GstFormat //========================================================================= pub fn gst_format_get_type() -> GType; pub fn gst_format_get_by_nick(nick: *const c_char) -> GstFormat; pub fn gst_format_get_details(format: GstFormat) -> *const GstFormatDefinition; pub fn gst_format_get_name(format: GstFormat) -> *const c_char; pub fn gst_format_iterate_definitions() -> *mut GstIterator; pub fn gst_format_register(nick: *const c_char, description: *const c_char) -> GstFormat; pub fn gst_format_to_quark(format: GstFormat) -> glib::GQuark; //========================================================================= // GstIteratorItem //========================================================================= pub fn gst_iterator_item_get_type() -> GType; //========================================================================= // GstIteratorResult //========================================================================= pub fn gst_iterator_result_get_type() -> GType; //========================================================================= // GstLibraryError //========================================================================= pub fn gst_library_error_get_type() -> GType; pub fn gst_library_error_quark() -> glib::GQuark; //========================================================================= // GstPadDirection //========================================================================= pub fn gst_pad_direction_get_type() -> GType; //========================================================================= // GstPadLinkReturn //========================================================================= pub fn gst_pad_link_return_get_type() -> GType; //========================================================================= // GstPadMode //========================================================================= pub fn gst_pad_mode_get_type() -> GType; pub fn gst_pad_mode_get_name(mode: GstPadMode) -> *const c_char; //========================================================================= // GstPadPresence //========================================================================= pub fn gst_pad_presence_get_type() -> GType; //========================================================================= // GstPadProbeReturn //========================================================================= pub fn gst_pad_probe_return_get_type() -> GType; //========================================================================= // GstParseError //========================================================================= pub fn gst_parse_error_get_type() -> GType; pub fn gst_parse_error_quark() -> glib::GQuark; //========================================================================= // GstPluginError //========================================================================= pub fn gst_plugin_error_get_type() -> GType; pub fn gst_plugin_error_quark() -> glib::GQuark; //========================================================================= // GstProgressType //========================================================================= pub fn gst_progress_type_get_type() -> GType; //========================================================================= // GstPromiseResult //========================================================================= pub fn gst_promise_result_get_type() -> GType; //========================================================================= // GstQOSType //========================================================================= pub fn gst_qos_type_get_type() -> GType; //========================================================================= // GstQueryType //========================================================================= pub fn gst_query_type_get_type() -> GType; pub fn gst_query_type_get_flags(type_: GstQueryType) -> GstQueryTypeFlags; pub fn gst_query_type_get_name(type_: GstQueryType) -> *const c_char; pub fn gst_query_type_to_quark(type_: GstQueryType) -> glib::GQuark; //========================================================================= // GstRank //========================================================================= pub fn gst_rank_get_type() -> GType; //========================================================================= // GstResourceError //========================================================================= pub fn gst_resource_error_get_type() -> GType; pub fn gst_resource_error_quark() -> glib::GQuark; //========================================================================= // GstSearchMode //========================================================================= pub fn gst_search_mode_get_type() -> GType; //========================================================================= // GstSeekType //========================================================================= pub fn gst_seek_type_get_type() -> GType; //========================================================================= // GstState //========================================================================= pub fn gst_state_get_type() -> GType; //========================================================================= // GstStateChange //========================================================================= pub fn gst_state_change_get_type() -> GType; pub fn gst_state_change_get_name(transition: GstStateChange) -> *const c_char; //========================================================================= // GstStateChangeReturn //========================================================================= pub fn gst_state_change_return_get_type() -> GType; //========================================================================= // GstStreamError //========================================================================= pub fn gst_stream_error_get_type() -> GType; pub fn gst_stream_error_quark() -> glib::GQuark; //========================================================================= // GstStreamStatusType //========================================================================= pub fn gst_stream_status_type_get_type() -> GType; //========================================================================= // GstStructureChangeType //========================================================================= pub fn gst_structure_change_type_get_type() -> GType; //========================================================================= // GstTagFlag //========================================================================= pub fn gst_tag_flag_get_type() -> GType; //========================================================================= // GstTagMergeMode //========================================================================= pub fn gst_tag_merge_mode_get_type() -> GType; //========================================================================= // GstTagScope //========================================================================= pub fn gst_tag_scope_get_type() -> GType; //========================================================================= // GstTaskState //========================================================================= pub fn gst_task_state_get_type() -> GType; //========================================================================= // GstTocEntryType //========================================================================= pub fn gst_toc_entry_type_get_type() -> GType; pub fn gst_toc_entry_type_get_nick(type_: GstTocEntryType) -> *const c_char; //========================================================================= // GstTocLoopType //========================================================================= pub fn gst_toc_loop_type_get_type() -> GType; //========================================================================= // GstTocScope //========================================================================= pub fn gst_toc_scope_get_type() -> GType; //========================================================================= // GstTracerValueScope //========================================================================= pub fn gst_tracer_value_scope_get_type() -> GType; //========================================================================= // GstTypeFindProbability //========================================================================= pub fn gst_type_find_probability_get_type() -> GType; //========================================================================= // GstURIError //========================================================================= pub fn gst_uri_error_get_type() -> GType; pub fn gst_uri_error_quark() -> glib::GQuark; //========================================================================= // GstURIType //========================================================================= pub fn gst_uri_type_get_type() -> GType; //========================================================================= // GstAllocatorFlags //========================================================================= pub fn gst_allocator_flags_get_type() -> GType; //========================================================================= // GstBinFlags //========================================================================= pub fn gst_bin_flags_get_type() -> GType; //========================================================================= // GstBufferCopyFlags //========================================================================= pub fn gst_buffer_copy_flags_get_type() -> GType; //========================================================================= // GstBufferFlags //========================================================================= pub fn gst_buffer_flags_get_type() -> GType; //========================================================================= // GstBufferPoolAcquireFlags //========================================================================= pub fn gst_buffer_pool_acquire_flags_get_type() -> GType; //========================================================================= // GstBusFlags //========================================================================= pub fn gst_bus_flags_get_type() -> GType; //========================================================================= // GstCapsFlags //========================================================================= pub fn gst_caps_flags_get_type() -> GType; //========================================================================= // GstClockFlags //========================================================================= pub fn gst_clock_flags_get_type() -> GType; //========================================================================= // GstDebugColorFlags //========================================================================= pub fn gst_debug_color_flags_get_type() -> GType; //========================================================================= // GstDebugGraphDetails //========================================================================= pub fn gst_debug_graph_details_get_type() -> GType; //========================================================================= // GstElementFlags //========================================================================= pub fn gst_element_flags_get_type() -> GType; //========================================================================= // GstEventTypeFlags //========================================================================= pub fn gst_event_type_flags_get_type() -> GType; //========================================================================= // GstGapFlags //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_gap_flags_get_type() -> GType; //========================================================================= // GstLockFlags //========================================================================= pub fn gst_lock_flags_get_type() -> GType; //========================================================================= // GstMapFlags //========================================================================= pub fn gst_map_flags_get_type() -> GType; //========================================================================= // GstMemoryFlags //========================================================================= pub fn gst_memory_flags_get_type() -> GType; //========================================================================= // GstMessageType //========================================================================= pub fn gst_message_type_get_type() -> GType; pub fn gst_message_type_get_name(type_: GstMessageType) -> *const c_char; pub fn gst_message_type_to_quark(type_: GstMessageType) -> glib::GQuark; //========================================================================= // GstMetaFlags //========================================================================= pub fn gst_meta_flags_get_type() -> GType; //========================================================================= // GstMiniObjectFlags //========================================================================= pub fn gst_mini_object_flags_get_type() -> GType; //========================================================================= // GstObjectFlags //========================================================================= pub fn gst_object_flags_get_type() -> GType; //========================================================================= // GstPadFlags //========================================================================= pub fn gst_pad_flags_get_type() -> GType; //========================================================================= // GstPadLinkCheck //========================================================================= pub fn gst_pad_link_check_get_type() -> GType; //========================================================================= // GstPadProbeType //========================================================================= pub fn gst_pad_probe_type_get_type() -> GType; //========================================================================= // GstPadTemplateFlags //========================================================================= pub fn gst_pad_template_flags_get_type() -> GType; //========================================================================= // GstParseFlags //========================================================================= pub fn gst_parse_flags_get_type() -> GType; //========================================================================= // GstPipelineFlags //========================================================================= pub fn gst_pipeline_flags_get_type() -> GType; //========================================================================= // GstPluginAPIFlags //========================================================================= #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_plugin_api_flags_get_type() -> GType; //========================================================================= // GstPluginDependencyFlags //========================================================================= pub fn gst_plugin_dependency_flags_get_type() -> GType; //========================================================================= // GstPluginFlags //========================================================================= pub fn gst_plugin_flags_get_type() -> GType; //========================================================================= // GstQueryTypeFlags //========================================================================= pub fn gst_query_type_flags_get_type() -> GType; //========================================================================= // GstSchedulingFlags //========================================================================= pub fn gst_scheduling_flags_get_type() -> GType; //========================================================================= // GstSeekFlags //========================================================================= pub fn gst_seek_flags_get_type() -> GType; //========================================================================= // GstSegmentFlags //========================================================================= pub fn gst_segment_flags_get_type() -> GType; //========================================================================= // GstSerializeFlags //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_serialize_flags_get_type() -> GType; //========================================================================= // GstStackTraceFlags //========================================================================= pub fn gst_stack_trace_flags_get_type() -> GType; //========================================================================= // GstStreamFlags //========================================================================= pub fn gst_stream_flags_get_type() -> GType; //========================================================================= // GstStreamType //========================================================================= pub fn gst_stream_type_get_type() -> GType; pub fn gst_stream_type_get_name(stype: GstStreamType) -> *const c_char; //========================================================================= // GstTracerValueFlags //========================================================================= pub fn gst_tracer_value_flags_get_type() -> GType; //========================================================================= // GstAllocationParams //========================================================================= pub fn gst_allocation_params_get_type() -> GType; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_allocation_params_new() -> *mut GstAllocationParams; pub fn gst_allocation_params_copy( params: *const GstAllocationParams, ) -> *mut GstAllocationParams; pub fn gst_allocation_params_free(params: *mut GstAllocationParams); pub fn gst_allocation_params_init(params: *mut GstAllocationParams); //========================================================================= // GstAtomicQueue //========================================================================= pub fn gst_atomic_queue_get_type() -> GType; pub fn gst_atomic_queue_new(initial_size: c_uint) -> *mut GstAtomicQueue; pub fn gst_atomic_queue_length(queue: *mut GstAtomicQueue) -> c_uint; pub fn gst_atomic_queue_peek(queue: *mut GstAtomicQueue) -> gpointer; pub fn gst_atomic_queue_pop(queue: *mut GstAtomicQueue) -> gpointer; pub fn gst_atomic_queue_push(queue: *mut GstAtomicQueue, data: gpointer); pub fn gst_atomic_queue_ref(queue: *mut GstAtomicQueue); pub fn gst_atomic_queue_unref(queue: *mut GstAtomicQueue); //========================================================================= // GstBuffer //========================================================================= pub fn gst_buffer_get_type() -> GType; pub fn gst_buffer_new() -> *mut GstBuffer; pub fn gst_buffer_new_allocate( allocator: *mut GstAllocator, size: size_t, params: *mut GstAllocationParams, ) -> *mut GstBuffer; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_buffer_new_memdup(data: gconstpointer, size: size_t) -> *mut GstBuffer; pub fn gst_buffer_new_wrapped(data: gpointer, size: size_t) -> *mut GstBuffer; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_buffer_new_wrapped_bytes(bytes: *mut glib::GBytes) -> *mut GstBuffer; pub fn gst_buffer_new_wrapped_full( flags: GstMemoryFlags, data: gpointer, maxsize: size_t, offset: size_t, size: size_t, user_data: gpointer, notify: glib::GDestroyNotify, ) -> *mut GstBuffer; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_buffer_add_custom_meta( buffer: *mut GstBuffer, name: *const c_char, ) -> *mut GstCustomMeta; pub fn gst_buffer_add_meta( buffer: *mut GstBuffer, info: *const GstMetaInfo, params: gpointer, ) -> *mut GstMeta; pub fn gst_buffer_add_parent_buffer_meta( buffer: *mut GstBuffer, ref_: *mut GstBuffer, ) -> *mut GstParentBufferMeta; pub fn gst_buffer_add_protection_meta( buffer: *mut GstBuffer, info: *mut GstStructure, ) -> *mut GstProtectionMeta; pub fn gst_buffer_add_reference_timestamp_meta( buffer: *mut GstBuffer, reference: *mut GstCaps, timestamp: GstClockTime, duration: GstClockTime, ) -> *mut GstReferenceTimestampMeta; pub fn gst_buffer_append(buf1: *mut GstBuffer, buf2: *mut GstBuffer) -> *mut GstBuffer; pub fn gst_buffer_append_memory(buffer: *mut GstBuffer, mem: *mut GstMemory); pub fn gst_buffer_append_region( buf1: *mut GstBuffer, buf2: *mut GstBuffer, offset: ssize_t, size: ssize_t, ) -> *mut GstBuffer; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_copy(buf: *const GstBuffer) -> *mut GstBuffer; pub fn gst_buffer_copy_deep(buf: *const GstBuffer) -> *mut GstBuffer; pub fn gst_buffer_copy_into( dest: *mut GstBuffer, src: *mut GstBuffer, flags: GstBufferCopyFlags, offset: size_t, size: size_t, ) -> gboolean; pub fn gst_buffer_copy_region( parent: *mut GstBuffer, flags: GstBufferCopyFlags, offset: size_t, size: size_t, ) -> *mut GstBuffer; pub fn gst_buffer_extract( buffer: *mut GstBuffer, offset: size_t, dest: gpointer, size: size_t, ) -> size_t; pub fn gst_buffer_extract_dup( buffer: *mut GstBuffer, offset: size_t, size: size_t, dest: *mut u8, dest_size: *mut size_t, ); pub fn gst_buffer_fill( buffer: *mut GstBuffer, offset: size_t, src: gconstpointer, size: size_t, ) -> size_t; pub fn gst_buffer_find_memory( buffer: *mut GstBuffer, offset: size_t, size: size_t, idx: *mut c_uint, length: *mut c_uint, skip: *mut size_t, ) -> gboolean; pub fn gst_buffer_foreach_meta( buffer: *mut GstBuffer, func: GstBufferForeachMetaFunc, user_data: gpointer, ) -> gboolean; pub fn gst_buffer_get_all_memory(buffer: *mut GstBuffer) -> *mut GstMemory; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_buffer_get_custom_meta( buffer: *mut GstBuffer, name: *const c_char, ) -> *mut GstCustomMeta; pub fn gst_buffer_get_flags(buffer: *mut GstBuffer) -> GstBufferFlags; pub fn gst_buffer_get_memory(buffer: *mut GstBuffer, idx: c_uint) -> *mut GstMemory; pub fn gst_buffer_get_memory_range( buffer: *mut GstBuffer, idx: c_uint, length: c_int, ) -> *mut GstMemory; pub fn gst_buffer_get_meta(buffer: *mut GstBuffer, api: GType) -> *mut GstMeta; pub fn gst_buffer_get_n_meta(buffer: *mut GstBuffer, api_type: GType) -> c_uint; pub fn gst_buffer_get_reference_timestamp_meta( buffer: *mut GstBuffer, reference: *mut GstCaps, ) -> *mut GstReferenceTimestampMeta; pub fn gst_buffer_get_size(buffer: *mut GstBuffer) -> size_t; pub fn gst_buffer_get_sizes( buffer: *mut GstBuffer, offset: *mut size_t, maxsize: *mut size_t, ) -> size_t; pub fn gst_buffer_get_sizes_range( buffer: *mut GstBuffer, idx: c_uint, length: c_int, offset: *mut size_t, maxsize: *mut size_t, ) -> size_t; pub fn gst_buffer_has_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean; pub fn gst_buffer_insert_memory(buffer: *mut GstBuffer, idx: c_int, mem: *mut GstMemory); pub fn gst_buffer_is_all_memory_writable(buffer: *mut GstBuffer) -> gboolean; pub fn gst_buffer_is_memory_range_writable( buffer: *mut GstBuffer, idx: c_uint, length: c_int, ) -> gboolean; pub fn gst_buffer_iterate_meta(buffer: *mut GstBuffer, state: *mut gpointer) -> *mut GstMeta; pub fn gst_buffer_iterate_meta_filtered( buffer: *mut GstBuffer, state: *mut gpointer, meta_api_type: GType, ) -> *mut GstMeta; pub fn gst_buffer_map( buffer: *mut GstBuffer, info: *mut GstMapInfo, flags: GstMapFlags, ) -> gboolean; pub fn gst_buffer_map_range( buffer: *mut GstBuffer, idx: c_uint, length: c_int, info: *mut GstMapInfo, flags: GstMapFlags, ) -> gboolean; pub fn gst_buffer_memcmp( buffer: *mut GstBuffer, offset: size_t, mem: gconstpointer, size: size_t, ) -> c_int; pub fn gst_buffer_memset( buffer: *mut GstBuffer, offset: size_t, val: u8, size: size_t, ) -> size_t; pub fn gst_buffer_n_memory(buffer: *mut GstBuffer) -> c_uint; pub fn gst_buffer_peek_memory(buffer: *mut GstBuffer, idx: c_uint) -> *mut GstMemory; pub fn gst_buffer_prepend_memory(buffer: *mut GstBuffer, mem: *mut GstMemory); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_ref(buf: *mut GstBuffer) -> *mut GstBuffer; pub fn gst_buffer_remove_all_memory(buffer: *mut GstBuffer); pub fn gst_buffer_remove_memory(buffer: *mut GstBuffer, idx: c_uint); pub fn gst_buffer_remove_memory_range(buffer: *mut GstBuffer, idx: c_uint, length: c_int); pub fn gst_buffer_remove_meta(buffer: *mut GstBuffer, meta: *mut GstMeta) -> gboolean; pub fn gst_buffer_replace_all_memory(buffer: *mut GstBuffer, mem: *mut GstMemory); pub fn gst_buffer_replace_memory(buffer: *mut GstBuffer, idx: c_uint, mem: *mut GstMemory); pub fn gst_buffer_replace_memory_range( buffer: *mut GstBuffer, idx: c_uint, length: c_int, mem: *mut GstMemory, ); pub fn gst_buffer_resize(buffer: *mut GstBuffer, offset: ssize_t, size: ssize_t); pub fn gst_buffer_resize_range( buffer: *mut GstBuffer, idx: c_uint, length: c_int, offset: ssize_t, size: ssize_t, ) -> gboolean; pub fn gst_buffer_set_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean; pub fn gst_buffer_set_size(buffer: *mut GstBuffer, size: ssize_t); pub fn gst_buffer_unmap(buffer: *mut GstBuffer, info: *mut GstMapInfo); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_unref(buf: *mut GstBuffer); pub fn gst_buffer_unset_flags(buffer: *mut GstBuffer, flags: GstBufferFlags) -> gboolean; pub fn gst_buffer_get_max_memory() -> c_uint; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_replace(obuf: *mut *mut GstBuffer, nbuf: *mut GstBuffer) -> gboolean; //========================================================================= // GstBufferList //========================================================================= pub fn gst_buffer_list_get_type() -> GType; pub fn gst_buffer_list_new() -> *mut GstBufferList; pub fn gst_buffer_list_new_sized(size: c_uint) -> *mut GstBufferList; pub fn gst_buffer_list_calculate_size(list: *mut GstBufferList) -> size_t; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_list_copy(list: *const GstBufferList) -> *mut GstBufferList; pub fn gst_buffer_list_copy_deep(list: *const GstBufferList) -> *mut GstBufferList; pub fn gst_buffer_list_foreach( list: *mut GstBufferList, func: GstBufferListFunc, user_data: gpointer, ) -> gboolean; pub fn gst_buffer_list_get(list: *mut GstBufferList, idx: c_uint) -> *mut GstBuffer; pub fn gst_buffer_list_get_writable(list: *mut GstBufferList, idx: c_uint) -> *mut GstBuffer; pub fn gst_buffer_list_insert(list: *mut GstBufferList, idx: c_int, buffer: *mut GstBuffer); pub fn gst_buffer_list_length(list: *mut GstBufferList) -> c_uint; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_list_ref(list: *mut GstBufferList) -> *mut GstBufferList; pub fn gst_buffer_list_remove(list: *mut GstBufferList, idx: c_uint, length: c_uint); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_list_unref(list: *mut GstBufferList); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_list_replace( old_list: *mut *mut GstBufferList, new_list: *mut GstBufferList, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_buffer_list_take( old_list: *mut *mut GstBufferList, new_list: *mut GstBufferList, ) -> gboolean; //========================================================================= // GstCaps //========================================================================= pub fn gst_caps_get_type() -> GType; pub fn gst_caps_new_any() -> *mut GstCaps; pub fn gst_caps_new_empty() -> *mut GstCaps; pub fn gst_caps_new_empty_simple(media_type: *const c_char) -> *mut GstCaps; pub fn gst_caps_new_full(struct1: *mut GstStructure, ...) -> *mut GstCaps; //pub fn gst_caps_new_full_valist(structure: *mut GstStructure, var_args: /*Unimplemented*/va_list) -> *mut GstCaps; pub fn gst_caps_new_simple( media_type: *const c_char, fieldname: *const c_char, ... ) -> *mut GstCaps; pub fn gst_caps_append(caps1: *mut GstCaps, caps2: *mut GstCaps); pub fn gst_caps_append_structure(caps: *mut GstCaps, structure: *mut GstStructure); pub fn gst_caps_append_structure_full( caps: *mut GstCaps, structure: *mut GstStructure, features: *mut GstCapsFeatures, ); pub fn gst_caps_can_intersect(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_caps_copy(caps: *const GstCaps) -> *mut GstCaps; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_caps_copy_nth(caps: *const GstCaps, nth: c_uint) -> *mut GstCaps; pub fn gst_caps_filter_and_map_in_place( caps: *mut GstCaps, func: GstCapsFilterMapFunc, user_data: gpointer, ); pub fn gst_caps_fixate(caps: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_foreach( caps: *const GstCaps, func: GstCapsForeachFunc, user_data: gpointer, ) -> gboolean; pub fn gst_caps_get_features(caps: *const GstCaps, index: c_uint) -> *mut GstCapsFeatures; pub fn gst_caps_get_size(caps: *const GstCaps) -> c_uint; pub fn gst_caps_get_structure(caps: *const GstCaps, index: c_uint) -> *mut GstStructure; pub fn gst_caps_intersect(caps1: *mut GstCaps, caps2: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_intersect_full( caps1: *mut GstCaps, caps2: *mut GstCaps, mode: GstCapsIntersectMode, ) -> *mut GstCaps; pub fn gst_caps_is_always_compatible(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean; pub fn gst_caps_is_any(caps: *const GstCaps) -> gboolean; pub fn gst_caps_is_empty(caps: *const GstCaps) -> gboolean; pub fn gst_caps_is_equal(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean; pub fn gst_caps_is_equal_fixed(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean; pub fn gst_caps_is_fixed(caps: *const GstCaps) -> gboolean; pub fn gst_caps_is_strictly_equal(caps1: *const GstCaps, caps2: *const GstCaps) -> gboolean; pub fn gst_caps_is_subset(subset: *const GstCaps, superset: *const GstCaps) -> gboolean; pub fn gst_caps_is_subset_structure( caps: *const GstCaps, structure: *const GstStructure, ) -> gboolean; pub fn gst_caps_is_subset_structure_full( caps: *const GstCaps, structure: *const GstStructure, features: *const GstCapsFeatures, ) -> gboolean; pub fn gst_caps_map_in_place( caps: *mut GstCaps, func: GstCapsMapFunc, user_data: gpointer, ) -> gboolean; pub fn gst_caps_merge(caps1: *mut GstCaps, caps2: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_merge_structure( caps: *mut GstCaps, structure: *mut GstStructure, ) -> *mut GstCaps; pub fn gst_caps_merge_structure_full( caps: *mut GstCaps, structure: *mut GstStructure, features: *mut GstCapsFeatures, ) -> *mut GstCaps; pub fn gst_caps_normalize(caps: *mut GstCaps) -> *mut GstCaps; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_caps_ref(caps: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_remove_structure(caps: *mut GstCaps, idx: c_uint); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_caps_serialize(caps: *const GstCaps, flags: GstSerializeFlags) -> *mut c_char; pub fn gst_caps_set_features(caps: *mut GstCaps, index: c_uint, features: *mut GstCapsFeatures); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_caps_set_features_simple(caps: *mut GstCaps, features: *mut GstCapsFeatures); pub fn gst_caps_set_simple(caps: *mut GstCaps, field: *const c_char, ...); //pub fn gst_caps_set_simple_valist(caps: *mut GstCaps, field: *const c_char, varargs: /*Unimplemented*/va_list); pub fn gst_caps_set_value( caps: *mut GstCaps, field: *const c_char, value: *const gobject::GValue, ); pub fn gst_caps_simplify(caps: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_steal_structure(caps: *mut GstCaps, index: c_uint) -> *mut GstStructure; pub fn gst_caps_subtract(minuend: *mut GstCaps, subtrahend: *mut GstCaps) -> *mut GstCaps; pub fn gst_caps_to_string(caps: *const GstCaps) -> *mut c_char; pub fn gst_caps_truncate(caps: *mut GstCaps) -> *mut GstCaps; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_caps_unref(caps: *mut GstCaps); pub fn gst_caps_from_string(string: *const c_char) -> *mut GstCaps; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_caps_replace(old_caps: *mut *mut GstCaps, new_caps: *mut GstCaps) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_caps_take(old_caps: *mut *mut GstCaps, new_caps: *mut GstCaps) -> gboolean; //========================================================================= // GstCapsFeatures //========================================================================= pub fn gst_caps_features_get_type() -> GType; pub fn gst_caps_features_new(feature1: *const c_char, ...) -> *mut GstCapsFeatures; pub fn gst_caps_features_new_any() -> *mut GstCapsFeatures; pub fn gst_caps_features_new_empty() -> *mut GstCapsFeatures; pub fn gst_caps_features_new_id(feature1: glib::GQuark, ...) -> *mut GstCapsFeatures; //pub fn gst_caps_features_new_id_valist(feature1: glib::GQuark, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_caps_features_new_single(feature: *const c_char) -> *mut GstCapsFeatures; //pub fn gst_caps_features_new_valist(feature1: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstCapsFeatures; pub fn gst_caps_features_add(features: *mut GstCapsFeatures, feature: *const c_char); pub fn gst_caps_features_add_id(features: *mut GstCapsFeatures, feature: glib::GQuark); pub fn gst_caps_features_contains( features: *const GstCapsFeatures, feature: *const c_char, ) -> gboolean; pub fn gst_caps_features_contains_id( features: *const GstCapsFeatures, feature: glib::GQuark, ) -> gboolean; pub fn gst_caps_features_copy(features: *const GstCapsFeatures) -> *mut GstCapsFeatures; pub fn gst_caps_features_free(features: *mut GstCapsFeatures); pub fn gst_caps_features_get_nth(features: *const GstCapsFeatures, i: c_uint) -> *const c_char; pub fn gst_caps_features_get_nth_id( features: *const GstCapsFeatures, i: c_uint, ) -> glib::GQuark; pub fn gst_caps_features_get_size(features: *const GstCapsFeatures) -> c_uint; pub fn gst_caps_features_is_any(features: *const GstCapsFeatures) -> gboolean; pub fn gst_caps_features_is_equal( features1: *const GstCapsFeatures, features2: *const GstCapsFeatures, ) -> gboolean; pub fn gst_caps_features_remove(features: *mut GstCapsFeatures, feature: *const c_char); pub fn gst_caps_features_remove_id(features: *mut GstCapsFeatures, feature: glib::GQuark); pub fn gst_caps_features_set_parent_refcount( features: *mut GstCapsFeatures, refcount: *mut c_int, ) -> gboolean; pub fn gst_caps_features_to_string(features: *const GstCapsFeatures) -> *mut c_char; pub fn gst_caps_features_from_string(features: *const c_char) -> *mut GstCapsFeatures; //========================================================================= // GstContext //========================================================================= pub fn gst_context_get_type() -> GType; pub fn gst_context_new(context_type: *const c_char, persistent: gboolean) -> *mut GstContext; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_context_copy(context: *const GstContext) -> *mut GstContext; pub fn gst_context_get_context_type(context: *const GstContext) -> *const c_char; pub fn gst_context_get_structure(context: *const GstContext) -> *const GstStructure; pub fn gst_context_has_context_type( context: *const GstContext, context_type: *const c_char, ) -> gboolean; pub fn gst_context_is_persistent(context: *const GstContext) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_context_ref(context: *mut GstContext) -> *mut GstContext; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_context_unref(context: *mut GstContext); pub fn gst_context_writable_structure(context: *mut GstContext) -> *mut GstStructure; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_context_replace( old_context: *mut *mut GstContext, new_context: *mut GstContext, ) -> gboolean; //========================================================================= // GstCustomMeta //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_custom_meta_get_structure(meta: *mut GstCustomMeta) -> *mut GstStructure; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_custom_meta_has_name(meta: *mut GstCustomMeta, name: *const c_char) -> gboolean; //========================================================================= // GstDateTime //========================================================================= pub fn gst_date_time_get_type() -> GType; pub fn gst_date_time_new( tzoffset: c_float, year: c_int, month: c_int, day: c_int, hour: c_int, minute: c_int, seconds: c_double, ) -> *mut GstDateTime; pub fn gst_date_time_new_from_g_date_time(dt: *mut glib::GDateTime) -> *mut GstDateTime; pub fn gst_date_time_new_from_iso8601_string(string: *const c_char) -> *mut GstDateTime; pub fn gst_date_time_new_from_unix_epoch_local_time(secs: i64) -> *mut GstDateTime; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_date_time_new_from_unix_epoch_local_time_usecs(usecs: i64) -> *mut GstDateTime; pub fn gst_date_time_new_from_unix_epoch_utc(secs: i64) -> *mut GstDateTime; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_date_time_new_from_unix_epoch_utc_usecs(usecs: i64) -> *mut GstDateTime; pub fn gst_date_time_new_local_time( year: c_int, month: c_int, day: c_int, hour: c_int, minute: c_int, seconds: c_double, ) -> *mut GstDateTime; pub fn gst_date_time_new_now_local_time() -> *mut GstDateTime; pub fn gst_date_time_new_now_utc() -> *mut GstDateTime; pub fn gst_date_time_new_y(year: c_int) -> *mut GstDateTime; pub fn gst_date_time_new_ym(year: c_int, month: c_int) -> *mut GstDateTime; pub fn gst_date_time_new_ymd(year: c_int, month: c_int, day: c_int) -> *mut GstDateTime; pub fn gst_date_time_get_day(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_hour(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_microsecond(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_minute(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_month(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_second(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_get_time_zone_offset(datetime: *const GstDateTime) -> c_float; pub fn gst_date_time_get_year(datetime: *const GstDateTime) -> c_int; pub fn gst_date_time_has_day(datetime: *const GstDateTime) -> gboolean; pub fn gst_date_time_has_month(datetime: *const GstDateTime) -> gboolean; pub fn gst_date_time_has_second(datetime: *const GstDateTime) -> gboolean; pub fn gst_date_time_has_time(datetime: *const GstDateTime) -> gboolean; pub fn gst_date_time_has_year(datetime: *const GstDateTime) -> gboolean; pub fn gst_date_time_ref(datetime: *mut GstDateTime) -> *mut GstDateTime; pub fn gst_date_time_to_g_date_time(datetime: *mut GstDateTime) -> *mut glib::GDateTime; pub fn gst_date_time_to_iso8601_string(datetime: *mut GstDateTime) -> *mut c_char; pub fn gst_date_time_unref(datetime: *mut GstDateTime); //========================================================================= // GstDebugCategory //========================================================================= pub fn gst_debug_category_free(category: *mut GstDebugCategory); pub fn gst_debug_category_get_color(category: *mut GstDebugCategory) -> c_uint; pub fn gst_debug_category_get_description(category: *mut GstDebugCategory) -> *const c_char; pub fn gst_debug_category_get_name(category: *mut GstDebugCategory) -> *const c_char; pub fn gst_debug_category_get_threshold(category: *mut GstDebugCategory) -> GstDebugLevel; pub fn gst_debug_category_reset_threshold(category: *mut GstDebugCategory); pub fn gst_debug_category_set_threshold(category: *mut GstDebugCategory, level: GstDebugLevel); //========================================================================= // GstDebugMessage //========================================================================= pub fn gst_debug_message_get(message: *mut GstDebugMessage) -> *const c_char; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_debug_message_get_id(message: *mut GstDebugMessage) -> *const c_char; //========================================================================= // GstDeviceProviderClass //========================================================================= pub fn gst_device_provider_class_add_metadata( klass: *mut GstDeviceProviderClass, key: *const c_char, value: *const c_char, ); pub fn gst_device_provider_class_add_static_metadata( klass: *mut GstDeviceProviderClass, key: *const c_char, value: *const c_char, ); pub fn gst_device_provider_class_get_metadata( klass: *mut GstDeviceProviderClass, key: *const c_char, ) -> *const c_char; pub fn gst_device_provider_class_set_metadata( klass: *mut GstDeviceProviderClass, longname: *const c_char, classification: *const c_char, description: *const c_char, author: *const c_char, ); pub fn gst_device_provider_class_set_static_metadata( klass: *mut GstDeviceProviderClass, longname: *const c_char, classification: *const c_char, description: *const c_char, author: *const c_char, ); //========================================================================= // GstElementClass //========================================================================= pub fn gst_element_class_add_metadata( klass: *mut GstElementClass, key: *const c_char, value: *const c_char, ); pub fn gst_element_class_add_pad_template( klass: *mut GstElementClass, templ: *mut GstPadTemplate, ); pub fn gst_element_class_add_static_metadata( klass: *mut GstElementClass, key: *const c_char, value: *const c_char, ); pub fn gst_element_class_add_static_pad_template( klass: *mut GstElementClass, static_templ: *mut GstStaticPadTemplate, ); pub fn gst_element_class_add_static_pad_template_with_gtype( klass: *mut GstElementClass, static_templ: *mut GstStaticPadTemplate, pad_type: GType, ); pub fn gst_element_class_get_metadata( klass: *mut GstElementClass, key: *const c_char, ) -> *const c_char; pub fn gst_element_class_get_pad_template( element_class: *mut GstElementClass, name: *const c_char, ) -> *mut GstPadTemplate; pub fn gst_element_class_get_pad_template_list( element_class: *mut GstElementClass, ) -> *mut glib::GList; pub fn gst_element_class_set_metadata( klass: *mut GstElementClass, longname: *const c_char, classification: *const c_char, description: *const c_char, author: *const c_char, ); pub fn gst_element_class_set_static_metadata( klass: *mut GstElementClass, longname: *const c_char, classification: *const c_char, description: *const c_char, author: *const c_char, ); //========================================================================= // GstEvent //========================================================================= pub fn gst_event_get_type() -> GType; pub fn gst_event_new_buffer_size( format: GstFormat, minsize: i64, maxsize: i64, async_: gboolean, ) -> *mut GstEvent; pub fn gst_event_new_caps(caps: *mut GstCaps) -> *mut GstEvent; pub fn gst_event_new_custom(type_: GstEventType, structure: *mut GstStructure) -> *mut GstEvent; pub fn gst_event_new_eos() -> *mut GstEvent; pub fn gst_event_new_flush_start() -> *mut GstEvent; pub fn gst_event_new_flush_stop(reset_time: gboolean) -> *mut GstEvent; pub fn gst_event_new_gap(timestamp: GstClockTime, duration: GstClockTime) -> *mut GstEvent; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_event_new_instant_rate_change( rate_multiplier: c_double, new_flags: GstSegmentFlags, ) -> *mut GstEvent; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_event_new_instant_rate_sync_time( rate_multiplier: c_double, running_time: GstClockTime, upstream_running_time: GstClockTime, ) -> *mut GstEvent; pub fn gst_event_new_latency(latency: GstClockTime) -> *mut GstEvent; pub fn gst_event_new_navigation(structure: *mut GstStructure) -> *mut GstEvent; pub fn gst_event_new_protection( system_id: *const c_char, data: *mut GstBuffer, origin: *const c_char, ) -> *mut GstEvent; pub fn gst_event_new_qos( type_: GstQOSType, proportion: c_double, diff: GstClockTimeDiff, timestamp: GstClockTime, ) -> *mut GstEvent; pub fn gst_event_new_reconfigure() -> *mut GstEvent; pub fn gst_event_new_seek( rate: c_double, format: GstFormat, flags: GstSeekFlags, start_type: GstSeekType, start: i64, stop_type: GstSeekType, stop: i64, ) -> *mut GstEvent; pub fn gst_event_new_segment(segment: *const GstSegment) -> *mut GstEvent; pub fn gst_event_new_segment_done(format: GstFormat, position: i64) -> *mut GstEvent; pub fn gst_event_new_select_streams(streams: *mut glib::GList) -> *mut GstEvent; pub fn gst_event_new_sink_message(name: *const c_char, msg: *mut GstMessage) -> *mut GstEvent; pub fn gst_event_new_step( format: GstFormat, amount: u64, rate: c_double, flush: gboolean, intermediate: gboolean, ) -> *mut GstEvent; pub fn gst_event_new_stream_collection(collection: *mut GstStreamCollection) -> *mut GstEvent; pub fn gst_event_new_stream_group_done(group_id: c_uint) -> *mut GstEvent; pub fn gst_event_new_stream_start(stream_id: *const c_char) -> *mut GstEvent; pub fn gst_event_new_tag(taglist: *mut GstTagList) -> *mut GstEvent; pub fn gst_event_new_toc(toc: *mut GstToc, updated: gboolean) -> *mut GstEvent; pub fn gst_event_new_toc_select(uid: *const c_char) -> *mut GstEvent; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_copy(event: *const GstEvent) -> *mut GstEvent; pub fn gst_event_copy_segment(event: *mut GstEvent, segment: *mut GstSegment); pub fn gst_event_get_running_time_offset(event: *mut GstEvent) -> i64; pub fn gst_event_get_seqnum(event: *mut GstEvent) -> u32; pub fn gst_event_get_structure(event: *mut GstEvent) -> *const GstStructure; pub fn gst_event_has_name(event: *mut GstEvent, name: *const c_char) -> gboolean; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_event_has_name_id(event: *mut GstEvent, name: glib::GQuark) -> gboolean; pub fn gst_event_parse_buffer_size( event: *mut GstEvent, format: *mut GstFormat, minsize: *mut i64, maxsize: *mut i64, async_: *mut gboolean, ); pub fn gst_event_parse_caps(event: *mut GstEvent, caps: *mut *mut GstCaps); pub fn gst_event_parse_flush_stop(event: *mut GstEvent, reset_time: *mut gboolean); pub fn gst_event_parse_gap( event: *mut GstEvent, timestamp: *mut GstClockTime, duration: *mut GstClockTime, ); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_event_parse_gap_flags(event: *mut GstEvent, flags: *mut GstGapFlags); pub fn gst_event_parse_group_id(event: *mut GstEvent, group_id: *mut c_uint) -> gboolean; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_event_parse_instant_rate_change( event: *mut GstEvent, rate_multiplier: *mut c_double, new_flags: *mut GstSegmentFlags, ); #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_event_parse_instant_rate_sync_time( event: *mut GstEvent, rate_multiplier: *mut c_double, running_time: *mut GstClockTime, upstream_running_time: *mut GstClockTime, ); pub fn gst_event_parse_latency(event: *mut GstEvent, latency: *mut GstClockTime); pub fn gst_event_parse_protection( event: *mut GstEvent, system_id: *mut *const c_char, data: *mut *mut GstBuffer, origin: *mut *const c_char, ); pub fn gst_event_parse_qos( event: *mut GstEvent, type_: *mut GstQOSType, proportion: *mut c_double, diff: *mut GstClockTimeDiff, timestamp: *mut GstClockTime, ); pub fn gst_event_parse_seek( event: *mut GstEvent, rate: *mut c_double, format: *mut GstFormat, flags: *mut GstSeekFlags, start_type: *mut GstSeekType, start: *mut i64, stop_type: *mut GstSeekType, stop: *mut i64, ); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_event_parse_seek_trickmode_interval( event: *mut GstEvent, interval: *mut GstClockTime, ); pub fn gst_event_parse_segment(event: *mut GstEvent, segment: *mut *const GstSegment); pub fn gst_event_parse_segment_done( event: *mut GstEvent, format: *mut GstFormat, position: *mut i64, ); pub fn gst_event_parse_select_streams(event: *mut GstEvent, streams: *mut *mut glib::GList); pub fn gst_event_parse_sink_message(event: *mut GstEvent, msg: *mut *mut GstMessage); pub fn gst_event_parse_step( event: *mut GstEvent, format: *mut GstFormat, amount: *mut u64, rate: *mut c_double, flush: *mut gboolean, intermediate: *mut gboolean, ); pub fn gst_event_parse_stream(event: *mut GstEvent, stream: *mut *mut GstStream); pub fn gst_event_parse_stream_collection( event: *mut GstEvent, collection: *mut *mut GstStreamCollection, ); pub fn gst_event_parse_stream_flags(event: *mut GstEvent, flags: *mut GstStreamFlags); pub fn gst_event_parse_stream_group_done(event: *mut GstEvent, group_id: *mut c_uint); pub fn gst_event_parse_stream_start(event: *mut GstEvent, stream_id: *mut *const c_char); pub fn gst_event_parse_tag(event: *mut GstEvent, taglist: *mut *mut GstTagList); pub fn gst_event_parse_toc(event: *mut GstEvent, toc: *mut *mut GstToc, updated: *mut gboolean); pub fn gst_event_parse_toc_select(event: *mut GstEvent, uid: *mut *mut c_char); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_ref(event: *mut GstEvent) -> *mut GstEvent; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_event_set_gap_flags(event: *mut GstEvent, flags: GstGapFlags); pub fn gst_event_set_group_id(event: *mut GstEvent, group_id: c_uint); pub fn gst_event_set_running_time_offset(event: *mut GstEvent, offset: i64); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_event_set_seek_trickmode_interval(event: *mut GstEvent, interval: GstClockTime); pub fn gst_event_set_seqnum(event: *mut GstEvent, seqnum: u32); pub fn gst_event_set_stream(event: *mut GstEvent, stream: *mut GstStream); pub fn gst_event_set_stream_flags(event: *mut GstEvent, flags: GstStreamFlags); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_unref(event: *mut GstEvent); pub fn gst_event_writable_structure(event: *mut GstEvent) -> *mut GstStructure; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_replace(old_event: *mut *mut GstEvent, new_event: *mut GstEvent) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_steal(old_event: *mut *mut GstEvent) -> *mut GstEvent; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_event_take(old_event: *mut *mut GstEvent, new_event: *mut GstEvent) -> gboolean; //========================================================================= // GstIterator //========================================================================= pub fn gst_iterator_get_type() -> GType; pub fn gst_iterator_new( size: c_uint, type_: GType, lock: *mut glib::GMutex, master_cookie: *mut u32, copy: GstIteratorCopyFunction, next: GstIteratorNextFunction, item: GstIteratorItemFunction, resync: GstIteratorResyncFunction, free: GstIteratorFreeFunction, ) -> *mut GstIterator; pub fn gst_iterator_new_list( type_: GType, lock: *mut glib::GMutex, master_cookie: *mut u32, list: *mut *mut glib::GList, owner: *mut gobject::GObject, item: GstIteratorItemFunction, ) -> *mut GstIterator; pub fn gst_iterator_new_single( type_: GType, object: *const gobject::GValue, ) -> *mut GstIterator; pub fn gst_iterator_copy(it: *const GstIterator) -> *mut GstIterator; pub fn gst_iterator_filter( it: *mut GstIterator, func: glib::GCompareFunc, user_data: *const gobject::GValue, ) -> *mut GstIterator; pub fn gst_iterator_find_custom( it: *mut GstIterator, func: glib::GCompareFunc, elem: *mut gobject::GValue, user_data: gpointer, ) -> gboolean; pub fn gst_iterator_fold( it: *mut GstIterator, func: GstIteratorFoldFunction, ret: *mut gobject::GValue, user_data: gpointer, ) -> GstIteratorResult; pub fn gst_iterator_foreach( it: *mut GstIterator, func: GstIteratorForeachFunction, user_data: gpointer, ) -> GstIteratorResult; pub fn gst_iterator_free(it: *mut GstIterator); pub fn gst_iterator_next(it: *mut GstIterator, elem: *mut gobject::GValue) -> GstIteratorResult; pub fn gst_iterator_push(it: *mut GstIterator, other: *mut GstIterator); pub fn gst_iterator_resync(it: *mut GstIterator); //========================================================================= // GstMemory //========================================================================= pub fn gst_memory_get_type() -> GType; pub fn gst_memory_new_wrapped( flags: GstMemoryFlags, data: gpointer, maxsize: size_t, offset: size_t, size: size_t, user_data: gpointer, notify: glib::GDestroyNotify, ) -> *mut GstMemory; pub fn gst_memory_copy(mem: *mut GstMemory, offset: ssize_t, size: ssize_t) -> *mut GstMemory; pub fn gst_memory_get_sizes( mem: *mut GstMemory, offset: *mut size_t, maxsize: *mut size_t, ) -> size_t; pub fn gst_memory_init( mem: *mut GstMemory, flags: GstMemoryFlags, allocator: *mut GstAllocator, parent: *mut GstMemory, maxsize: size_t, align: size_t, offset: size_t, size: size_t, ); pub fn gst_memory_is_span( mem1: *mut GstMemory, mem2: *mut GstMemory, offset: *mut size_t, ) -> gboolean; pub fn gst_memory_is_type(mem: *mut GstMemory, mem_type: *const c_char) -> gboolean; pub fn gst_memory_make_mapped( mem: *mut GstMemory, info: *mut GstMapInfo, flags: GstMapFlags, ) -> *mut GstMemory; pub fn gst_memory_map( mem: *mut GstMemory, info: *mut GstMapInfo, flags: GstMapFlags, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_memory_ref(memory: *mut GstMemory) -> *mut GstMemory; pub fn gst_memory_resize(mem: *mut GstMemory, offset: ssize_t, size: size_t); pub fn gst_memory_share(mem: *mut GstMemory, offset: ssize_t, size: ssize_t) -> *mut GstMemory; pub fn gst_memory_unmap(mem: *mut GstMemory, info: *mut GstMapInfo); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_memory_unref(memory: *mut GstMemory); //========================================================================= // GstMessage //========================================================================= pub fn gst_message_get_type() -> GType; pub fn gst_message_new_application( src: *mut GstObject, structure: *mut GstStructure, ) -> *mut GstMessage; pub fn gst_message_new_async_done( src: *mut GstObject, running_time: GstClockTime, ) -> *mut GstMessage; pub fn gst_message_new_async_start(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_buffering(src: *mut GstObject, percent: c_int) -> *mut GstMessage; pub fn gst_message_new_clock_lost(src: *mut GstObject, clock: *mut GstClock) -> *mut GstMessage; pub fn gst_message_new_clock_provide( src: *mut GstObject, clock: *mut GstClock, ready: gboolean, ) -> *mut GstMessage; pub fn gst_message_new_custom( type_: GstMessageType, src: *mut GstObject, structure: *mut GstStructure, ) -> *mut GstMessage; pub fn gst_message_new_device_added( src: *mut GstObject, device: *mut GstDevice, ) -> *mut GstMessage; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_message_new_device_changed( src: *mut GstObject, device: *mut GstDevice, changed_device: *mut GstDevice, ) -> *mut GstMessage; pub fn gst_message_new_device_removed( src: *mut GstObject, device: *mut GstDevice, ) -> *mut GstMessage; pub fn gst_message_new_duration_changed(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_element( src: *mut GstObject, structure: *mut GstStructure, ) -> *mut GstMessage; pub fn gst_message_new_eos(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_error( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, ) -> *mut GstMessage; pub fn gst_message_new_error_with_details( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, details: *mut GstStructure, ) -> *mut GstMessage; pub fn gst_message_new_have_context( src: *mut GstObject, context: *mut GstContext, ) -> *mut GstMessage; pub fn gst_message_new_info( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, ) -> *mut GstMessage; pub fn gst_message_new_info_with_details( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, details: *mut GstStructure, ) -> *mut GstMessage; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_message_new_instant_rate_request( src: *mut GstObject, rate_multiplier: c_double, ) -> *mut GstMessage; pub fn gst_message_new_latency(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_need_context( src: *mut GstObject, context_type: *const c_char, ) -> *mut GstMessage; pub fn gst_message_new_new_clock(src: *mut GstObject, clock: *mut GstClock) -> *mut GstMessage; pub fn gst_message_new_progress( src: *mut GstObject, type_: GstProgressType, code: *const c_char, text: *const c_char, ) -> *mut GstMessage; pub fn gst_message_new_property_notify( src: *mut GstObject, property_name: *const c_char, val: *mut gobject::GValue, ) -> *mut GstMessage; pub fn gst_message_new_qos( src: *mut GstObject, live: gboolean, running_time: u64, stream_time: u64, timestamp: u64, duration: u64, ) -> *mut GstMessage; pub fn gst_message_new_redirect( src: *mut GstObject, location: *const c_char, tag_list: *mut GstTagList, entry_struct: *const GstStructure, ) -> *mut GstMessage; pub fn gst_message_new_request_state(src: *mut GstObject, state: GstState) -> *mut GstMessage; pub fn gst_message_new_reset_time( src: *mut GstObject, running_time: GstClockTime, ) -> *mut GstMessage; pub fn gst_message_new_segment_done( src: *mut GstObject, format: GstFormat, position: i64, ) -> *mut GstMessage; pub fn gst_message_new_segment_start( src: *mut GstObject, format: GstFormat, position: i64, ) -> *mut GstMessage; pub fn gst_message_new_state_changed( src: *mut GstObject, oldstate: GstState, newstate: GstState, pending: GstState, ) -> *mut GstMessage; pub fn gst_message_new_state_dirty(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_step_done( src: *mut GstObject, format: GstFormat, amount: u64, rate: c_double, flush: gboolean, intermediate: gboolean, duration: u64, eos: gboolean, ) -> *mut GstMessage; pub fn gst_message_new_step_start( src: *mut GstObject, active: gboolean, format: GstFormat, amount: u64, rate: c_double, flush: gboolean, intermediate: gboolean, ) -> *mut GstMessage; pub fn gst_message_new_stream_collection( src: *mut GstObject, collection: *mut GstStreamCollection, ) -> *mut GstMessage; pub fn gst_message_new_stream_start(src: *mut GstObject) -> *mut GstMessage; pub fn gst_message_new_stream_status( src: *mut GstObject, type_: GstStreamStatusType, owner: *mut GstElement, ) -> *mut GstMessage; pub fn gst_message_new_streams_selected( src: *mut GstObject, collection: *mut GstStreamCollection, ) -> *mut GstMessage; pub fn gst_message_new_structure_change( src: *mut GstObject, type_: GstStructureChangeType, owner: *mut GstElement, busy: gboolean, ) -> *mut GstMessage; pub fn gst_message_new_tag(src: *mut GstObject, tag_list: *mut GstTagList) -> *mut GstMessage; pub fn gst_message_new_toc( src: *mut GstObject, toc: *mut GstToc, updated: gboolean, ) -> *mut GstMessage; pub fn gst_message_new_warning( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, ) -> *mut GstMessage; pub fn gst_message_new_warning_with_details( src: *mut GstObject, error: *mut glib::GError, debug: *const c_char, details: *mut GstStructure, ) -> *mut GstMessage; pub fn gst_message_add_redirect_entry( message: *mut GstMessage, location: *const c_char, tag_list: *mut GstTagList, entry_struct: *const GstStructure, ); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_message_copy(msg: *const GstMessage) -> *mut GstMessage; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_get_details(message: *mut GstMessage) -> *const GstStructure; pub fn gst_message_get_num_redirect_entries(message: *mut GstMessage) -> size_t; pub fn gst_message_get_seqnum(message: *mut GstMessage) -> u32; pub fn gst_message_get_stream_status_object(message: *mut GstMessage) -> *const gobject::GValue; pub fn gst_message_get_structure(message: *mut GstMessage) -> *const GstStructure; pub fn gst_message_has_name(message: *mut GstMessage, name: *const c_char) -> gboolean; pub fn gst_message_parse_async_done(message: *mut GstMessage, running_time: *mut GstClockTime); pub fn gst_message_parse_buffering(message: *mut GstMessage, percent: *mut c_int); pub fn gst_message_parse_buffering_stats( message: *mut GstMessage, mode: *mut GstBufferingMode, avg_in: *mut c_int, avg_out: *mut c_int, buffering_left: *mut i64, ); pub fn gst_message_parse_clock_lost(message: *mut GstMessage, clock: *mut *mut GstClock); pub fn gst_message_parse_clock_provide( message: *mut GstMessage, clock: *mut *mut GstClock, ready: *mut gboolean, ); pub fn gst_message_parse_context_type( message: *mut GstMessage, context_type: *mut *const c_char, ) -> gboolean; pub fn gst_message_parse_device_added(message: *mut GstMessage, device: *mut *mut GstDevice); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_message_parse_device_changed( message: *mut GstMessage, device: *mut *mut GstDevice, changed_device: *mut *mut GstDevice, ); pub fn gst_message_parse_device_removed(message: *mut GstMessage, device: *mut *mut GstDevice); pub fn gst_message_parse_error( message: *mut GstMessage, gerror: *mut *mut glib::GError, debug: *mut *mut c_char, ); pub fn gst_message_parse_error_details( message: *mut GstMessage, structure: *mut *const GstStructure, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_parse_error_writable_details( message: *mut GstMessage, structure: *mut *mut GstStructure, ); pub fn gst_message_parse_group_id(message: *mut GstMessage, group_id: *mut c_uint) -> gboolean; pub fn gst_message_parse_have_context(message: *mut GstMessage, context: *mut *mut GstContext); pub fn gst_message_parse_info( message: *mut GstMessage, gerror: *mut *mut glib::GError, debug: *mut *mut c_char, ); pub fn gst_message_parse_info_details( message: *mut GstMessage, structure: *mut *const GstStructure, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_parse_info_writable_details( message: *mut GstMessage, structure: *mut *mut GstStructure, ); #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_message_parse_instant_rate_request( message: *mut GstMessage, rate_multiplier: *mut c_double, ); pub fn gst_message_parse_new_clock(message: *mut GstMessage, clock: *mut *mut GstClock); pub fn gst_message_parse_progress( message: *mut GstMessage, type_: *mut GstProgressType, code: *mut *mut c_char, text: *mut *mut c_char, ); pub fn gst_message_parse_property_notify( message: *mut GstMessage, object: *mut *mut GstObject, property_name: *mut *const c_char, property_value: *mut *const gobject::GValue, ); pub fn gst_message_parse_qos( message: *mut GstMessage, live: *mut gboolean, running_time: *mut u64, stream_time: *mut u64, timestamp: *mut u64, duration: *mut u64, ); pub fn gst_message_parse_qos_stats( message: *mut GstMessage, format: *mut GstFormat, processed: *mut u64, dropped: *mut u64, ); pub fn gst_message_parse_qos_values( message: *mut GstMessage, jitter: *mut i64, proportion: *mut c_double, quality: *mut c_int, ); pub fn gst_message_parse_redirect_entry( message: *mut GstMessage, entry_index: size_t, location: *mut *const c_char, tag_list: *mut *mut GstTagList, entry_struct: *mut *const GstStructure, ); pub fn gst_message_parse_request_state(message: *mut GstMessage, state: *mut GstState); pub fn gst_message_parse_reset_time(message: *mut GstMessage, running_time: *mut GstClockTime); pub fn gst_message_parse_segment_done( message: *mut GstMessage, format: *mut GstFormat, position: *mut i64, ); pub fn gst_message_parse_segment_start( message: *mut GstMessage, format: *mut GstFormat, position: *mut i64, ); pub fn gst_message_parse_state_changed( message: *mut GstMessage, oldstate: *mut GstState, newstate: *mut GstState, pending: *mut GstState, ); pub fn gst_message_parse_step_done( message: *mut GstMessage, format: *mut GstFormat, amount: *mut u64, rate: *mut c_double, flush: *mut gboolean, intermediate: *mut gboolean, duration: *mut u64, eos: *mut gboolean, ); pub fn gst_message_parse_step_start( message: *mut GstMessage, active: *mut gboolean, format: *mut GstFormat, amount: *mut u64, rate: *mut c_double, flush: *mut gboolean, intermediate: *mut gboolean, ); pub fn gst_message_parse_stream_collection( message: *mut GstMessage, collection: *mut *mut GstStreamCollection, ); pub fn gst_message_parse_stream_status( message: *mut GstMessage, type_: *mut GstStreamStatusType, owner: *mut *mut GstElement, ); pub fn gst_message_parse_streams_selected( message: *mut GstMessage, collection: *mut *mut GstStreamCollection, ); pub fn gst_message_parse_structure_change( message: *mut GstMessage, type_: *mut GstStructureChangeType, owner: *mut *mut GstElement, busy: *mut gboolean, ); pub fn gst_message_parse_tag(message: *mut GstMessage, tag_list: *mut *mut GstTagList); pub fn gst_message_parse_toc( message: *mut GstMessage, toc: *mut *mut GstToc, updated: *mut gboolean, ); pub fn gst_message_parse_warning( message: *mut GstMessage, gerror: *mut *mut glib::GError, debug: *mut *mut c_char, ); pub fn gst_message_parse_warning_details( message: *mut GstMessage, structure: *mut *const GstStructure, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_parse_warning_writable_details( message: *mut GstMessage, structure: *mut *mut GstStructure, ); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_message_ref(msg: *mut GstMessage) -> *mut GstMessage; pub fn gst_message_set_buffering_stats( message: *mut GstMessage, mode: GstBufferingMode, avg_in: c_int, avg_out: c_int, buffering_left: i64, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_set_details(message: *mut GstMessage, details: *mut GstStructure); pub fn gst_message_set_group_id(message: *mut GstMessage, group_id: c_uint); pub fn gst_message_set_qos_stats( message: *mut GstMessage, format: GstFormat, processed: u64, dropped: u64, ); pub fn gst_message_set_qos_values( message: *mut GstMessage, jitter: i64, proportion: c_double, quality: c_int, ); pub fn gst_message_set_seqnum(message: *mut GstMessage, seqnum: u32); pub fn gst_message_set_stream_status_object( message: *mut GstMessage, object: *const gobject::GValue, ); pub fn gst_message_streams_selected_add(message: *mut GstMessage, stream: *mut GstStream); pub fn gst_message_streams_selected_get_size(message: *mut GstMessage) -> c_uint; pub fn gst_message_streams_selected_get_stream( message: *mut GstMessage, idx: c_uint, ) -> *mut GstStream; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_message_unref(msg: *mut GstMessage); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_message_writable_details(message: *mut GstMessage) -> *mut GstStructure; pub fn gst_message_writable_structure(message: *mut GstMessage) -> *mut GstStructure; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_message_replace( old_message: *mut *mut GstMessage, new_message: *mut GstMessage, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_message_take( old_message: *mut *mut GstMessage, new_message: *mut GstMessage, ) -> gboolean; //========================================================================= // GstMeta //========================================================================= #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_meta_compare_seqnum(meta1: *const GstMeta, meta2: *const GstMeta) -> c_int; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_meta_get_seqnum(meta: *const GstMeta) -> u64; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_serialize(meta: *const GstMeta, data: *mut GstByteArrayInterface) -> gboolean; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_serialize_simple(meta: *const GstMeta, data: *mut glib::GByteArray) -> gboolean; pub fn gst_meta_api_type_get_tags(api: GType) -> *const *const c_char; pub fn gst_meta_api_type_has_tag(api: GType, tag: glib::GQuark) -> gboolean; pub fn gst_meta_api_type_register(api: *const c_char, tags: *mut *const c_char) -> GType; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_deserialize( buffer: *mut GstBuffer, data: *const u8, size: size_t, consumed: *mut u32, ) -> *mut GstMeta; pub fn gst_meta_get_info(impl_: *const c_char) -> *const GstMetaInfo; pub fn gst_meta_register( api: GType, impl_: *const c_char, size: size_t, init_func: GstMetaInitFunction, free_func: GstMetaFreeFunction, transform_func: GstMetaTransformFunction, ) -> *const GstMetaInfo; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_meta_register_custom( name: *const c_char, tags: *mut *const c_char, transform_func: GstCustomMetaTransformFunction, user_data: gpointer, destroy_data: glib::GDestroyNotify, ) -> *const GstMetaInfo; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_register_custom_simple(name: *const c_char) -> *const GstMetaInfo; //========================================================================= // GstMetaInfo //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_meta_info_is_custom(info: *const GstMetaInfo) -> gboolean; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_info_register(info: *mut GstMetaInfo) -> *const GstMetaInfo; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_meta_info_new(api: GType, impl_: *const c_char, size: size_t) -> *mut GstMetaInfo; //========================================================================= // GstMiniObject //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_mini_object_get_type() -> GType; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_mini_object_add_parent(object: *mut GstMiniObject, parent: *mut GstMiniObject); pub fn gst_mini_object_copy(mini_object: *const GstMiniObject) -> *mut GstMiniObject; pub fn gst_mini_object_get_qdata(object: *mut GstMiniObject, quark: glib::GQuark) -> gpointer; pub fn gst_mini_object_init( mini_object: *mut GstMiniObject, flags: c_uint, type_: GType, copy_func: GstMiniObjectCopyFunction, dispose_func: GstMiniObjectDisposeFunction, free_func: GstMiniObjectFreeFunction, ); pub fn gst_mini_object_is_writable(mini_object: *const GstMiniObject) -> gboolean; pub fn gst_mini_object_lock(object: *mut GstMiniObject, flags: GstLockFlags) -> gboolean; pub fn gst_mini_object_make_writable(mini_object: *mut GstMiniObject) -> *mut GstMiniObject; pub fn gst_mini_object_ref(mini_object: *mut GstMiniObject) -> *mut GstMiniObject; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_mini_object_remove_parent(object: *mut GstMiniObject, parent: *mut GstMiniObject); pub fn gst_mini_object_set_qdata( object: *mut GstMiniObject, quark: glib::GQuark, data: gpointer, destroy: glib::GDestroyNotify, ); pub fn gst_mini_object_steal_qdata(object: *mut GstMiniObject, quark: glib::GQuark) -> gpointer; pub fn gst_mini_object_unlock(object: *mut GstMiniObject, flags: GstLockFlags); pub fn gst_mini_object_unref(mini_object: *mut GstMiniObject); pub fn gst_mini_object_weak_ref( object: *mut GstMiniObject, notify: GstMiniObjectNotify, data: gpointer, ); pub fn gst_mini_object_weak_unref( object: *mut GstMiniObject, notify: GstMiniObjectNotify, data: gpointer, ); pub fn gst_mini_object_replace( olddata: *mut *mut GstMiniObject, newdata: *mut GstMiniObject, ) -> gboolean; pub fn gst_mini_object_steal(olddata: *mut *mut GstMiniObject) -> *mut GstMiniObject; pub fn gst_mini_object_take( olddata: *mut *mut GstMiniObject, newdata: *mut GstMiniObject, ) -> gboolean; //========================================================================= // GstPadProbeInfo //========================================================================= pub fn gst_pad_probe_info_get_buffer(info: *mut GstPadProbeInfo) -> *mut GstBuffer; pub fn gst_pad_probe_info_get_buffer_list(info: *mut GstPadProbeInfo) -> *mut GstBufferList; pub fn gst_pad_probe_info_get_event(info: *mut GstPadProbeInfo) -> *mut GstEvent; pub fn gst_pad_probe_info_get_query(info: *mut GstPadProbeInfo) -> *mut GstQuery; //========================================================================= // GstParentBufferMeta //========================================================================= pub fn gst_parent_buffer_meta_get_info() -> *const GstMetaInfo; //========================================================================= // GstParseContext //========================================================================= pub fn gst_parse_context_get_type() -> GType; pub fn gst_parse_context_new() -> *mut GstParseContext; pub fn gst_parse_context_copy(context: *const GstParseContext) -> *mut GstParseContext; pub fn gst_parse_context_free(context: *mut GstParseContext); pub fn gst_parse_context_get_missing_elements( context: *mut GstParseContext, ) -> *mut *mut c_char; //========================================================================= // GstPoll //========================================================================= pub fn gst_poll_add_fd(set: *mut GstPoll, fd: *mut GstPollFD) -> gboolean; pub fn gst_poll_fd_can_read(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean; pub fn gst_poll_fd_can_write(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_poll_fd_ctl_pri(set: *mut GstPoll, fd: *mut GstPollFD, active: gboolean) -> gboolean; pub fn gst_poll_fd_ctl_read( set: *mut GstPoll, fd: *mut GstPollFD, active: gboolean, ) -> gboolean; pub fn gst_poll_fd_ctl_write( set: *mut GstPoll, fd: *mut GstPollFD, active: gboolean, ) -> gboolean; pub fn gst_poll_fd_has_closed(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean; pub fn gst_poll_fd_has_error(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_poll_fd_has_pri(set: *const GstPoll, fd: *mut GstPollFD) -> gboolean; pub fn gst_poll_fd_ignored(set: *mut GstPoll, fd: *mut GstPollFD); pub fn gst_poll_free(set: *mut GstPoll); pub fn gst_poll_get_read_gpollfd(set: *mut GstPoll, fd: *mut glib::GPollFD); pub fn gst_poll_read_control(set: *mut GstPoll) -> gboolean; pub fn gst_poll_remove_fd(set: *mut GstPoll, fd: *mut GstPollFD) -> gboolean; pub fn gst_poll_restart(set: *mut GstPoll); pub fn gst_poll_set_controllable(set: *mut GstPoll, controllable: gboolean) -> gboolean; pub fn gst_poll_set_flushing(set: *mut GstPoll, flushing: gboolean); pub fn gst_poll_wait(set: *mut GstPoll, timeout: GstClockTime) -> c_int; pub fn gst_poll_write_control(set: *mut GstPoll) -> gboolean; pub fn gst_poll_new(controllable: gboolean) -> *mut GstPoll; pub fn gst_poll_new_timer() -> *mut GstPoll; //========================================================================= // GstPollFD //========================================================================= pub fn gst_poll_fd_init(fd: *mut GstPollFD); //========================================================================= // GstPromise //========================================================================= pub fn gst_promise_get_type() -> GType; pub fn gst_promise_new() -> *mut GstPromise; pub fn gst_promise_new_with_change_func( func: GstPromiseChangeFunc, user_data: gpointer, notify: glib::GDestroyNotify, ) -> *mut GstPromise; pub fn gst_promise_expire(promise: *mut GstPromise); pub fn gst_promise_get_reply(promise: *mut GstPromise) -> *const GstStructure; pub fn gst_promise_interrupt(promise: *mut GstPromise); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_promise_ref(promise: *mut GstPromise) -> *mut GstPromise; pub fn gst_promise_reply(promise: *mut GstPromise, s: *mut GstStructure); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_promise_unref(promise: *mut GstPromise); pub fn gst_promise_wait(promise: *mut GstPromise) -> GstPromiseResult; //========================================================================= // GstProtectionMeta //========================================================================= pub fn gst_protection_meta_get_info() -> *const GstMetaInfo; //========================================================================= // GstQuery //========================================================================= pub fn gst_query_get_type() -> GType; pub fn gst_query_new_accept_caps(caps: *mut GstCaps) -> *mut GstQuery; pub fn gst_query_new_allocation(caps: *mut GstCaps, need_pool: gboolean) -> *mut GstQuery; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_query_new_bitrate() -> *mut GstQuery; pub fn gst_query_new_buffering(format: GstFormat) -> *mut GstQuery; pub fn gst_query_new_caps(filter: *mut GstCaps) -> *mut GstQuery; pub fn gst_query_new_context(context_type: *const c_char) -> *mut GstQuery; pub fn gst_query_new_convert( src_format: GstFormat, value: i64, dest_format: GstFormat, ) -> *mut GstQuery; pub fn gst_query_new_custom(type_: GstQueryType, structure: *mut GstStructure) -> *mut GstQuery; pub fn gst_query_new_drain() -> *mut GstQuery; pub fn gst_query_new_duration(format: GstFormat) -> *mut GstQuery; pub fn gst_query_new_formats() -> *mut GstQuery; pub fn gst_query_new_latency() -> *mut GstQuery; pub fn gst_query_new_position(format: GstFormat) -> *mut GstQuery; pub fn gst_query_new_scheduling() -> *mut GstQuery; pub fn gst_query_new_seeking(format: GstFormat) -> *mut GstQuery; pub fn gst_query_new_segment(format: GstFormat) -> *mut GstQuery; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_query_new_selectable() -> *mut GstQuery; pub fn gst_query_new_uri() -> *mut GstQuery; pub fn gst_query_add_allocation_meta( query: *mut GstQuery, api: GType, params: *const GstStructure, ); pub fn gst_query_add_allocation_param( query: *mut GstQuery, allocator: *mut GstAllocator, params: *const GstAllocationParams, ); pub fn gst_query_add_allocation_pool( query: *mut GstQuery, pool: *mut GstBufferPool, size: c_uint, min_buffers: c_uint, max_buffers: c_uint, ); pub fn gst_query_add_buffering_range(query: *mut GstQuery, start: i64, stop: i64) -> gboolean; pub fn gst_query_add_scheduling_mode(query: *mut GstQuery, mode: GstPadMode); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_query_copy(q: *const GstQuery) -> *mut GstQuery; pub fn gst_query_find_allocation_meta( query: *mut GstQuery, api: GType, index: *mut c_uint, ) -> gboolean; pub fn gst_query_get_n_allocation_metas(query: *mut GstQuery) -> c_uint; pub fn gst_query_get_n_allocation_params(query: *mut GstQuery) -> c_uint; pub fn gst_query_get_n_allocation_pools(query: *mut GstQuery) -> c_uint; pub fn gst_query_get_n_buffering_ranges(query: *mut GstQuery) -> c_uint; pub fn gst_query_get_n_scheduling_modes(query: *mut GstQuery) -> c_uint; pub fn gst_query_get_structure(query: *mut GstQuery) -> *const GstStructure; pub fn gst_query_has_scheduling_mode(query: *mut GstQuery, mode: GstPadMode) -> gboolean; pub fn gst_query_has_scheduling_mode_with_flags( query: *mut GstQuery, mode: GstPadMode, flags: GstSchedulingFlags, ) -> gboolean; pub fn gst_query_parse_accept_caps(query: *mut GstQuery, caps: *mut *mut GstCaps); pub fn gst_query_parse_accept_caps_result(query: *mut GstQuery, result: *mut gboolean); pub fn gst_query_parse_allocation( query: *mut GstQuery, caps: *mut *mut GstCaps, need_pool: *mut gboolean, ); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_query_parse_bitrate(query: *mut GstQuery, nominal_bitrate: *mut c_uint); pub fn gst_query_parse_buffering_percent( query: *mut GstQuery, busy: *mut gboolean, percent: *mut c_int, ); pub fn gst_query_parse_buffering_range( query: *mut GstQuery, format: *mut GstFormat, start: *mut i64, stop: *mut i64, estimated_total: *mut i64, ); pub fn gst_query_parse_buffering_stats( query: *mut GstQuery, mode: *mut GstBufferingMode, avg_in: *mut c_int, avg_out: *mut c_int, buffering_left: *mut i64, ); pub fn gst_query_parse_caps(query: *mut GstQuery, filter: *mut *mut GstCaps); pub fn gst_query_parse_caps_result(query: *mut GstQuery, caps: *mut *mut GstCaps); pub fn gst_query_parse_context(query: *mut GstQuery, context: *mut *mut GstContext); pub fn gst_query_parse_context_type( query: *mut GstQuery, context_type: *mut *const c_char, ) -> gboolean; pub fn gst_query_parse_convert( query: *mut GstQuery, src_format: *mut GstFormat, src_value: *mut i64, dest_format: *mut GstFormat, dest_value: *mut i64, ); pub fn gst_query_parse_duration( query: *mut GstQuery, format: *mut GstFormat, duration: *mut i64, ); pub fn gst_query_parse_latency( query: *mut GstQuery, live: *mut gboolean, min_latency: *mut GstClockTime, max_latency: *mut GstClockTime, ); pub fn gst_query_parse_n_formats(query: *mut GstQuery, n_formats: *mut c_uint); pub fn gst_query_parse_nth_allocation_meta( query: *mut GstQuery, index: c_uint, params: *mut *const GstStructure, ) -> GType; pub fn gst_query_parse_nth_allocation_param( query: *mut GstQuery, index: c_uint, allocator: *mut *mut GstAllocator, params: *mut GstAllocationParams, ); pub fn gst_query_parse_nth_allocation_pool( query: *mut GstQuery, index: c_uint, pool: *mut *mut GstBufferPool, size: *mut c_uint, min_buffers: *mut c_uint, max_buffers: *mut c_uint, ); pub fn gst_query_parse_nth_buffering_range( query: *mut GstQuery, index: c_uint, start: *mut i64, stop: *mut i64, ) -> gboolean; pub fn gst_query_parse_nth_format(query: *mut GstQuery, nth: c_uint, format: *mut GstFormat); pub fn gst_query_parse_nth_scheduling_mode(query: *mut GstQuery, index: c_uint) -> GstPadMode; pub fn gst_query_parse_position(query: *mut GstQuery, format: *mut GstFormat, cur: *mut i64); pub fn gst_query_parse_scheduling( query: *mut GstQuery, flags: *mut GstSchedulingFlags, minsize: *mut c_int, maxsize: *mut c_int, align: *mut c_int, ); pub fn gst_query_parse_seeking( query: *mut GstQuery, format: *mut GstFormat, seekable: *mut gboolean, segment_start: *mut i64, segment_end: *mut i64, ); pub fn gst_query_parse_segment( query: *mut GstQuery, rate: *mut c_double, format: *mut GstFormat, start_value: *mut i64, stop_value: *mut i64, ); #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_query_parse_selectable(query: *mut GstQuery, selectable: *mut gboolean); pub fn gst_query_parse_uri(query: *mut GstQuery, uri: *mut *mut c_char); pub fn gst_query_parse_uri_redirection(query: *mut GstQuery, uri: *mut *mut c_char); pub fn gst_query_parse_uri_redirection_permanent( query: *mut GstQuery, permanent: *mut gboolean, ); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_query_ref(q: *mut GstQuery) -> *mut GstQuery; pub fn gst_query_remove_nth_allocation_meta(query: *mut GstQuery, index: c_uint); pub fn gst_query_remove_nth_allocation_param(query: *mut GstQuery, index: c_uint); pub fn gst_query_remove_nth_allocation_pool(query: *mut GstQuery, index: c_uint); pub fn gst_query_set_accept_caps_result(query: *mut GstQuery, result: gboolean); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_query_set_bitrate(query: *mut GstQuery, nominal_bitrate: c_uint); pub fn gst_query_set_buffering_percent(query: *mut GstQuery, busy: gboolean, percent: c_int); pub fn gst_query_set_buffering_range( query: *mut GstQuery, format: GstFormat, start: i64, stop: i64, estimated_total: i64, ); pub fn gst_query_set_buffering_stats( query: *mut GstQuery, mode: GstBufferingMode, avg_in: c_int, avg_out: c_int, buffering_left: i64, ); pub fn gst_query_set_caps_result(query: *mut GstQuery, caps: *mut GstCaps); pub fn gst_query_set_context(query: *mut GstQuery, context: *mut GstContext); pub fn gst_query_set_convert( query: *mut GstQuery, src_format: GstFormat, src_value: i64, dest_format: GstFormat, dest_value: i64, ); pub fn gst_query_set_duration(query: *mut GstQuery, format: GstFormat, duration: i64); pub fn gst_query_set_formats(query: *mut GstQuery, n_formats: c_int, ...); pub fn gst_query_set_formatsv( query: *mut GstQuery, n_formats: c_int, formats: *const GstFormat, ); pub fn gst_query_set_latency( query: *mut GstQuery, live: gboolean, min_latency: GstClockTime, max_latency: GstClockTime, ); pub fn gst_query_set_nth_allocation_param( query: *mut GstQuery, index: c_uint, allocator: *mut GstAllocator, params: *const GstAllocationParams, ); pub fn gst_query_set_nth_allocation_pool( query: *mut GstQuery, index: c_uint, pool: *mut GstBufferPool, size: c_uint, min_buffers: c_uint, max_buffers: c_uint, ); pub fn gst_query_set_position(query: *mut GstQuery, format: GstFormat, cur: i64); pub fn gst_query_set_scheduling( query: *mut GstQuery, flags: GstSchedulingFlags, minsize: c_int, maxsize: c_int, align: c_int, ); pub fn gst_query_set_seeking( query: *mut GstQuery, format: GstFormat, seekable: gboolean, segment_start: i64, segment_end: i64, ); pub fn gst_query_set_segment( query: *mut GstQuery, rate: c_double, format: GstFormat, start_value: i64, stop_value: i64, ); #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_query_set_selectable(query: *mut GstQuery, selectable: gboolean); pub fn gst_query_set_uri(query: *mut GstQuery, uri: *const c_char); pub fn gst_query_set_uri_redirection(query: *mut GstQuery, uri: *const c_char); pub fn gst_query_set_uri_redirection_permanent(query: *mut GstQuery, permanent: gboolean); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_query_unref(q: *mut GstQuery); pub fn gst_query_writable_structure(query: *mut GstQuery) -> *mut GstStructure; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_query_replace(old_query: *mut *mut GstQuery, new_query: *mut GstQuery) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_query_take(old_query: *mut *mut GstQuery, new_query: *mut GstQuery) -> gboolean; //========================================================================= // GstReferenceTimestampMeta //========================================================================= pub fn gst_reference_timestamp_meta_get_info() -> *const GstMetaInfo; //========================================================================= // GstSample //========================================================================= pub fn gst_sample_get_type() -> GType; pub fn gst_sample_new( buffer: *mut GstBuffer, caps: *mut GstCaps, segment: *const GstSegment, info: *mut GstStructure, ) -> *mut GstSample; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_sample_copy(sample: *const GstSample) -> *mut GstSample; pub fn gst_sample_get_buffer(sample: *mut GstSample) -> *mut GstBuffer; pub fn gst_sample_get_buffer_list(sample: *mut GstSample) -> *mut GstBufferList; pub fn gst_sample_get_caps(sample: *mut GstSample) -> *mut GstCaps; pub fn gst_sample_get_info(sample: *mut GstSample) -> *const GstStructure; pub fn gst_sample_get_segment(sample: *mut GstSample) -> *mut GstSegment; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_sample_ref(sample: *mut GstSample) -> *mut GstSample; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_sample_set_buffer(sample: *mut GstSample, buffer: *mut GstBuffer); pub fn gst_sample_set_buffer_list(sample: *mut GstSample, buffer_list: *mut GstBufferList); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_sample_set_caps(sample: *mut GstSample, caps: *mut GstCaps); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_sample_set_info(sample: *mut GstSample, info: *mut GstStructure) -> gboolean; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_sample_set_segment(sample: *mut GstSample, segment: *const GstSegment); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_sample_unref(sample: *mut GstSample); //========================================================================= // GstSegment //========================================================================= pub fn gst_segment_get_type() -> GType; pub fn gst_segment_new() -> *mut GstSegment; pub fn gst_segment_clip( segment: *const GstSegment, format: GstFormat, start: u64, stop: u64, clip_start: *mut u64, clip_stop: *mut u64, ) -> gboolean; pub fn gst_segment_copy(segment: *const GstSegment) -> *mut GstSegment; pub fn gst_segment_copy_into(src: *const GstSegment, dest: *mut GstSegment); pub fn gst_segment_do_seek( segment: *mut GstSegment, rate: c_double, format: GstFormat, flags: GstSeekFlags, start_type: GstSeekType, start: u64, stop_type: GstSeekType, stop: u64, update: *mut gboolean, ) -> gboolean; pub fn gst_segment_free(segment: *mut GstSegment); pub fn gst_segment_init(segment: *mut GstSegment, format: GstFormat); pub fn gst_segment_is_equal(s0: *const GstSegment, s1: *const GstSegment) -> gboolean; pub fn gst_segment_offset_running_time( segment: *mut GstSegment, format: GstFormat, offset: i64, ) -> gboolean; pub fn gst_segment_position_from_running_time( segment: *const GstSegment, format: GstFormat, running_time: u64, ) -> u64; pub fn gst_segment_position_from_running_time_full( segment: *const GstSegment, format: GstFormat, running_time: u64, position: *mut u64, ) -> c_int; pub fn gst_segment_position_from_stream_time( segment: *const GstSegment, format: GstFormat, stream_time: u64, ) -> u64; pub fn gst_segment_position_from_stream_time_full( segment: *const GstSegment, format: GstFormat, stream_time: u64, position: *mut u64, ) -> c_int; pub fn gst_segment_set_running_time( segment: *mut GstSegment, format: GstFormat, running_time: u64, ) -> gboolean; pub fn gst_segment_to_position( segment: *const GstSegment, format: GstFormat, running_time: u64, ) -> u64; pub fn gst_segment_to_running_time( segment: *const GstSegment, format: GstFormat, position: u64, ) -> u64; pub fn gst_segment_to_running_time_full( segment: *const GstSegment, format: GstFormat, position: u64, running_time: *mut u64, ) -> c_int; pub fn gst_segment_to_stream_time( segment: *const GstSegment, format: GstFormat, position: u64, ) -> u64; pub fn gst_segment_to_stream_time_full( segment: *const GstSegment, format: GstFormat, position: u64, stream_time: *mut u64, ) -> c_int; //========================================================================= // GstStaticCaps //========================================================================= pub fn gst_static_caps_cleanup(static_caps: *mut GstStaticCaps); pub fn gst_static_caps_get(static_caps: *mut GstStaticCaps) -> *mut GstCaps; //========================================================================= // GstStaticPadTemplate //========================================================================= pub fn gst_static_pad_template_get( pad_template: *mut GstStaticPadTemplate, ) -> *mut GstPadTemplate; pub fn gst_static_pad_template_get_caps(templ: *mut GstStaticPadTemplate) -> *mut GstCaps; //========================================================================= // GstStructure //========================================================================= pub fn gst_structure_get_type() -> GType; pub fn gst_structure_from_string( string: *const c_char, end: *mut *mut c_char, ) -> *mut GstStructure; pub fn gst_structure_new( name: *const c_char, firstfield: *const c_char, ... ) -> *mut GstStructure; pub fn gst_structure_new_empty(name: *const c_char) -> *mut GstStructure; pub fn gst_structure_new_from_string(string: *const c_char) -> *mut GstStructure; pub fn gst_structure_new_id( name_quark: glib::GQuark, field_quark: glib::GQuark, ... ) -> *mut GstStructure; pub fn gst_structure_new_id_empty(quark: glib::GQuark) -> *mut GstStructure; //pub fn gst_structure_new_valist(name: *const c_char, firstfield: *const c_char, varargs: /*Unimplemented*/va_list) -> *mut GstStructure; pub fn gst_structure_can_intersect( struct1: *const GstStructure, struct2: *const GstStructure, ) -> gboolean; pub fn gst_structure_copy(structure: *const GstStructure) -> *mut GstStructure; pub fn gst_structure_filter_and_map_in_place( structure: *mut GstStructure, func: GstStructureFilterMapFunc, user_data: gpointer, ); pub fn gst_structure_fixate(structure: *mut GstStructure); pub fn gst_structure_fixate_field( structure: *mut GstStructure, field_name: *const c_char, ) -> gboolean; pub fn gst_structure_fixate_field_boolean( structure: *mut GstStructure, field_name: *const c_char, target: gboolean, ) -> gboolean; pub fn gst_structure_fixate_field_nearest_double( structure: *mut GstStructure, field_name: *const c_char, target: c_double, ) -> gboolean; pub fn gst_structure_fixate_field_nearest_fraction( structure: *mut GstStructure, field_name: *const c_char, target_numerator: c_int, target_denominator: c_int, ) -> gboolean; pub fn gst_structure_fixate_field_nearest_int( structure: *mut GstStructure, field_name: *const c_char, target: c_int, ) -> gboolean; pub fn gst_structure_fixate_field_string( structure: *mut GstStructure, field_name: *const c_char, target: *const c_char, ) -> gboolean; pub fn gst_structure_foreach( structure: *const GstStructure, func: GstStructureForeachFunc, user_data: gpointer, ) -> gboolean; pub fn gst_structure_free(structure: *mut GstStructure); pub fn gst_structure_get( structure: *const GstStructure, first_fieldname: *const c_char, ... ) -> gboolean; pub fn gst_structure_get_array( structure: *mut GstStructure, fieldname: *const c_char, array: *mut *mut gobject::GValueArray, ) -> gboolean; pub fn gst_structure_get_boolean( structure: *const GstStructure, fieldname: *const c_char, value: *mut gboolean, ) -> gboolean; pub fn gst_structure_get_clock_time( structure: *const GstStructure, fieldname: *const c_char, value: *mut GstClockTime, ) -> gboolean; pub fn gst_structure_get_date( structure: *const GstStructure, fieldname: *const c_char, value: *mut *mut glib::GDate, ) -> gboolean; pub fn gst_structure_get_date_time( structure: *const GstStructure, fieldname: *const c_char, value: *mut *mut GstDateTime, ) -> gboolean; pub fn gst_structure_get_double( structure: *const GstStructure, fieldname: *const c_char, value: *mut c_double, ) -> gboolean; pub fn gst_structure_get_enum( structure: *const GstStructure, fieldname: *const c_char, enumtype: GType, value: *mut c_int, ) -> gboolean; pub fn gst_structure_get_field_type( structure: *const GstStructure, fieldname: *const c_char, ) -> GType; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_structure_get_flags( structure: *const GstStructure, fieldname: *const c_char, flags_type: GType, value: *mut c_uint, ) -> gboolean; pub fn gst_structure_get_flagset( structure: *const GstStructure, fieldname: *const c_char, value_flags: *mut c_uint, value_mask: *mut c_uint, ) -> gboolean; pub fn gst_structure_get_fraction( structure: *const GstStructure, fieldname: *const c_char, value_numerator: *mut c_int, value_denominator: *mut c_int, ) -> gboolean; pub fn gst_structure_get_int( structure: *const GstStructure, fieldname: *const c_char, value: *mut c_int, ) -> gboolean; pub fn gst_structure_get_int64( structure: *const GstStructure, fieldname: *const c_char, value: *mut i64, ) -> gboolean; pub fn gst_structure_get_list( structure: *mut GstStructure, fieldname: *const c_char, array: *mut *mut gobject::GValueArray, ) -> gboolean; pub fn gst_structure_get_name(structure: *const GstStructure) -> *const c_char; pub fn gst_structure_get_name_id(structure: *const GstStructure) -> glib::GQuark; pub fn gst_structure_get_string( structure: *const GstStructure, fieldname: *const c_char, ) -> *const c_char; pub fn gst_structure_get_uint( structure: *const GstStructure, fieldname: *const c_char, value: *mut c_uint, ) -> gboolean; pub fn gst_structure_get_uint64( structure: *const GstStructure, fieldname: *const c_char, value: *mut u64, ) -> gboolean; //pub fn gst_structure_get_valist(structure: *const GstStructure, first_fieldname: *const c_char, args: /*Unimplemented*/va_list) -> gboolean; pub fn gst_structure_get_value( structure: *const GstStructure, fieldname: *const c_char, ) -> *const gobject::GValue; pub fn gst_structure_has_field( structure: *const GstStructure, fieldname: *const c_char, ) -> gboolean; pub fn gst_structure_has_field_typed( structure: *const GstStructure, fieldname: *const c_char, type_: GType, ) -> gboolean; pub fn gst_structure_has_name(structure: *const GstStructure, name: *const c_char) -> gboolean; pub fn gst_structure_id_get( structure: *const GstStructure, first_field_id: glib::GQuark, ... ) -> gboolean; //pub fn gst_structure_id_get_valist(structure: *const GstStructure, first_field_id: glib::GQuark, args: /*Unimplemented*/va_list) -> gboolean; pub fn gst_structure_id_get_value( structure: *const GstStructure, field: glib::GQuark, ) -> *const gobject::GValue; pub fn gst_structure_id_has_field( structure: *const GstStructure, field: glib::GQuark, ) -> gboolean; pub fn gst_structure_id_has_field_typed( structure: *const GstStructure, field: glib::GQuark, type_: GType, ) -> gboolean; pub fn gst_structure_id_set(structure: *mut GstStructure, fieldname: glib::GQuark, ...); //pub fn gst_structure_id_set_valist(structure: *mut GstStructure, fieldname: glib::GQuark, varargs: /*Unimplemented*/va_list); pub fn gst_structure_id_set_value( structure: *mut GstStructure, field: glib::GQuark, value: *const gobject::GValue, ); pub fn gst_structure_id_take_value( structure: *mut GstStructure, field: glib::GQuark, value: *mut gobject::GValue, ); pub fn gst_structure_intersect( struct1: *const GstStructure, struct2: *const GstStructure, ) -> *mut GstStructure; pub fn gst_structure_is_equal( structure1: *const GstStructure, structure2: *const GstStructure, ) -> gboolean; pub fn gst_structure_is_subset( subset: *const GstStructure, superset: *const GstStructure, ) -> gboolean; pub fn gst_structure_map_in_place( structure: *mut GstStructure, func: GstStructureMapFunc, user_data: gpointer, ) -> gboolean; pub fn gst_structure_n_fields(structure: *const GstStructure) -> c_int; pub fn gst_structure_nth_field_name( structure: *const GstStructure, index: c_uint, ) -> *const c_char; pub fn gst_structure_remove_all_fields(structure: *mut GstStructure); pub fn gst_structure_remove_field(structure: *mut GstStructure, fieldname: *const c_char); pub fn gst_structure_remove_fields(structure: *mut GstStructure, fieldname: *const c_char, ...); //pub fn gst_structure_remove_fields_valist(structure: *mut GstStructure, fieldname: *const c_char, varargs: /*Unimplemented*/va_list); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_structure_serialize( structure: *const GstStructure, flags: GstSerializeFlags, ) -> *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_structure_serialize_full( structure: *const GstStructure, flags: GstSerializeFlags, ) -> *mut c_char; pub fn gst_structure_set(structure: *mut GstStructure, fieldname: *const c_char, ...); pub fn gst_structure_set_array( structure: *mut GstStructure, fieldname: *const c_char, array: *const gobject::GValueArray, ); pub fn gst_structure_set_list( structure: *mut GstStructure, fieldname: *const c_char, array: *const gobject::GValueArray, ); pub fn gst_structure_set_name(structure: *mut GstStructure, name: *const c_char); pub fn gst_structure_set_parent_refcount( structure: *mut GstStructure, refcount: *mut c_int, ) -> gboolean; //pub fn gst_structure_set_valist(structure: *mut GstStructure, fieldname: *const c_char, varargs: /*Unimplemented*/va_list); pub fn gst_structure_set_value( structure: *mut GstStructure, fieldname: *const c_char, value: *const gobject::GValue, ); pub fn gst_structure_take_value( structure: *mut GstStructure, fieldname: *const c_char, value: *mut gobject::GValue, ); pub fn gst_structure_to_string(structure: *const GstStructure) -> *mut c_char; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_structure_take( oldstr_ptr: *mut *mut GstStructure, newstr: *mut GstStructure, ) -> gboolean; //========================================================================= // GstTagList //========================================================================= pub fn gst_tag_list_get_type() -> GType; pub fn gst_tag_list_new(tag: *const c_char, ...) -> *mut GstTagList; pub fn gst_tag_list_new_empty() -> *mut GstTagList; pub fn gst_tag_list_new_from_string(str: *const c_char) -> *mut GstTagList; //pub fn gst_tag_list_new_valist(var_args: /*Unimplemented*/va_list) -> *mut GstTagList; pub fn gst_tag_list_add(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, ...); //pub fn gst_tag_list_add_valist(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list); //pub fn gst_tag_list_add_valist_values(list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list); pub fn gst_tag_list_add_value( list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, value: *const gobject::GValue, ); pub fn gst_tag_list_add_values( list: *mut GstTagList, mode: GstTagMergeMode, tag: *const c_char, ... ); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_tag_list_copy(taglist: *const GstTagList) -> *mut GstTagList; pub fn gst_tag_list_foreach( list: *const GstTagList, func: GstTagForeachFunc, user_data: gpointer, ); pub fn gst_tag_list_get_boolean( list: *const GstTagList, tag: *const c_char, value: *mut gboolean, ) -> gboolean; pub fn gst_tag_list_get_boolean_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut gboolean, ) -> gboolean; pub fn gst_tag_list_get_date( list: *const GstTagList, tag: *const c_char, value: *mut *mut glib::GDate, ) -> gboolean; pub fn gst_tag_list_get_date_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut *mut glib::GDate, ) -> gboolean; pub fn gst_tag_list_get_date_time( list: *const GstTagList, tag: *const c_char, value: *mut *mut GstDateTime, ) -> gboolean; pub fn gst_tag_list_get_date_time_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut *mut GstDateTime, ) -> gboolean; pub fn gst_tag_list_get_double( list: *const GstTagList, tag: *const c_char, value: *mut c_double, ) -> gboolean; pub fn gst_tag_list_get_double_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut c_double, ) -> gboolean; pub fn gst_tag_list_get_float( list: *const GstTagList, tag: *const c_char, value: *mut c_float, ) -> gboolean; pub fn gst_tag_list_get_float_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut c_float, ) -> gboolean; pub fn gst_tag_list_get_int( list: *const GstTagList, tag: *const c_char, value: *mut c_int, ) -> gboolean; pub fn gst_tag_list_get_int64( list: *const GstTagList, tag: *const c_char, value: *mut i64, ) -> gboolean; pub fn gst_tag_list_get_int64_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut i64, ) -> gboolean; pub fn gst_tag_list_get_int_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut c_int, ) -> gboolean; pub fn gst_tag_list_get_pointer( list: *const GstTagList, tag: *const c_char, value: *mut gpointer, ) -> gboolean; pub fn gst_tag_list_get_pointer_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut gpointer, ) -> gboolean; pub fn gst_tag_list_get_sample( list: *const GstTagList, tag: *const c_char, sample: *mut *mut GstSample, ) -> gboolean; pub fn gst_tag_list_get_sample_index( list: *const GstTagList, tag: *const c_char, index: c_uint, sample: *mut *mut GstSample, ) -> gboolean; pub fn gst_tag_list_get_scope(list: *const GstTagList) -> GstTagScope; pub fn gst_tag_list_get_string( list: *const GstTagList, tag: *const c_char, value: *mut *mut c_char, ) -> gboolean; pub fn gst_tag_list_get_string_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut *mut c_char, ) -> gboolean; pub fn gst_tag_list_get_tag_size(list: *const GstTagList, tag: *const c_char) -> c_uint; pub fn gst_tag_list_get_uint( list: *const GstTagList, tag: *const c_char, value: *mut c_uint, ) -> gboolean; pub fn gst_tag_list_get_uint64( list: *const GstTagList, tag: *const c_char, value: *mut u64, ) -> gboolean; pub fn gst_tag_list_get_uint64_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut u64, ) -> gboolean; pub fn gst_tag_list_get_uint_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut c_uint, ) -> gboolean; pub fn gst_tag_list_get_value_index( list: *const GstTagList, tag: *const c_char, index: c_uint, ) -> *const gobject::GValue; pub fn gst_tag_list_insert( into: *mut GstTagList, from: *const GstTagList, mode: GstTagMergeMode, ); pub fn gst_tag_list_is_empty(list: *const GstTagList) -> gboolean; pub fn gst_tag_list_is_equal(list1: *const GstTagList, list2: *const GstTagList) -> gboolean; pub fn gst_tag_list_merge( list1: *const GstTagList, list2: *const GstTagList, mode: GstTagMergeMode, ) -> *mut GstTagList; pub fn gst_tag_list_n_tags(list: *const GstTagList) -> c_int; pub fn gst_tag_list_nth_tag_name(list: *const GstTagList, index: c_uint) -> *const c_char; pub fn gst_tag_list_peek_string_index( list: *const GstTagList, tag: *const c_char, index: c_uint, value: *mut *const c_char, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_tag_list_ref(taglist: *mut GstTagList) -> *mut GstTagList; pub fn gst_tag_list_remove_tag(list: *mut GstTagList, tag: *const c_char); pub fn gst_tag_list_set_scope(list: *mut GstTagList, scope: GstTagScope); pub fn gst_tag_list_to_string(list: *const GstTagList) -> *mut c_char; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_tag_list_unref(taglist: *mut GstTagList); pub fn gst_tag_list_copy_value( dest: *mut gobject::GValue, list: *const GstTagList, tag: *const c_char, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_tag_list_replace( old_taglist: *mut *mut GstTagList, new_taglist: *mut GstTagList, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_tag_list_take( old_taglist: *mut *mut GstTagList, new_taglist: *mut GstTagList, ) -> gboolean; //========================================================================= // GstToc //========================================================================= pub fn gst_toc_get_type() -> GType; pub fn gst_toc_new(scope: GstTocScope) -> *mut GstToc; pub fn gst_toc_append_entry(toc: *mut GstToc, entry: *mut GstTocEntry); pub fn gst_toc_dump(toc: *mut GstToc); pub fn gst_toc_find_entry(toc: *const GstToc, uid: *const c_char) -> *mut GstTocEntry; pub fn gst_toc_get_entries(toc: *const GstToc) -> *mut glib::GList; pub fn gst_toc_get_scope(toc: *const GstToc) -> GstTocScope; pub fn gst_toc_get_tags(toc: *const GstToc) -> *mut GstTagList; pub fn gst_toc_merge_tags(toc: *mut GstToc, tags: *mut GstTagList, mode: GstTagMergeMode); pub fn gst_toc_set_tags(toc: *mut GstToc, tags: *mut GstTagList); //========================================================================= // GstTocEntry //========================================================================= pub fn gst_toc_entry_get_type() -> GType; pub fn gst_toc_entry_new(type_: GstTocEntryType, uid: *const c_char) -> *mut GstTocEntry; pub fn gst_toc_entry_append_sub_entry(entry: *mut GstTocEntry, subentry: *mut GstTocEntry); pub fn gst_toc_entry_get_entry_type(entry: *const GstTocEntry) -> GstTocEntryType; pub fn gst_toc_entry_get_loop( entry: *const GstTocEntry, loop_type: *mut GstTocLoopType, repeat_count: *mut c_int, ) -> gboolean; pub fn gst_toc_entry_get_parent(entry: *mut GstTocEntry) -> *mut GstTocEntry; pub fn gst_toc_entry_get_start_stop_times( entry: *const GstTocEntry, start: *mut i64, stop: *mut i64, ) -> gboolean; pub fn gst_toc_entry_get_sub_entries(entry: *const GstTocEntry) -> *mut glib::GList; pub fn gst_toc_entry_get_tags(entry: *const GstTocEntry) -> *mut GstTagList; pub fn gst_toc_entry_get_toc(entry: *mut GstTocEntry) -> *mut GstToc; pub fn gst_toc_entry_get_uid(entry: *const GstTocEntry) -> *const c_char; pub fn gst_toc_entry_is_alternative(entry: *const GstTocEntry) -> gboolean; pub fn gst_toc_entry_is_sequence(entry: *const GstTocEntry) -> gboolean; pub fn gst_toc_entry_merge_tags( entry: *mut GstTocEntry, tags: *mut GstTagList, mode: GstTagMergeMode, ); pub fn gst_toc_entry_set_loop( entry: *mut GstTocEntry, loop_type: GstTocLoopType, repeat_count: c_int, ); pub fn gst_toc_entry_set_start_stop_times(entry: *mut GstTocEntry, start: i64, stop: i64); pub fn gst_toc_entry_set_tags(entry: *mut GstTocEntry, tags: *mut GstTagList); //========================================================================= // GstTypeFind //========================================================================= pub fn gst_type_find_get_length(find: *mut GstTypeFind) -> u64; pub fn gst_type_find_peek(find: *mut GstTypeFind, offset: i64, size: c_uint) -> *const u8; pub fn gst_type_find_suggest(find: *mut GstTypeFind, probability: c_uint, caps: *mut GstCaps); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_type_find_suggest_empty_simple( find: *mut GstTypeFind, probability: c_uint, media_type: *const c_char, ); pub fn gst_type_find_suggest_simple( find: *mut GstTypeFind, probability: c_uint, media_type: *const c_char, fieldname: *const c_char, ... ); pub fn gst_type_find_register( plugin: *mut GstPlugin, name: *const c_char, rank: c_uint, func: GstTypeFindFunction, extensions: *const c_char, possible_caps: *mut GstCaps, data: gpointer, data_notify: glib::GDestroyNotify, ) -> gboolean; //========================================================================= // GstUri //========================================================================= pub fn gst_uri_get_type() -> GType; pub fn gst_uri_new( scheme: *const c_char, userinfo: *const c_char, host: *const c_char, port: c_uint, path: *const c_char, query: *const c_char, fragment: *const c_char, ) -> *mut GstUri; pub fn gst_uri_append_path(uri: *mut GstUri, relative_path: *const c_char) -> gboolean; pub fn gst_uri_append_path_segment(uri: *mut GstUri, path_segment: *const c_char) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_uri_copy(uri: *const GstUri) -> *mut GstUri; pub fn gst_uri_equal(first: *const GstUri, second: *const GstUri) -> gboolean; pub fn gst_uri_from_string_with_base(base: *mut GstUri, uri: *const c_char) -> *mut GstUri; pub fn gst_uri_get_fragment(uri: *const GstUri) -> *const c_char; pub fn gst_uri_get_host(uri: *const GstUri) -> *const c_char; pub fn gst_uri_get_media_fragment_table(uri: *const GstUri) -> *mut glib::GHashTable; pub fn gst_uri_get_path(uri: *const GstUri) -> *mut c_char; pub fn gst_uri_get_path_segments(uri: *const GstUri) -> *mut glib::GList; pub fn gst_uri_get_path_string(uri: *const GstUri) -> *mut c_char; pub fn gst_uri_get_port(uri: *const GstUri) -> c_uint; pub fn gst_uri_get_query_keys(uri: *const GstUri) -> *mut glib::GList; pub fn gst_uri_get_query_string(uri: *const GstUri) -> *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_uri_get_query_string_ordered( uri: *const GstUri, keys: *const glib::GList, ) -> *mut c_char; pub fn gst_uri_get_query_table(uri: *const GstUri) -> *mut glib::GHashTable; pub fn gst_uri_get_query_value(uri: *const GstUri, query_key: *const c_char) -> *const c_char; pub fn gst_uri_get_scheme(uri: *const GstUri) -> *const c_char; pub fn gst_uri_get_userinfo(uri: *const GstUri) -> *const c_char; pub fn gst_uri_is_normalized(uri: *const GstUri) -> gboolean; pub fn gst_uri_is_writable(uri: *const GstUri) -> gboolean; pub fn gst_uri_join(base_uri: *mut GstUri, ref_uri: *mut GstUri) -> *mut GstUri; pub fn gst_uri_make_writable(uri: *mut GstUri) -> *mut GstUri; pub fn gst_uri_new_with_base( base: *mut GstUri, scheme: *const c_char, userinfo: *const c_char, host: *const c_char, port: c_uint, path: *const c_char, query: *const c_char, fragment: *const c_char, ) -> *mut GstUri; pub fn gst_uri_normalize(uri: *mut GstUri) -> gboolean; pub fn gst_uri_query_has_key(uri: *const GstUri, query_key: *const c_char) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_uri_ref(uri: *mut GstUri) -> *mut GstUri; pub fn gst_uri_remove_query_key(uri: *mut GstUri, query_key: *const c_char) -> gboolean; pub fn gst_uri_set_fragment(uri: *mut GstUri, fragment: *const c_char) -> gboolean; pub fn gst_uri_set_host(uri: *mut GstUri, host: *const c_char) -> gboolean; pub fn gst_uri_set_path(uri: *mut GstUri, path: *const c_char) -> gboolean; pub fn gst_uri_set_path_segments(uri: *mut GstUri, path_segments: *mut glib::GList) -> gboolean; pub fn gst_uri_set_path_string(uri: *mut GstUri, path: *const c_char) -> gboolean; pub fn gst_uri_set_port(uri: *mut GstUri, port: c_uint) -> gboolean; pub fn gst_uri_set_query_string(uri: *mut GstUri, query: *const c_char) -> gboolean; pub fn gst_uri_set_query_table( uri: *mut GstUri, query_table: *mut glib::GHashTable, ) -> gboolean; pub fn gst_uri_set_query_value( uri: *mut GstUri, query_key: *const c_char, query_value: *const c_char, ) -> gboolean; pub fn gst_uri_set_scheme(uri: *mut GstUri, scheme: *const c_char) -> gboolean; pub fn gst_uri_set_userinfo(uri: *mut GstUri, userinfo: *const c_char) -> gboolean; pub fn gst_uri_to_string(uri: *const GstUri) -> *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_uri_to_string_with_keys(uri: *const GstUri, keys: *const glib::GList) -> *mut c_char; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_uri_unref(uri: *mut GstUri); pub fn gst_uri_construct(protocol: *const c_char, location: *const c_char) -> *mut c_char; pub fn gst_uri_from_string(uri: *const c_char) -> *mut GstUri; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_uri_from_string_escaped(uri: *const c_char) -> *mut GstUri; pub fn gst_uri_get_location(uri: *const c_char) -> *mut c_char; pub fn gst_uri_get_protocol(uri: *const c_char) -> *mut c_char; pub fn gst_uri_has_protocol(uri: *const c_char, protocol: *const c_char) -> gboolean; pub fn gst_uri_is_valid(uri: *const c_char) -> gboolean; pub fn gst_uri_join_strings(base_uri: *const c_char, ref_uri: *const c_char) -> *mut c_char; pub fn gst_uri_protocol_is_supported(type_: GstURIType, protocol: *const c_char) -> gboolean; pub fn gst_uri_protocol_is_valid(protocol: *const c_char) -> gboolean; //========================================================================= // GstVecDeque //========================================================================= #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_clear(array: *mut GstVecDeque); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_drop_element(array: *mut GstVecDeque, idx: size_t) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_drop_struct( array: *mut GstVecDeque, idx: size_t, p_struct: gpointer, ) -> gboolean; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_find( array: *mut GstVecDeque, func: glib::GCompareFunc, data: gpointer, ) -> size_t; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_free(array: *mut GstVecDeque); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_get_length(array: *mut GstVecDeque) -> size_t; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_is_empty(array: *mut GstVecDeque) -> gboolean; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_head(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_head_struct(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_nth(array: *mut GstVecDeque, idx: size_t) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_nth_struct(array: *mut GstVecDeque, idx: size_t) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_tail(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_peek_tail_struct(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_pop_head(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_pop_head_struct(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_pop_tail(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_pop_tail_struct(array: *mut GstVecDeque) -> gpointer; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_push_sorted( array: *mut GstVecDeque, data: gpointer, func: glib::GCompareDataFunc, user_data: gpointer, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_push_sorted_struct( array: *mut GstVecDeque, p_struct: gpointer, func: glib::GCompareDataFunc, user_data: gpointer, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_push_tail(array: *mut GstVecDeque, data: gpointer); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_push_tail_struct(array: *mut GstVecDeque, p_struct: gpointer); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_set_clear_func(array: *mut GstVecDeque, clear_func: glib::GDestroyNotify); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_sort( array: *mut GstVecDeque, compare_func: glib::GCompareDataFunc, user_data: gpointer, ); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_new(initial_size: size_t) -> *mut GstVecDeque; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_vec_deque_new_for_struct( struct_size: size_t, initial_size: size_t, ) -> *mut GstVecDeque; //========================================================================= // GstAllocator //========================================================================= pub fn gst_allocator_get_type() -> GType; pub fn gst_allocator_find(name: *const c_char) -> *mut GstAllocator; pub fn gst_allocator_register(name: *const c_char, allocator: *mut GstAllocator); pub fn gst_allocator_alloc( allocator: *mut GstAllocator, size: size_t, params: *mut GstAllocationParams, ) -> *mut GstMemory; pub fn gst_allocator_free(allocator: *mut GstAllocator, memory: *mut GstMemory); pub fn gst_allocator_set_default(allocator: *mut GstAllocator); //========================================================================= // GstBin //========================================================================= pub fn gst_bin_get_type() -> GType; pub fn gst_bin_new(name: *const c_char) -> *mut GstElement; pub fn gst_bin_add(bin: *mut GstBin, element: *mut GstElement) -> gboolean; pub fn gst_bin_add_many(bin: *mut GstBin, element_1: *mut GstElement, ...); pub fn gst_bin_find_unlinked_pad(bin: *mut GstBin, direction: GstPadDirection) -> *mut GstPad; pub fn gst_bin_get_by_interface(bin: *mut GstBin, iface: GType) -> *mut GstElement; pub fn gst_bin_get_by_name(bin: *mut GstBin, name: *const c_char) -> *mut GstElement; pub fn gst_bin_get_by_name_recurse_up(bin: *mut GstBin, name: *const c_char) -> *mut GstElement; pub fn gst_bin_get_suppressed_flags(bin: *mut GstBin) -> GstElementFlags; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_bin_iterate_all_by_element_factory_name( bin: *mut GstBin, factory_name: *const c_char, ) -> *mut GstIterator; pub fn gst_bin_iterate_all_by_interface(bin: *mut GstBin, iface: GType) -> *mut GstIterator; pub fn gst_bin_iterate_elements(bin: *mut GstBin) -> *mut GstIterator; pub fn gst_bin_iterate_recurse(bin: *mut GstBin) -> *mut GstIterator; pub fn gst_bin_iterate_sinks(bin: *mut GstBin) -> *mut GstIterator; pub fn gst_bin_iterate_sorted(bin: *mut GstBin) -> *mut GstIterator; pub fn gst_bin_iterate_sources(bin: *mut GstBin) -> *mut GstIterator; pub fn gst_bin_recalculate_latency(bin: *mut GstBin) -> gboolean; pub fn gst_bin_remove(bin: *mut GstBin, element: *mut GstElement) -> gboolean; pub fn gst_bin_remove_many(bin: *mut GstBin, element_1: *mut GstElement, ...); pub fn gst_bin_set_suppressed_flags(bin: *mut GstBin, flags: GstElementFlags); pub fn gst_bin_sync_children_states(bin: *mut GstBin) -> gboolean; //========================================================================= // GstBitmask //========================================================================= pub fn gst_bitmask_get_type() -> GType; //========================================================================= // GstBufferPool //========================================================================= pub fn gst_buffer_pool_get_type() -> GType; pub fn gst_buffer_pool_new() -> *mut GstBufferPool; pub fn gst_buffer_pool_config_add_option(config: *mut GstStructure, option: *const c_char); pub fn gst_buffer_pool_config_get_allocator( config: *mut GstStructure, allocator: *mut *mut GstAllocator, params: *mut GstAllocationParams, ) -> gboolean; pub fn gst_buffer_pool_config_get_option( config: *mut GstStructure, index: c_uint, ) -> *const c_char; pub fn gst_buffer_pool_config_get_params( config: *mut GstStructure, caps: *mut *mut GstCaps, size: *mut c_uint, min_buffers: *mut c_uint, max_buffers: *mut c_uint, ) -> gboolean; pub fn gst_buffer_pool_config_has_option( config: *mut GstStructure, option: *const c_char, ) -> gboolean; pub fn gst_buffer_pool_config_n_options(config: *mut GstStructure) -> c_uint; pub fn gst_buffer_pool_config_set_allocator( config: *mut GstStructure, allocator: *mut GstAllocator, params: *const GstAllocationParams, ); pub fn gst_buffer_pool_config_set_params( config: *mut GstStructure, caps: *mut GstCaps, size: c_uint, min_buffers: c_uint, max_buffers: c_uint, ); pub fn gst_buffer_pool_config_validate_params( config: *mut GstStructure, caps: *mut GstCaps, size: c_uint, min_buffers: c_uint, max_buffers: c_uint, ) -> gboolean; pub fn gst_buffer_pool_acquire_buffer( pool: *mut GstBufferPool, buffer: *mut *mut GstBuffer, params: *mut GstBufferPoolAcquireParams, ) -> GstFlowReturn; pub fn gst_buffer_pool_get_config(pool: *mut GstBufferPool) -> *mut GstStructure; pub fn gst_buffer_pool_get_options(pool: *mut GstBufferPool) -> *mut *const c_char; pub fn gst_buffer_pool_has_option(pool: *mut GstBufferPool, option: *const c_char) -> gboolean; pub fn gst_buffer_pool_is_active(pool: *mut GstBufferPool) -> gboolean; pub fn gst_buffer_pool_release_buffer(pool: *mut GstBufferPool, buffer: *mut GstBuffer); pub fn gst_buffer_pool_set_active(pool: *mut GstBufferPool, active: gboolean) -> gboolean; pub fn gst_buffer_pool_set_config( pool: *mut GstBufferPool, config: *mut GstStructure, ) -> gboolean; pub fn gst_buffer_pool_set_flushing(pool: *mut GstBufferPool, flushing: gboolean); //========================================================================= // GstBus //========================================================================= pub fn gst_bus_get_type() -> GType; pub fn gst_bus_new() -> *mut GstBus; pub fn gst_bus_add_signal_watch(bus: *mut GstBus); pub fn gst_bus_add_signal_watch_full(bus: *mut GstBus, priority: c_int); pub fn gst_bus_add_watch(bus: *mut GstBus, func: GstBusFunc, user_data: gpointer) -> c_uint; pub fn gst_bus_add_watch_full( bus: *mut GstBus, priority: c_int, func: GstBusFunc, user_data: gpointer, notify: glib::GDestroyNotify, ) -> c_uint; pub fn gst_bus_async_signal_func( bus: *mut GstBus, message: *mut GstMessage, data: gpointer, ) -> gboolean; pub fn gst_bus_create_watch(bus: *mut GstBus) -> *mut glib::GSource; pub fn gst_bus_disable_sync_message_emission(bus: *mut GstBus); pub fn gst_bus_enable_sync_message_emission(bus: *mut GstBus); pub fn gst_bus_get_pollfd(bus: *mut GstBus, fd: *mut glib::GPollFD); pub fn gst_bus_have_pending(bus: *mut GstBus) -> gboolean; pub fn gst_bus_peek(bus: *mut GstBus) -> *mut GstMessage; pub fn gst_bus_poll( bus: *mut GstBus, events: GstMessageType, timeout: GstClockTime, ) -> *mut GstMessage; pub fn gst_bus_pop(bus: *mut GstBus) -> *mut GstMessage; pub fn gst_bus_pop_filtered(bus: *mut GstBus, types: GstMessageType) -> *mut GstMessage; pub fn gst_bus_post(bus: *mut GstBus, message: *mut GstMessage) -> gboolean; pub fn gst_bus_remove_signal_watch(bus: *mut GstBus); pub fn gst_bus_remove_watch(bus: *mut GstBus) -> gboolean; pub fn gst_bus_set_flushing(bus: *mut GstBus, flushing: gboolean); pub fn gst_bus_set_sync_handler( bus: *mut GstBus, func: GstBusSyncHandler, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_bus_sync_signal_handler( bus: *mut GstBus, message: *mut GstMessage, data: gpointer, ) -> GstBusSyncReply; pub fn gst_bus_timed_pop(bus: *mut GstBus, timeout: GstClockTime) -> *mut GstMessage; pub fn gst_bus_timed_pop_filtered( bus: *mut GstBus, timeout: GstClockTime, types: GstMessageType, ) -> *mut GstMessage; //========================================================================= // GstClock //========================================================================= pub fn gst_clock_get_type() -> GType; pub fn gst_clock_id_compare_func(id1: gconstpointer, id2: gconstpointer) -> c_int; #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_clock_id_get_clock(id: GstClockID) -> *mut GstClock; pub fn gst_clock_id_get_time(id: GstClockID) -> GstClockTime; pub fn gst_clock_id_ref(id: GstClockID) -> GstClockID; pub fn gst_clock_id_unref(id: GstClockID); pub fn gst_clock_id_unschedule(id: GstClockID); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_clock_id_uses_clock(id: GstClockID, clock: *mut GstClock) -> gboolean; pub fn gst_clock_id_wait(id: GstClockID, jitter: *mut GstClockTimeDiff) -> GstClockReturn; pub fn gst_clock_id_wait_async( id: GstClockID, func: GstClockCallback, user_data: gpointer, destroy_data: glib::GDestroyNotify, ) -> GstClockReturn; pub fn gst_clock_add_observation( clock: *mut GstClock, slave: GstClockTime, master: GstClockTime, r_squared: *mut c_double, ) -> gboolean; pub fn gst_clock_add_observation_unapplied( clock: *mut GstClock, slave: GstClockTime, master: GstClockTime, r_squared: *mut c_double, internal: *mut GstClockTime, external: *mut GstClockTime, rate_num: *mut GstClockTime, rate_denom: *mut GstClockTime, ) -> gboolean; pub fn gst_clock_adjust_unlocked(clock: *mut GstClock, internal: GstClockTime) -> GstClockTime; pub fn gst_clock_adjust_with_calibration( clock: *mut GstClock, internal_target: GstClockTime, cinternal: GstClockTime, cexternal: GstClockTime, cnum: GstClockTime, cdenom: GstClockTime, ) -> GstClockTime; pub fn gst_clock_get_calibration( clock: *mut GstClock, internal: *mut GstClockTime, external: *mut GstClockTime, rate_num: *mut GstClockTime, rate_denom: *mut GstClockTime, ); pub fn gst_clock_get_internal_time(clock: *mut GstClock) -> GstClockTime; pub fn gst_clock_get_master(clock: *mut GstClock) -> *mut GstClock; pub fn gst_clock_get_resolution(clock: *mut GstClock) -> GstClockTime; pub fn gst_clock_get_time(clock: *mut GstClock) -> GstClockTime; pub fn gst_clock_get_timeout(clock: *mut GstClock) -> GstClockTime; pub fn gst_clock_is_synced(clock: *mut GstClock) -> gboolean; pub fn gst_clock_new_periodic_id( clock: *mut GstClock, start_time: GstClockTime, interval: GstClockTime, ) -> GstClockID; pub fn gst_clock_new_single_shot_id(clock: *mut GstClock, time: GstClockTime) -> GstClockID; pub fn gst_clock_periodic_id_reinit( clock: *mut GstClock, id: GstClockID, start_time: GstClockTime, interval: GstClockTime, ) -> gboolean; pub fn gst_clock_set_calibration( clock: *mut GstClock, internal: GstClockTime, external: GstClockTime, rate_num: GstClockTime, rate_denom: GstClockTime, ); pub fn gst_clock_set_master(clock: *mut GstClock, master: *mut GstClock) -> gboolean; pub fn gst_clock_set_resolution(clock: *mut GstClock, resolution: GstClockTime) -> GstClockTime; pub fn gst_clock_set_synced(clock: *mut GstClock, synced: gboolean); pub fn gst_clock_set_timeout(clock: *mut GstClock, timeout: GstClockTime); pub fn gst_clock_single_shot_id_reinit( clock: *mut GstClock, id: GstClockID, time: GstClockTime, ) -> gboolean; pub fn gst_clock_unadjust_unlocked( clock: *mut GstClock, external: GstClockTime, ) -> GstClockTime; pub fn gst_clock_unadjust_with_calibration( clock: *mut GstClock, external_target: GstClockTime, cinternal: GstClockTime, cexternal: GstClockTime, cnum: GstClockTime, cdenom: GstClockTime, ) -> GstClockTime; pub fn gst_clock_wait_for_sync(clock: *mut GstClock, timeout: GstClockTime) -> gboolean; //========================================================================= // GstControlBinding //========================================================================= pub fn gst_control_binding_get_type() -> GType; pub fn gst_control_binding_get_g_value_array( binding: *mut GstControlBinding, timestamp: GstClockTime, interval: GstClockTime, n_values: c_uint, values: *mut gobject::GValue, ) -> gboolean; pub fn gst_control_binding_get_value( binding: *mut GstControlBinding, timestamp: GstClockTime, ) -> *mut gobject::GValue; pub fn gst_control_binding_get_value_array( binding: *mut GstControlBinding, timestamp: GstClockTime, interval: GstClockTime, n_values: c_uint, values: gpointer, ) -> gboolean; pub fn gst_control_binding_is_disabled(binding: *mut GstControlBinding) -> gboolean; pub fn gst_control_binding_set_disabled(binding: *mut GstControlBinding, disabled: gboolean); pub fn gst_control_binding_sync_values( binding: *mut GstControlBinding, object: *mut GstObject, timestamp: GstClockTime, last_sync: GstClockTime, ) -> gboolean; //========================================================================= // GstControlSource //========================================================================= pub fn gst_control_source_get_type() -> GType; pub fn gst_control_source_get_value( self_: *mut GstControlSource, timestamp: GstClockTime, value: *mut c_double, ) -> gboolean; pub fn gst_control_source_get_value_array( self_: *mut GstControlSource, timestamp: GstClockTime, interval: GstClockTime, n_values: c_uint, values: *mut c_double, ) -> gboolean; //========================================================================= // GstDevice //========================================================================= pub fn gst_device_get_type() -> GType; pub fn gst_device_create_element( device: *mut GstDevice, name: *const c_char, ) -> *mut GstElement; pub fn gst_device_get_caps(device: *mut GstDevice) -> *mut GstCaps; pub fn gst_device_get_device_class(device: *mut GstDevice) -> *mut c_char; pub fn gst_device_get_display_name(device: *mut GstDevice) -> *mut c_char; pub fn gst_device_get_properties(device: *mut GstDevice) -> *mut GstStructure; pub fn gst_device_has_classes(device: *mut GstDevice, classes: *const c_char) -> gboolean; pub fn gst_device_has_classesv(device: *mut GstDevice, classes: *mut *mut c_char) -> gboolean; pub fn gst_device_reconfigure_element( device: *mut GstDevice, element: *mut GstElement, ) -> gboolean; //========================================================================= // GstDeviceMonitor //========================================================================= pub fn gst_device_monitor_get_type() -> GType; pub fn gst_device_monitor_new() -> *mut GstDeviceMonitor; pub fn gst_device_monitor_add_filter( monitor: *mut GstDeviceMonitor, classes: *const c_char, caps: *mut GstCaps, ) -> c_uint; pub fn gst_device_monitor_get_bus(monitor: *mut GstDeviceMonitor) -> *mut GstBus; pub fn gst_device_monitor_get_devices(monitor: *mut GstDeviceMonitor) -> *mut glib::GList; pub fn gst_device_monitor_get_providers(monitor: *mut GstDeviceMonitor) -> *mut *mut c_char; pub fn gst_device_monitor_get_show_all_devices(monitor: *mut GstDeviceMonitor) -> gboolean; pub fn gst_device_monitor_remove_filter( monitor: *mut GstDeviceMonitor, filter_id: c_uint, ) -> gboolean; pub fn gst_device_monitor_set_show_all_devices( monitor: *mut GstDeviceMonitor, show_all: gboolean, ); pub fn gst_device_monitor_start(monitor: *mut GstDeviceMonitor) -> gboolean; pub fn gst_device_monitor_stop(monitor: *mut GstDeviceMonitor); //========================================================================= // GstDeviceProvider //========================================================================= pub fn gst_device_provider_get_type() -> GType; pub fn gst_device_provider_register( plugin: *mut GstPlugin, name: *const c_char, rank: c_uint, type_: GType, ) -> gboolean; pub fn gst_device_provider_can_monitor(provider: *mut GstDeviceProvider) -> gboolean; pub fn gst_device_provider_device_add(provider: *mut GstDeviceProvider, device: *mut GstDevice); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_device_provider_device_changed( provider: *mut GstDeviceProvider, device: *mut GstDevice, changed_device: *mut GstDevice, ); pub fn gst_device_provider_device_remove( provider: *mut GstDeviceProvider, device: *mut GstDevice, ); pub fn gst_device_provider_get_bus(provider: *mut GstDeviceProvider) -> *mut GstBus; pub fn gst_device_provider_get_devices(provider: *mut GstDeviceProvider) -> *mut glib::GList; pub fn gst_device_provider_get_factory( provider: *mut GstDeviceProvider, ) -> *mut GstDeviceProviderFactory; pub fn gst_device_provider_get_hidden_providers( provider: *mut GstDeviceProvider, ) -> *mut *mut c_char; pub fn gst_device_provider_get_metadata( provider: *mut GstDeviceProvider, key: *const c_char, ) -> *const c_char; pub fn gst_device_provider_hide_provider(provider: *mut GstDeviceProvider, name: *const c_char); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_device_provider_is_started(provider: *mut GstDeviceProvider) -> gboolean; pub fn gst_device_provider_start(provider: *mut GstDeviceProvider) -> gboolean; pub fn gst_device_provider_stop(provider: *mut GstDeviceProvider); pub fn gst_device_provider_unhide_provider( provider: *mut GstDeviceProvider, name: *const c_char, ); //========================================================================= // GstDeviceProviderFactory //========================================================================= pub fn gst_device_provider_factory_get_type() -> GType; pub fn gst_device_provider_factory_find(name: *const c_char) -> *mut GstDeviceProviderFactory; pub fn gst_device_provider_factory_get_by_name( factoryname: *const c_char, ) -> *mut GstDeviceProvider; pub fn gst_device_provider_factory_list_get_device_providers( minrank: GstRank, ) -> *mut glib::GList; pub fn gst_device_provider_factory_get( factory: *mut GstDeviceProviderFactory, ) -> *mut GstDeviceProvider; pub fn gst_device_provider_factory_get_device_provider_type( factory: *mut GstDeviceProviderFactory, ) -> GType; pub fn gst_device_provider_factory_get_metadata( factory: *mut GstDeviceProviderFactory, key: *const c_char, ) -> *const c_char; pub fn gst_device_provider_factory_get_metadata_keys( factory: *mut GstDeviceProviderFactory, ) -> *mut *mut c_char; pub fn gst_device_provider_factory_has_classes( factory: *mut GstDeviceProviderFactory, classes: *const c_char, ) -> gboolean; pub fn gst_device_provider_factory_has_classesv( factory: *mut GstDeviceProviderFactory, classes: *mut *mut c_char, ) -> gboolean; //========================================================================= // GstDoubleRange //========================================================================= pub fn gst_double_range_get_type() -> GType; //========================================================================= // GstDynamicTypeFactory //========================================================================= pub fn gst_dynamic_type_factory_get_type() -> GType; pub fn gst_dynamic_type_factory_load(factoryname: *const c_char) -> GType; //========================================================================= // GstElement //========================================================================= pub fn gst_element_get_type() -> GType; pub fn gst_element_make_from_uri( type_: GstURIType, uri: *const c_char, elementname: *const c_char, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_element_register( plugin: *mut GstPlugin, name: *const c_char, rank: c_uint, type_: GType, ) -> gboolean; pub fn gst_element_state_change_return_get_name( state_ret: GstStateChangeReturn, ) -> *const c_char; pub fn gst_element_state_get_name(state: GstState) -> *const c_char; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_type_set_skip_documentation(type_: GType); pub fn gst_element_abort_state(element: *mut GstElement); pub fn gst_element_add_pad(element: *mut GstElement, pad: *mut GstPad) -> gboolean; pub fn gst_element_add_property_deep_notify_watch( element: *mut GstElement, property_name: *const c_char, include_value: gboolean, ) -> c_ulong; pub fn gst_element_add_property_notify_watch( element: *mut GstElement, property_name: *const c_char, include_value: gboolean, ) -> c_ulong; pub fn gst_element_call_async( element: *mut GstElement, func: GstElementCallAsyncFunc, user_data: gpointer, destroy_notify: glib::GDestroyNotify, ); pub fn gst_element_change_state( element: *mut GstElement, transition: GstStateChange, ) -> GstStateChangeReturn; pub fn gst_element_continue_state( element: *mut GstElement, ret: GstStateChangeReturn, ) -> GstStateChangeReturn; pub fn gst_element_create_all_pads(element: *mut GstElement); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_element_decorate_stream_id( element: *mut GstElement, stream_id: *const c_char, ) -> *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_element_decorate_stream_id_printf( element: *mut GstElement, format: *const c_char, ... ) -> *mut c_char; //#[cfg(feature = "v1_24")] //#[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] //pub fn gst_element_decorate_stream_id_printf_valist(element: *mut GstElement, format: *const c_char, var_args: /*Unimplemented*/va_list) -> *mut c_char; pub fn gst_element_foreach_pad( element: *mut GstElement, func: GstElementForeachPadFunc, user_data: gpointer, ) -> gboolean; pub fn gst_element_foreach_sink_pad( element: *mut GstElement, func: GstElementForeachPadFunc, user_data: gpointer, ) -> gboolean; pub fn gst_element_foreach_src_pad( element: *mut GstElement, func: GstElementForeachPadFunc, user_data: gpointer, ) -> gboolean; pub fn gst_element_get_base_time(element: *mut GstElement) -> GstClockTime; pub fn gst_element_get_bus(element: *mut GstElement) -> *mut GstBus; pub fn gst_element_get_clock(element: *mut GstElement) -> *mut GstClock; pub fn gst_element_get_compatible_pad( element: *mut GstElement, pad: *mut GstPad, caps: *mut GstCaps, ) -> *mut GstPad; pub fn gst_element_get_compatible_pad_template( element: *mut GstElement, compattempl: *mut GstPadTemplate, ) -> *mut GstPadTemplate; pub fn gst_element_get_context( element: *mut GstElement, context_type: *const c_char, ) -> *mut GstContext; pub fn gst_element_get_context_unlocked( element: *mut GstElement, context_type: *const c_char, ) -> *mut GstContext; pub fn gst_element_get_contexts(element: *mut GstElement) -> *mut glib::GList; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_element_get_current_clock_time(element: *mut GstElement) -> GstClockTime; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_element_get_current_running_time(element: *mut GstElement) -> GstClockTime; pub fn gst_element_get_factory(element: *mut GstElement) -> *mut GstElementFactory; pub fn gst_element_get_metadata(element: *mut GstElement, key: *const c_char) -> *const c_char; pub fn gst_element_get_pad_template( element: *mut GstElement, name: *const c_char, ) -> *mut GstPadTemplate; pub fn gst_element_get_pad_template_list(element: *mut GstElement) -> *mut glib::GList; pub fn gst_element_get_request_pad( element: *mut GstElement, name: *const c_char, ) -> *mut GstPad; pub fn gst_element_get_start_time(element: *mut GstElement) -> GstClockTime; pub fn gst_element_get_state( element: *mut GstElement, state: *mut GstState, pending: *mut GstState, timeout: GstClockTime, ) -> GstStateChangeReturn; pub fn gst_element_get_static_pad(element: *mut GstElement, name: *const c_char) -> *mut GstPad; pub fn gst_element_is_locked_state(element: *mut GstElement) -> gboolean; pub fn gst_element_iterate_pads(element: *mut GstElement) -> *mut GstIterator; pub fn gst_element_iterate_sink_pads(element: *mut GstElement) -> *mut GstIterator; pub fn gst_element_iterate_src_pads(element: *mut GstElement) -> *mut GstIterator; pub fn gst_element_link(src: *mut GstElement, dest: *mut GstElement) -> gboolean; pub fn gst_element_link_filtered( src: *mut GstElement, dest: *mut GstElement, filter: *mut GstCaps, ) -> gboolean; pub fn gst_element_link_many( element_1: *mut GstElement, element_2: *mut GstElement, ... ) -> gboolean; pub fn gst_element_link_pads( src: *mut GstElement, srcpadname: *const c_char, dest: *mut GstElement, destpadname: *const c_char, ) -> gboolean; pub fn gst_element_link_pads_filtered( src: *mut GstElement, srcpadname: *const c_char, dest: *mut GstElement, destpadname: *const c_char, filter: *mut GstCaps, ) -> gboolean; pub fn gst_element_link_pads_full( src: *mut GstElement, srcpadname: *const c_char, dest: *mut GstElement, destpadname: *const c_char, flags: GstPadLinkCheck, ) -> gboolean; pub fn gst_element_lost_state(element: *mut GstElement); pub fn gst_element_message_full( element: *mut GstElement, type_: GstMessageType, domain: glib::GQuark, code: c_int, text: *mut c_char, debug: *mut c_char, file: *const c_char, function: *const c_char, line: c_int, ); pub fn gst_element_message_full_with_details( element: *mut GstElement, type_: GstMessageType, domain: glib::GQuark, code: c_int, text: *mut c_char, debug: *mut c_char, file: *const c_char, function: *const c_char, line: c_int, structure: *mut GstStructure, ); pub fn gst_element_no_more_pads(element: *mut GstElement); pub fn gst_element_post_message(element: *mut GstElement, message: *mut GstMessage) -> gboolean; pub fn gst_element_provide_clock(element: *mut GstElement) -> *mut GstClock; pub fn gst_element_query(element: *mut GstElement, query: *mut GstQuery) -> gboolean; pub fn gst_element_query_convert( element: *mut GstElement, src_format: GstFormat, src_val: i64, dest_format: GstFormat, dest_val: *mut i64, ) -> gboolean; pub fn gst_element_query_duration( element: *mut GstElement, format: GstFormat, duration: *mut i64, ) -> gboolean; pub fn gst_element_query_position( element: *mut GstElement, format: GstFormat, cur: *mut i64, ) -> gboolean; pub fn gst_element_release_request_pad(element: *mut GstElement, pad: *mut GstPad); pub fn gst_element_remove_pad(element: *mut GstElement, pad: *mut GstPad) -> gboolean; pub fn gst_element_remove_property_notify_watch(element: *mut GstElement, watch_id: c_ulong); pub fn gst_element_request_pad( element: *mut GstElement, templ: *mut GstPadTemplate, name: *const c_char, caps: *const GstCaps, ) -> *mut GstPad; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_request_pad_simple( element: *mut GstElement, name: *const c_char, ) -> *mut GstPad; pub fn gst_element_seek( element: *mut GstElement, rate: c_double, format: GstFormat, flags: GstSeekFlags, start_type: GstSeekType, start: i64, stop_type: GstSeekType, stop: i64, ) -> gboolean; pub fn gst_element_seek_simple( element: *mut GstElement, format: GstFormat, seek_flags: GstSeekFlags, seek_pos: i64, ) -> gboolean; pub fn gst_element_send_event(element: *mut GstElement, event: *mut GstEvent) -> gboolean; pub fn gst_element_set_base_time(element: *mut GstElement, time: GstClockTime); pub fn gst_element_set_bus(element: *mut GstElement, bus: *mut GstBus); pub fn gst_element_set_clock(element: *mut GstElement, clock: *mut GstClock) -> gboolean; pub fn gst_element_set_context(element: *mut GstElement, context: *mut GstContext); pub fn gst_element_set_locked_state( element: *mut GstElement, locked_state: gboolean, ) -> gboolean; pub fn gst_element_set_start_time(element: *mut GstElement, time: GstClockTime); pub fn gst_element_set_state(element: *mut GstElement, state: GstState) -> GstStateChangeReturn; pub fn gst_element_sync_state_with_parent(element: *mut GstElement) -> gboolean; pub fn gst_element_unlink(src: *mut GstElement, dest: *mut GstElement); pub fn gst_element_unlink_many(element_1: *mut GstElement, element_2: *mut GstElement, ...); pub fn gst_element_unlink_pads( src: *mut GstElement, srcpadname: *const c_char, dest: *mut GstElement, destpadname: *const c_char, ); //========================================================================= // GstElementFactory //========================================================================= pub fn gst_element_factory_get_type() -> GType; pub fn gst_element_factory_find(name: *const c_char) -> *mut GstElementFactory; pub fn gst_element_factory_list_filter( list: *mut glib::GList, caps: *const GstCaps, direction: GstPadDirection, subsetonly: gboolean, ) -> *mut glib::GList; pub fn gst_element_factory_list_get_elements( type_: GstElementFactoryListType, minrank: GstRank, ) -> *mut glib::GList; pub fn gst_element_factory_make( factoryname: *const c_char, name: *const c_char, ) -> *mut GstElement; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_factory_make_full( factoryname: *const c_char, first: *const c_char, ... ) -> *mut GstElement; //#[cfg(feature = "v1_20")] //#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] //pub fn gst_element_factory_make_valist(factoryname: *const c_char, first: *const c_char, properties: /*Unimplemented*/va_list) -> *mut GstElement; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_factory_make_with_properties( factoryname: *const c_char, n: c_uint, names: *mut *const c_char, values: *const gobject::GValue, ) -> *mut GstElement; pub fn gst_element_factory_can_sink_all_caps( factory: *mut GstElementFactory, caps: *const GstCaps, ) -> gboolean; pub fn gst_element_factory_can_sink_any_caps( factory: *mut GstElementFactory, caps: *const GstCaps, ) -> gboolean; pub fn gst_element_factory_can_src_all_caps( factory: *mut GstElementFactory, caps: *const GstCaps, ) -> gboolean; pub fn gst_element_factory_can_src_any_caps( factory: *mut GstElementFactory, caps: *const GstCaps, ) -> gboolean; pub fn gst_element_factory_create( factory: *mut GstElementFactory, name: *const c_char, ) -> *mut GstElement; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_factory_create_full( factory: *mut GstElementFactory, first: *const c_char, ... ) -> *mut GstElement; //#[cfg(feature = "v1_20")] //#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] //pub fn gst_element_factory_create_valist(factory: *mut GstElementFactory, first: *const c_char, properties: /*Unimplemented*/va_list) -> *mut GstElement; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_factory_create_with_properties( factory: *mut GstElementFactory, n: c_uint, names: *mut *const c_char, values: *const gobject::GValue, ) -> *mut GstElement; pub fn gst_element_factory_get_element_type(factory: *mut GstElementFactory) -> GType; pub fn gst_element_factory_get_metadata( factory: *mut GstElementFactory, key: *const c_char, ) -> *const c_char; pub fn gst_element_factory_get_metadata_keys( factory: *mut GstElementFactory, ) -> *mut *mut c_char; pub fn gst_element_factory_get_num_pad_templates(factory: *mut GstElementFactory) -> c_uint; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_element_factory_get_skip_documentation(factory: *mut GstElementFactory) -> gboolean; pub fn gst_element_factory_get_static_pad_templates( factory: *mut GstElementFactory, ) -> *const glib::GList; pub fn gst_element_factory_get_uri_protocols( factory: *mut GstElementFactory, ) -> *const *const c_char; pub fn gst_element_factory_get_uri_type(factory: *mut GstElementFactory) -> GstURIType; pub fn gst_element_factory_has_interface( factory: *mut GstElementFactory, interfacename: *const c_char, ) -> gboolean; pub fn gst_element_factory_list_is_type( factory: *mut GstElementFactory, type_: GstElementFactoryListType, ) -> gboolean; //========================================================================= // GstFlagSet //========================================================================= pub fn gst_flagset_get_type() -> GType; pub fn gst_flagset_register(flags_type: GType) -> GType; //========================================================================= // GstFraction //========================================================================= pub fn gst_fraction_get_type() -> GType; //========================================================================= // GstFractionRange //========================================================================= pub fn gst_fraction_range_get_type() -> GType; //========================================================================= // GstGhostPad //========================================================================= pub fn gst_ghost_pad_get_type() -> GType; pub fn gst_ghost_pad_new(name: *const c_char, target: *mut GstPad) -> *mut GstPad; pub fn gst_ghost_pad_new_from_template( name: *const c_char, target: *mut GstPad, templ: *mut GstPadTemplate, ) -> *mut GstPad; pub fn gst_ghost_pad_new_no_target(name: *const c_char, dir: GstPadDirection) -> *mut GstPad; pub fn gst_ghost_pad_new_no_target_from_template( name: *const c_char, templ: *mut GstPadTemplate, ) -> *mut GstPad; pub fn gst_ghost_pad_activate_mode_default( pad: *mut GstPad, parent: *mut GstObject, mode: GstPadMode, active: gboolean, ) -> gboolean; pub fn gst_ghost_pad_internal_activate_mode_default( pad: *mut GstPad, parent: *mut GstObject, mode: GstPadMode, active: gboolean, ) -> gboolean; pub fn gst_ghost_pad_construct(gpad: *mut GstGhostPad) -> gboolean; pub fn gst_ghost_pad_get_target(gpad: *mut GstGhostPad) -> *mut GstPad; pub fn gst_ghost_pad_set_target(gpad: *mut GstGhostPad, newtarget: *mut GstPad) -> gboolean; //========================================================================= // GstInt64Range //========================================================================= pub fn gst_int64_range_get_type() -> GType; //========================================================================= // GstIntRange //========================================================================= pub fn gst_int_range_get_type() -> GType; //========================================================================= // GstObject //========================================================================= pub fn gst_object_get_type() -> GType; pub fn gst_object_check_uniqueness(list: *mut glib::GList, name: *const c_char) -> gboolean; pub fn gst_object_default_deep_notify( object: *mut gobject::GObject, orig: *mut GstObject, pspec: *mut gobject::GParamSpec, excluded_props: *mut *mut c_char, ); pub fn gst_object_ref_sink(object: gpointer) -> gpointer; pub fn gst_object_replace(oldobj: *mut *mut GstObject, newobj: *mut GstObject) -> gboolean; pub fn gst_object_add_control_binding( object: *mut GstObject, binding: *mut GstControlBinding, ) -> gboolean; pub fn gst_object_default_error( source: *mut GstObject, error: *const glib::GError, debug: *const c_char, ); pub fn gst_object_get_control_binding( object: *mut GstObject, property_name: *const c_char, ) -> *mut GstControlBinding; pub fn gst_object_get_control_rate(object: *mut GstObject) -> GstClockTime; pub fn gst_object_get_g_value_array( object: *mut GstObject, property_name: *const c_char, timestamp: GstClockTime, interval: GstClockTime, n_values: c_uint, values: *mut gobject::GValue, ) -> gboolean; pub fn gst_object_get_name(object: *mut GstObject) -> *mut c_char; pub fn gst_object_get_parent(object: *mut GstObject) -> *mut GstObject; pub fn gst_object_get_path_string(object: *mut GstObject) -> *mut c_char; pub fn gst_object_get_value( object: *mut GstObject, property_name: *const c_char, timestamp: GstClockTime, ) -> *mut gobject::GValue; pub fn gst_object_get_value_array( object: *mut GstObject, property_name: *const c_char, timestamp: GstClockTime, interval: GstClockTime, n_values: c_uint, values: gpointer, ) -> gboolean; pub fn gst_object_has_active_control_bindings(object: *mut GstObject) -> gboolean; pub fn gst_object_has_ancestor(object: *mut GstObject, ancestor: *mut GstObject) -> gboolean; pub fn gst_object_has_as_ancestor(object: *mut GstObject, ancestor: *mut GstObject) -> gboolean; pub fn gst_object_has_as_parent(object: *mut GstObject, parent: *mut GstObject) -> gboolean; pub fn gst_object_ref(object: *mut GstObject) -> *mut GstObject; pub fn gst_object_remove_control_binding( object: *mut GstObject, binding: *mut GstControlBinding, ) -> gboolean; pub fn gst_object_set_control_binding_disabled( object: *mut GstObject, property_name: *const c_char, disabled: gboolean, ); pub fn gst_object_set_control_bindings_disabled(object: *mut GstObject, disabled: gboolean); pub fn gst_object_set_control_rate(object: *mut GstObject, control_rate: GstClockTime); pub fn gst_object_set_name(object: *mut GstObject, name: *const c_char) -> gboolean; pub fn gst_object_set_parent(object: *mut GstObject, parent: *mut GstObject) -> gboolean; pub fn gst_object_suggest_next_sync(object: *mut GstObject) -> GstClockTime; pub fn gst_object_sync_values(object: *mut GstObject, timestamp: GstClockTime) -> gboolean; pub fn gst_object_unparent(object: *mut GstObject); pub fn gst_object_unref(object: *mut GstObject); //========================================================================= // GstPad //========================================================================= pub fn gst_pad_get_type() -> GType; pub fn gst_pad_new(name: *const c_char, direction: GstPadDirection) -> *mut GstPad; pub fn gst_pad_new_from_static_template( templ: *mut GstStaticPadTemplate, name: *const c_char, ) -> *mut GstPad; pub fn gst_pad_new_from_template( templ: *mut GstPadTemplate, name: *const c_char, ) -> *mut GstPad; pub fn gst_pad_link_get_name(ret: GstPadLinkReturn) -> *const c_char; pub fn gst_pad_activate_mode(pad: *mut GstPad, mode: GstPadMode, active: gboolean) -> gboolean; pub fn gst_pad_add_probe( pad: *mut GstPad, mask: GstPadProbeType, callback: GstPadProbeCallback, user_data: gpointer, destroy_data: glib::GDestroyNotify, ) -> c_ulong; pub fn gst_pad_can_link(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> gboolean; pub fn gst_pad_chain(pad: *mut GstPad, buffer: *mut GstBuffer) -> GstFlowReturn; pub fn gst_pad_chain_list(pad: *mut GstPad, list: *mut GstBufferList) -> GstFlowReturn; pub fn gst_pad_check_reconfigure(pad: *mut GstPad) -> gboolean; pub fn gst_pad_create_stream_id( pad: *mut GstPad, parent: *mut GstElement, stream_id: *const c_char, ) -> *mut c_char; pub fn gst_pad_create_stream_id_printf( pad: *mut GstPad, parent: *mut GstElement, stream_id: *const c_char, ... ) -> *mut c_char; //pub fn gst_pad_create_stream_id_printf_valist(pad: *mut GstPad, parent: *mut GstElement, stream_id: *const c_char, var_args: /*Unimplemented*/va_list) -> *mut c_char; pub fn gst_pad_event_default( pad: *mut GstPad, parent: *mut GstObject, event: *mut GstEvent, ) -> gboolean; pub fn gst_pad_forward( pad: *mut GstPad, forward: GstPadForwardFunction, user_data: gpointer, ) -> gboolean; pub fn gst_pad_get_allowed_caps(pad: *mut GstPad) -> *mut GstCaps; pub fn gst_pad_get_current_caps(pad: *mut GstPad) -> *mut GstCaps; pub fn gst_pad_get_direction(pad: *mut GstPad) -> GstPadDirection; pub fn gst_pad_get_element_private(pad: *mut GstPad) -> gpointer; pub fn gst_pad_get_last_flow_return(pad: *mut GstPad) -> GstFlowReturn; pub fn gst_pad_get_offset(pad: *mut GstPad) -> i64; pub fn gst_pad_get_pad_template(pad: *mut GstPad) -> *mut GstPadTemplate; pub fn gst_pad_get_pad_template_caps(pad: *mut GstPad) -> *mut GstCaps; pub fn gst_pad_get_parent_element(pad: *mut GstPad) -> *mut GstElement; pub fn gst_pad_get_peer(pad: *mut GstPad) -> *mut GstPad; pub fn gst_pad_get_range( pad: *mut GstPad, offset: u64, size: c_uint, buffer: *mut *mut GstBuffer, ) -> GstFlowReturn; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_pad_get_single_internal_link(pad: *mut GstPad) -> *mut GstPad; pub fn gst_pad_get_sticky_event( pad: *mut GstPad, event_type: GstEventType, idx: c_uint, ) -> *mut GstEvent; pub fn gst_pad_get_stream(pad: *mut GstPad) -> *mut GstStream; pub fn gst_pad_get_stream_id(pad: *mut GstPad) -> *mut c_char; pub fn gst_pad_get_task_state(pad: *mut GstPad) -> GstTaskState; pub fn gst_pad_has_current_caps(pad: *mut GstPad) -> gboolean; pub fn gst_pad_is_active(pad: *mut GstPad) -> gboolean; pub fn gst_pad_is_blocked(pad: *mut GstPad) -> gboolean; pub fn gst_pad_is_blocking(pad: *mut GstPad) -> gboolean; pub fn gst_pad_is_linked(pad: *mut GstPad) -> gboolean; pub fn gst_pad_iterate_internal_links(pad: *mut GstPad) -> *mut GstIterator; pub fn gst_pad_iterate_internal_links_default( pad: *mut GstPad, parent: *mut GstObject, ) -> *mut GstIterator; pub fn gst_pad_link(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> GstPadLinkReturn; pub fn gst_pad_link_full( srcpad: *mut GstPad, sinkpad: *mut GstPad, flags: GstPadLinkCheck, ) -> GstPadLinkReturn; pub fn gst_pad_link_maybe_ghosting(src: *mut GstPad, sink: *mut GstPad) -> gboolean; pub fn gst_pad_link_maybe_ghosting_full( src: *mut GstPad, sink: *mut GstPad, flags: GstPadLinkCheck, ) -> gboolean; pub fn gst_pad_mark_reconfigure(pad: *mut GstPad); pub fn gst_pad_needs_reconfigure(pad: *mut GstPad) -> gboolean; pub fn gst_pad_pause_task(pad: *mut GstPad) -> gboolean; pub fn gst_pad_peer_query(pad: *mut GstPad, query: *mut GstQuery) -> gboolean; pub fn gst_pad_peer_query_accept_caps(pad: *mut GstPad, caps: *mut GstCaps) -> gboolean; pub fn gst_pad_peer_query_caps(pad: *mut GstPad, filter: *mut GstCaps) -> *mut GstCaps; pub fn gst_pad_peer_query_convert( pad: *mut GstPad, src_format: GstFormat, src_val: i64, dest_format: GstFormat, dest_val: *mut i64, ) -> gboolean; pub fn gst_pad_peer_query_duration( pad: *mut GstPad, format: GstFormat, duration: *mut i64, ) -> gboolean; pub fn gst_pad_peer_query_position( pad: *mut GstPad, format: GstFormat, cur: *mut i64, ) -> gboolean; pub fn gst_pad_proxy_query_accept_caps(pad: *mut GstPad, query: *mut GstQuery) -> gboolean; pub fn gst_pad_proxy_query_caps(pad: *mut GstPad, query: *mut GstQuery) -> gboolean; pub fn gst_pad_pull_range( pad: *mut GstPad, offset: u64, size: c_uint, buffer: *mut *mut GstBuffer, ) -> GstFlowReturn; pub fn gst_pad_push(pad: *mut GstPad, buffer: *mut GstBuffer) -> GstFlowReturn; pub fn gst_pad_push_event(pad: *mut GstPad, event: *mut GstEvent) -> gboolean; pub fn gst_pad_push_list(pad: *mut GstPad, list: *mut GstBufferList) -> GstFlowReturn; pub fn gst_pad_query(pad: *mut GstPad, query: *mut GstQuery) -> gboolean; pub fn gst_pad_query_accept_caps(pad: *mut GstPad, caps: *mut GstCaps) -> gboolean; pub fn gst_pad_query_caps(pad: *mut GstPad, filter: *mut GstCaps) -> *mut GstCaps; pub fn gst_pad_query_convert( pad: *mut GstPad, src_format: GstFormat, src_val: i64, dest_format: GstFormat, dest_val: *mut i64, ) -> gboolean; pub fn gst_pad_query_default( pad: *mut GstPad, parent: *mut GstObject, query: *mut GstQuery, ) -> gboolean; pub fn gst_pad_query_duration( pad: *mut GstPad, format: GstFormat, duration: *mut i64, ) -> gboolean; pub fn gst_pad_query_position(pad: *mut GstPad, format: GstFormat, cur: *mut i64) -> gboolean; pub fn gst_pad_remove_probe(pad: *mut GstPad, id: c_ulong); pub fn gst_pad_send_event(pad: *mut GstPad, event: *mut GstEvent) -> gboolean; pub fn gst_pad_set_activate_function_full( pad: *mut GstPad, activate: GstPadActivateFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_activatemode_function_full( pad: *mut GstPad, activatemode: GstPadActivateModeFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_active(pad: *mut GstPad, active: gboolean) -> gboolean; pub fn gst_pad_set_chain_function_full( pad: *mut GstPad, chain: GstPadChainFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_chain_list_function_full( pad: *mut GstPad, chainlist: GstPadChainListFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_element_private(pad: *mut GstPad, priv_: gpointer); pub fn gst_pad_set_event_full_function_full( pad: *mut GstPad, event: GstPadEventFullFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_event_function_full( pad: *mut GstPad, event: GstPadEventFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_getrange_function_full( pad: *mut GstPad, get: GstPadGetRangeFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_iterate_internal_links_function_full( pad: *mut GstPad, iterintlink: GstPadIterIntLinkFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_link_function_full( pad: *mut GstPad, link: GstPadLinkFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_offset(pad: *mut GstPad, offset: i64); pub fn gst_pad_set_query_function_full( pad: *mut GstPad, query: GstPadQueryFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_set_unlink_function_full( pad: *mut GstPad, unlink: GstPadUnlinkFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_pad_start_task( pad: *mut GstPad, func: GstTaskFunction, user_data: gpointer, notify: glib::GDestroyNotify, ) -> gboolean; pub fn gst_pad_sticky_events_foreach( pad: *mut GstPad, foreach_func: GstPadStickyEventsForeachFunction, user_data: gpointer, ); pub fn gst_pad_stop_task(pad: *mut GstPad) -> gboolean; pub fn gst_pad_store_sticky_event(pad: *mut GstPad, event: *mut GstEvent) -> GstFlowReturn; pub fn gst_pad_unlink(srcpad: *mut GstPad, sinkpad: *mut GstPad) -> gboolean; pub fn gst_pad_use_fixed_caps(pad: *mut GstPad); //========================================================================= // GstPadTemplate //========================================================================= pub fn gst_pad_template_get_type() -> GType; pub fn gst_pad_template_new( name_template: *const c_char, direction: GstPadDirection, presence: GstPadPresence, caps: *mut GstCaps, ) -> *mut GstPadTemplate; pub fn gst_pad_template_new_from_static_pad_template_with_gtype( pad_template: *mut GstStaticPadTemplate, pad_type: GType, ) -> *mut GstPadTemplate; pub fn gst_pad_template_new_with_gtype( name_template: *const c_char, direction: GstPadDirection, presence: GstPadPresence, caps: *mut GstCaps, pad_type: GType, ) -> *mut GstPadTemplate; pub fn gst_pad_template_get_caps(templ: *mut GstPadTemplate) -> *mut GstCaps; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_pad_template_get_documentation_caps(templ: *mut GstPadTemplate) -> *mut GstCaps; pub fn gst_pad_template_pad_created(templ: *mut GstPadTemplate, pad: *mut GstPad); #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_pad_template_set_documentation_caps(templ: *mut GstPadTemplate, caps: *mut GstCaps); //========================================================================= // GstParamArray //========================================================================= pub fn gst_param_spec_array_get_type() -> GType; //========================================================================= // GstParamFraction //========================================================================= pub fn gst_param_spec_fraction_get_type() -> GType; //========================================================================= // GstPipeline //========================================================================= pub fn gst_pipeline_get_type() -> GType; pub fn gst_pipeline_new(name: *const c_char) -> *mut GstElement; pub fn gst_pipeline_auto_clock(pipeline: *mut GstPipeline); pub fn gst_pipeline_get_auto_flush_bus(pipeline: *mut GstPipeline) -> gboolean; pub fn gst_pipeline_get_bus(pipeline: *mut GstPipeline) -> *mut GstBus; pub fn gst_pipeline_get_clock(pipeline: *mut GstPipeline) -> *mut GstClock; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_pipeline_get_configured_latency(pipeline: *mut GstPipeline) -> GstClockTime; pub fn gst_pipeline_get_delay(pipeline: *mut GstPipeline) -> GstClockTime; pub fn gst_pipeline_get_latency(pipeline: *mut GstPipeline) -> GstClockTime; pub fn gst_pipeline_get_pipeline_clock(pipeline: *mut GstPipeline) -> *mut GstClock; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_pipeline_is_live(pipeline: *mut GstPipeline) -> gboolean; pub fn gst_pipeline_set_auto_flush_bus(pipeline: *mut GstPipeline, auto_flush: gboolean); pub fn gst_pipeline_set_clock(pipeline: *mut GstPipeline, clock: *mut GstClock) -> gboolean; pub fn gst_pipeline_set_delay(pipeline: *mut GstPipeline, delay: GstClockTime); pub fn gst_pipeline_set_latency(pipeline: *mut GstPipeline, latency: GstClockTime); pub fn gst_pipeline_use_clock(pipeline: *mut GstPipeline, clock: *mut GstClock); //========================================================================= // GstPlugin //========================================================================= pub fn gst_plugin_get_type() -> GType; pub fn gst_plugin_list_free(list: *mut glib::GList); pub fn gst_plugin_load_by_name(name: *const c_char) -> *mut GstPlugin; pub fn gst_plugin_load_file( filename: *const c_char, error: *mut *mut glib::GError, ) -> *mut GstPlugin; pub fn gst_plugin_register_static( major_version: c_int, minor_version: c_int, name: *const c_char, description: *const c_char, init_func: GstPluginInitFunc, version: *const c_char, license: *const c_char, source: *const c_char, package: *const c_char, origin: *const c_char, ) -> gboolean; pub fn gst_plugin_register_static_full( major_version: c_int, minor_version: c_int, name: *const c_char, description: *const c_char, init_full_func: GstPluginInitFullFunc, version: *const c_char, license: *const c_char, source: *const c_char, package: *const c_char, origin: *const c_char, user_data: gpointer, ) -> gboolean; pub fn gst_plugin_add_dependency( plugin: *mut GstPlugin, env_vars: *mut *const c_char, paths: *mut *const c_char, names: *mut *const c_char, flags: GstPluginDependencyFlags, ); pub fn gst_plugin_add_dependency_simple( plugin: *mut GstPlugin, env_vars: *const c_char, paths: *const c_char, names: *const c_char, flags: GstPluginDependencyFlags, ); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_add_status_error(plugin: *mut GstPlugin, message: *const c_char); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_add_status_info(plugin: *mut GstPlugin, message: *const c_char); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_add_status_warning(plugin: *mut GstPlugin, message: *const c_char); pub fn gst_plugin_get_cache_data(plugin: *mut GstPlugin) -> *const GstStructure; pub fn gst_plugin_get_description(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_filename(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_license(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_name(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_origin(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_package(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_release_date_string(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_get_source(plugin: *mut GstPlugin) -> *const c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_get_status_errors(plugin: *mut GstPlugin) -> *mut *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_get_status_infos(plugin: *mut GstPlugin) -> *mut *mut c_char; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_plugin_get_status_warnings(plugin: *mut GstPlugin) -> *mut *mut c_char; pub fn gst_plugin_get_version(plugin: *mut GstPlugin) -> *const c_char; pub fn gst_plugin_is_loaded(plugin: *mut GstPlugin) -> gboolean; pub fn gst_plugin_load(plugin: *mut GstPlugin) -> *mut GstPlugin; pub fn gst_plugin_set_cache_data(plugin: *mut GstPlugin, cache_data: *mut GstStructure); //========================================================================= // GstPluginFeature //========================================================================= pub fn gst_plugin_feature_get_type() -> GType; pub fn gst_plugin_feature_list_copy(list: *mut glib::GList) -> *mut glib::GList; pub fn gst_plugin_feature_list_debug(list: *mut glib::GList); pub fn gst_plugin_feature_list_free(list: *mut glib::GList); pub fn gst_plugin_feature_rank_compare_func(p1: gconstpointer, p2: gconstpointer) -> c_int; pub fn gst_plugin_feature_check_version( feature: *mut GstPluginFeature, min_major: c_uint, min_minor: c_uint, min_micro: c_uint, ) -> gboolean; pub fn gst_plugin_feature_get_plugin(feature: *mut GstPluginFeature) -> *mut GstPlugin; pub fn gst_plugin_feature_get_plugin_name(feature: *mut GstPluginFeature) -> *const c_char; pub fn gst_plugin_feature_get_rank(feature: *mut GstPluginFeature) -> c_uint; pub fn gst_plugin_feature_load(feature: *mut GstPluginFeature) -> *mut GstPluginFeature; pub fn gst_plugin_feature_set_rank(feature: *mut GstPluginFeature, rank: c_uint); //========================================================================= // GstProxyPad //========================================================================= pub fn gst_proxy_pad_get_type() -> GType; pub fn gst_proxy_pad_chain_default( pad: *mut GstPad, parent: *mut GstObject, buffer: *mut GstBuffer, ) -> GstFlowReturn; pub fn gst_proxy_pad_chain_list_default( pad: *mut GstPad, parent: *mut GstObject, list: *mut GstBufferList, ) -> GstFlowReturn; pub fn gst_proxy_pad_getrange_default( pad: *mut GstPad, parent: *mut GstObject, offset: u64, size: c_uint, buffer: *mut *mut GstBuffer, ) -> GstFlowReturn; pub fn gst_proxy_pad_iterate_internal_links_default( pad: *mut GstPad, parent: *mut GstObject, ) -> *mut GstIterator; pub fn gst_proxy_pad_get_internal(pad: *mut GstProxyPad) -> *mut GstProxyPad; //========================================================================= // GstRegistry //========================================================================= pub fn gst_registry_get_type() -> GType; pub fn gst_registry_fork_is_enabled() -> gboolean; pub fn gst_registry_fork_set_enabled(enabled: gboolean); pub fn gst_registry_get() -> *mut GstRegistry; pub fn gst_registry_add_feature( registry: *mut GstRegistry, feature: *mut GstPluginFeature, ) -> gboolean; pub fn gst_registry_add_plugin(registry: *mut GstRegistry, plugin: *mut GstPlugin) -> gboolean; pub fn gst_registry_check_feature_version( registry: *mut GstRegistry, feature_name: *const c_char, min_major: c_uint, min_minor: c_uint, min_micro: c_uint, ) -> gboolean; pub fn gst_registry_feature_filter( registry: *mut GstRegistry, filter: GstPluginFeatureFilter, first: gboolean, user_data: gpointer, ) -> *mut glib::GList; pub fn gst_registry_find_feature( registry: *mut GstRegistry, name: *const c_char, type_: GType, ) -> *mut GstPluginFeature; pub fn gst_registry_find_plugin( registry: *mut GstRegistry, name: *const c_char, ) -> *mut GstPlugin; pub fn gst_registry_get_feature_list( registry: *mut GstRegistry, type_: GType, ) -> *mut glib::GList; pub fn gst_registry_get_feature_list_by_plugin( registry: *mut GstRegistry, name: *const c_char, ) -> *mut glib::GList; pub fn gst_registry_get_feature_list_cookie(registry: *mut GstRegistry) -> u32; pub fn gst_registry_get_plugin_list(registry: *mut GstRegistry) -> *mut glib::GList; pub fn gst_registry_lookup( registry: *mut GstRegistry, filename: *const c_char, ) -> *mut GstPlugin; pub fn gst_registry_lookup_feature( registry: *mut GstRegistry, name: *const c_char, ) -> *mut GstPluginFeature; pub fn gst_registry_plugin_filter( registry: *mut GstRegistry, filter: GstPluginFilter, first: gboolean, user_data: gpointer, ) -> *mut glib::GList; pub fn gst_registry_remove_feature(registry: *mut GstRegistry, feature: *mut GstPluginFeature); pub fn gst_registry_remove_plugin(registry: *mut GstRegistry, plugin: *mut GstPlugin); pub fn gst_registry_scan_path(registry: *mut GstRegistry, path: *const c_char) -> gboolean; //========================================================================= // GstSharedTaskPool //========================================================================= #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_shared_task_pool_get_type() -> GType; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_shared_task_pool_new() -> *mut GstTaskPool; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_shared_task_pool_get_max_threads(pool: *mut GstSharedTaskPool) -> c_uint; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_shared_task_pool_set_max_threads(pool: *mut GstSharedTaskPool, max_threads: c_uint); //========================================================================= // GstStream //========================================================================= pub fn gst_stream_get_type() -> GType; pub fn gst_stream_new( stream_id: *const c_char, caps: *mut GstCaps, type_: GstStreamType, flags: GstStreamFlags, ) -> *mut GstStream; pub fn gst_stream_get_caps(stream: *mut GstStream) -> *mut GstCaps; pub fn gst_stream_get_stream_flags(stream: *mut GstStream) -> GstStreamFlags; pub fn gst_stream_get_stream_id(stream: *mut GstStream) -> *const c_char; pub fn gst_stream_get_stream_type(stream: *mut GstStream) -> GstStreamType; pub fn gst_stream_get_tags(stream: *mut GstStream) -> *mut GstTagList; pub fn gst_stream_set_caps(stream: *mut GstStream, caps: *mut GstCaps); pub fn gst_stream_set_stream_flags(stream: *mut GstStream, flags: GstStreamFlags); pub fn gst_stream_set_stream_type(stream: *mut GstStream, stream_type: GstStreamType); pub fn gst_stream_set_tags(stream: *mut GstStream, tags: *mut GstTagList); //========================================================================= // GstStreamCollection //========================================================================= pub fn gst_stream_collection_get_type() -> GType; pub fn gst_stream_collection_new(upstream_id: *const c_char) -> *mut GstStreamCollection; pub fn gst_stream_collection_add_stream( collection: *mut GstStreamCollection, stream: *mut GstStream, ) -> gboolean; pub fn gst_stream_collection_get_size(collection: *mut GstStreamCollection) -> c_uint; pub fn gst_stream_collection_get_stream( collection: *mut GstStreamCollection, index: c_uint, ) -> *mut GstStream; pub fn gst_stream_collection_get_upstream_id( collection: *mut GstStreamCollection, ) -> *const c_char; //========================================================================= // GstSystemClock //========================================================================= pub fn gst_system_clock_get_type() -> GType; pub fn gst_system_clock_obtain() -> *mut GstClock; pub fn gst_system_clock_set_default(new_clock: *mut GstClock); //========================================================================= // GstTask //========================================================================= pub fn gst_task_get_type() -> GType; pub fn gst_task_new( func: GstTaskFunction, user_data: gpointer, notify: glib::GDestroyNotify, ) -> *mut GstTask; pub fn gst_task_cleanup_all(); pub fn gst_task_get_pool(task: *mut GstTask) -> *mut GstTaskPool; pub fn gst_task_get_state(task: *mut GstTask) -> GstTaskState; pub fn gst_task_join(task: *mut GstTask) -> gboolean; pub fn gst_task_pause(task: *mut GstTask) -> gboolean; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_task_resume(task: *mut GstTask) -> gboolean; pub fn gst_task_set_enter_callback( task: *mut GstTask, enter_func: GstTaskThreadFunc, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_task_set_leave_callback( task: *mut GstTask, leave_func: GstTaskThreadFunc, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_task_set_lock(task: *mut GstTask, mutex: *mut glib::GRecMutex); pub fn gst_task_set_pool(task: *mut GstTask, pool: *mut GstTaskPool); pub fn gst_task_set_state(task: *mut GstTask, state: GstTaskState) -> gboolean; pub fn gst_task_start(task: *mut GstTask) -> gboolean; pub fn gst_task_stop(task: *mut GstTask) -> gboolean; //========================================================================= // GstTaskPool //========================================================================= pub fn gst_task_pool_get_type() -> GType; pub fn gst_task_pool_new() -> *mut GstTaskPool; pub fn gst_task_pool_cleanup(pool: *mut GstTaskPool); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_task_pool_dispose_handle(pool: *mut GstTaskPool, id: gpointer); pub fn gst_task_pool_join(pool: *mut GstTaskPool, id: gpointer); pub fn gst_task_pool_prepare(pool: *mut GstTaskPool, error: *mut *mut glib::GError); pub fn gst_task_pool_push( pool: *mut GstTaskPool, func: GstTaskPoolFunction, user_data: gpointer, error: *mut *mut glib::GError, ) -> gpointer; //========================================================================= // GstTracer //========================================================================= pub fn gst_tracer_get_type() -> GType; pub fn gst_tracer_register( plugin: *mut GstPlugin, name: *const c_char, type_: GType, ) -> gboolean; //========================================================================= // GstTracerFactory //========================================================================= pub fn gst_tracer_factory_get_type() -> GType; pub fn gst_tracer_factory_get_list() -> *mut glib::GList; pub fn gst_tracer_factory_get_tracer_type(factory: *mut GstTracerFactory) -> GType; //========================================================================= // GstTracerRecord //========================================================================= pub fn gst_tracer_record_get_type() -> GType; pub fn gst_tracer_record_new( name: *const c_char, firstfield: *const c_char, ... ) -> *mut GstTracerRecord; pub fn gst_tracer_record_log(self_: *mut GstTracerRecord, ...); //========================================================================= // GstTypeFindFactory //========================================================================= pub fn gst_type_find_factory_get_type() -> GType; pub fn gst_type_find_factory_get_list() -> *mut glib::GList; pub fn gst_type_find_factory_call_function( factory: *mut GstTypeFindFactory, find: *mut GstTypeFind, ); pub fn gst_type_find_factory_get_caps(factory: *mut GstTypeFindFactory) -> *mut GstCaps; pub fn gst_type_find_factory_get_extensions( factory: *mut GstTypeFindFactory, ) -> *const *const c_char; pub fn gst_type_find_factory_has_function(factory: *mut GstTypeFindFactory) -> gboolean; //========================================================================= // GstValueArray //========================================================================= pub fn gst_value_array_get_type() -> GType; pub fn gst_value_array_append_and_take_value( value: *mut gobject::GValue, append_value: *mut gobject::GValue, ); pub fn gst_value_array_append_value( value: *mut gobject::GValue, append_value: *const gobject::GValue, ); pub fn gst_value_array_get_size(value: *const gobject::GValue) -> c_uint; pub fn gst_value_array_get_value( value: *const gobject::GValue, index: c_uint, ) -> *const gobject::GValue; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_value_array_init( value: *mut gobject::GValue, prealloc: c_uint, ) -> *mut gobject::GValue; pub fn gst_value_array_prepend_value( value: *mut gobject::GValue, prepend_value: *const gobject::GValue, ); //========================================================================= // GstValueList //========================================================================= pub fn gst_value_list_get_type() -> GType; pub fn gst_value_list_append_and_take_value( value: *mut gobject::GValue, append_value: *mut gobject::GValue, ); pub fn gst_value_list_append_value( value: *mut gobject::GValue, append_value: *const gobject::GValue, ); pub fn gst_value_list_concat( dest: *mut gobject::GValue, value1: *const gobject::GValue, value2: *const gobject::GValue, ); pub fn gst_value_list_get_size(value: *const gobject::GValue) -> c_uint; pub fn gst_value_list_get_value( value: *const gobject::GValue, index: c_uint, ) -> *const gobject::GValue; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_value_list_init( value: *mut gobject::GValue, prealloc: c_uint, ) -> *mut gobject::GValue; pub fn gst_value_list_merge( dest: *mut gobject::GValue, value1: *const gobject::GValue, value2: *const gobject::GValue, ); pub fn gst_value_list_prepend_value( value: *mut gobject::GValue, prepend_value: *const gobject::GValue, ); //========================================================================= // GstChildProxy //========================================================================= pub fn gst_child_proxy_get_type() -> GType; pub fn gst_child_proxy_child_added( parent: *mut GstChildProxy, child: *mut gobject::GObject, name: *const c_char, ); pub fn gst_child_proxy_child_removed( parent: *mut GstChildProxy, child: *mut gobject::GObject, name: *const c_char, ); pub fn gst_child_proxy_get(object: *mut GstChildProxy, first_property_name: *const c_char, ...); pub fn gst_child_proxy_get_child_by_index( parent: *mut GstChildProxy, index: c_uint, ) -> *mut gobject::GObject; pub fn gst_child_proxy_get_child_by_name( parent: *mut GstChildProxy, name: *const c_char, ) -> *mut gobject::GObject; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_child_proxy_get_child_by_name_recurse( child_proxy: *mut GstChildProxy, name: *const c_char, ) -> *mut gobject::GObject; pub fn gst_child_proxy_get_children_count(parent: *mut GstChildProxy) -> c_uint; pub fn gst_child_proxy_get_property( object: *mut GstChildProxy, name: *const c_char, value: *mut gobject::GValue, ); //pub fn gst_child_proxy_get_valist(object: *mut GstChildProxy, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list); pub fn gst_child_proxy_lookup( object: *mut GstChildProxy, name: *const c_char, target: *mut *mut gobject::GObject, pspec: *mut *mut gobject::GParamSpec, ) -> gboolean; pub fn gst_child_proxy_set(object: *mut GstChildProxy, first_property_name: *const c_char, ...); pub fn gst_child_proxy_set_property( object: *mut GstChildProxy, name: *const c_char, value: *const gobject::GValue, ); //pub fn gst_child_proxy_set_valist(object: *mut GstChildProxy, first_property_name: *const c_char, var_args: /*Unimplemented*/va_list); //========================================================================= // GstPreset //========================================================================= pub fn gst_preset_get_type() -> GType; pub fn gst_preset_get_app_dir() -> *const c_char; pub fn gst_preset_set_app_dir(app_dir: *const c_char) -> gboolean; pub fn gst_preset_delete_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean; pub fn gst_preset_get_meta( preset: *mut GstPreset, name: *const c_char, tag: *const c_char, value: *mut *mut c_char, ) -> gboolean; pub fn gst_preset_get_preset_names(preset: *mut GstPreset) -> *mut *mut c_char; pub fn gst_preset_get_property_names(preset: *mut GstPreset) -> *mut *mut c_char; pub fn gst_preset_is_editable(preset: *mut GstPreset) -> gboolean; pub fn gst_preset_load_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean; pub fn gst_preset_rename_preset( preset: *mut GstPreset, old_name: *const c_char, new_name: *const c_char, ) -> gboolean; pub fn gst_preset_save_preset(preset: *mut GstPreset, name: *const c_char) -> gboolean; pub fn gst_preset_set_meta( preset: *mut GstPreset, name: *const c_char, tag: *const c_char, value: *const c_char, ) -> gboolean; //========================================================================= // GstTagSetter //========================================================================= pub fn gst_tag_setter_get_type() -> GType; //pub fn gst_tag_setter_add_tag_valist(setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list); //pub fn gst_tag_setter_add_tag_valist_values(setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, var_args: /*Unimplemented*/va_list); pub fn gst_tag_setter_add_tag_value( setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, value: *const gobject::GValue, ); pub fn gst_tag_setter_add_tag_values( setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, ... ); pub fn gst_tag_setter_add_tags( setter: *mut GstTagSetter, mode: GstTagMergeMode, tag: *const c_char, ... ); pub fn gst_tag_setter_get_tag_list(setter: *mut GstTagSetter) -> *const GstTagList; pub fn gst_tag_setter_get_tag_merge_mode(setter: *mut GstTagSetter) -> GstTagMergeMode; pub fn gst_tag_setter_merge_tags( setter: *mut GstTagSetter, list: *const GstTagList, mode: GstTagMergeMode, ); pub fn gst_tag_setter_reset_tags(setter: *mut GstTagSetter); pub fn gst_tag_setter_set_tag_merge_mode(setter: *mut GstTagSetter, mode: GstTagMergeMode); //========================================================================= // GstTocSetter //========================================================================= pub fn gst_toc_setter_get_type() -> GType; pub fn gst_toc_setter_get_toc(setter: *mut GstTocSetter) -> *mut GstToc; pub fn gst_toc_setter_reset(setter: *mut GstTocSetter); pub fn gst_toc_setter_set_toc(setter: *mut GstTocSetter, toc: *mut GstToc); //========================================================================= // GstURIHandler //========================================================================= pub fn gst_uri_handler_get_type() -> GType; pub fn gst_uri_handler_get_protocols(handler: *mut GstURIHandler) -> *const *const c_char; pub fn gst_uri_handler_get_uri(handler: *mut GstURIHandler) -> *mut c_char; pub fn gst_uri_handler_get_uri_type(handler: *mut GstURIHandler) -> GstURIType; pub fn gst_uri_handler_set_uri( handler: *mut GstURIHandler, uri: *const c_char, error: *mut *mut glib::GError, ) -> gboolean; //========================================================================= // Other functions //========================================================================= pub fn gst_calculate_linear_regression( xy: *const GstClockTime, temp: *mut GstClockTime, n: c_uint, m_num: *mut GstClockTime, m_denom: *mut GstClockTime, b: *mut GstClockTime, xbase: *mut GstClockTime, r_squared: *mut c_double, ) -> gboolean; #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_buffer(buf_ptr: *mut *mut GstBuffer); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_buffer_list(list_ptr: *mut *mut GstBufferList); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_caps(caps_ptr: *mut *mut GstCaps); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_clear_context(context_ptr: *mut *mut GstContext); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_event(event_ptr: *mut *mut GstEvent); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_message(msg_ptr: *mut *mut GstMessage); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_clear_mini_object(object_ptr: *mut *mut GstMiniObject); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_clear_object(object_ptr: *mut *mut GstObject); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_clear_promise(promise_ptr: *mut *mut GstPromise); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_query(query_ptr: *mut *mut GstQuery); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_clear_sample(sample_ptr: *mut *mut GstSample); #[cfg(feature = "v1_16")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))] pub fn gst_clear_structure(structure_ptr: *mut *mut GstStructure); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_tag_list(taglist_ptr: *mut *mut GstTagList); #[cfg(feature = "v1_18_3")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18_3")))] pub fn gst_clear_uri(uri_ptr: *mut *mut GstUri); pub fn gst_debug_add_log_function( func: GstLogFunction, user_data: gpointer, notify: glib::GDestroyNotify, ); pub fn gst_debug_add_ring_buffer_logger(max_size_per_thread: c_uint, thread_timeout: c_uint); pub fn gst_debug_bin_to_dot_data( bin: *mut GstBin, details: GstDebugGraphDetails, ) -> *mut c_char; pub fn gst_debug_bin_to_dot_file( bin: *mut GstBin, details: GstDebugGraphDetails, file_name: *const c_char, ); pub fn gst_debug_bin_to_dot_file_with_ts( bin: *mut GstBin, details: GstDebugGraphDetails, file_name: *const c_char, ); pub fn gst_debug_construct_term_color(colorinfo: c_uint) -> *mut c_char; pub fn gst_debug_construct_win_color(colorinfo: c_uint) -> c_int; pub fn gst_debug_get_all_categories() -> *mut glib::GSList; pub fn gst_debug_get_color_mode() -> GstDebugColorMode; pub fn gst_debug_get_default_threshold() -> GstDebugLevel; pub fn gst_debug_get_stack_trace(flags: GstStackTraceFlags) -> *mut c_char; pub fn gst_debug_is_active() -> gboolean; pub fn gst_debug_is_colored() -> gboolean; pub fn gst_debug_log( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, format: *const c_char, ... ); pub fn gst_debug_log_default( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, message: *mut GstDebugMessage, user_data: gpointer, ); #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_debug_log_get_line( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, message: *mut GstDebugMessage, ) -> *mut c_char; #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_debug_log_id( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, id: *const c_char, format: *const c_char, ... ); #[cfg(feature = "v1_22")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] pub fn gst_debug_log_id_literal( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, id: *const c_char, message_string: *const c_char, ); //#[cfg(feature = "v1_22")] //#[cfg_attr(docsrs, doc(cfg(feature = "v1_22")))] //pub fn gst_debug_log_id_valist(category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, id: *const c_char, format: *const c_char, args: /*Unimplemented*/va_list); #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_debug_log_literal( category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, message_string: *const c_char, ); //pub fn gst_debug_log_valist(category: *mut GstDebugCategory, level: GstDebugLevel, file: *const c_char, function: *const c_char, line: c_int, object: *mut gobject::GObject, format: *const c_char, args: /*Unimplemented*/va_list); #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_debug_print_object(ptr: gconstpointer) -> *mut c_char; #[cfg(feature = "v1_26")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))] pub fn gst_debug_print_segment(segment: *const GstSegment) -> *mut c_char; pub fn gst_debug_print_stack_trace(); pub fn gst_debug_remove_log_function(func: GstLogFunction) -> c_uint; pub fn gst_debug_remove_log_function_by_data(data: gpointer) -> c_uint; pub fn gst_debug_remove_ring_buffer_logger(); pub fn gst_debug_ring_buffer_logger_get_logs() -> *mut *mut c_char; pub fn gst_debug_set_active(active: gboolean); pub fn gst_debug_set_color_mode(mode: GstDebugColorMode); pub fn gst_debug_set_color_mode_from_string(mode: *const c_char); pub fn gst_debug_set_colored(colored: gboolean); pub fn gst_debug_set_default_threshold(level: GstDebugLevel); pub fn gst_debug_set_threshold_for_name(name: *const c_char, level: GstDebugLevel); pub fn gst_debug_set_threshold_from_string(list: *const c_char, reset: gboolean); pub fn gst_debug_unset_threshold_for_name(name: *const c_char); pub fn gst_deinit(); pub fn gst_dynamic_type_register(plugin: *mut GstPlugin, type_: GType) -> gboolean; pub fn gst_error_get_message(domain: glib::GQuark, code: c_int) -> *mut c_char; pub fn gst_filename_to_uri( filename: *const c_char, error: *mut *mut glib::GError, ) -> *mut c_char; pub fn gst_flow_get_name(ret: GstFlowReturn) -> *const c_char; pub fn gst_flow_to_quark(ret: GstFlowReturn) -> glib::GQuark; pub fn gst_formats_contains(formats: *const GstFormat, format: GstFormat) -> gboolean; pub fn gst_get_main_executable_path() -> *const c_char; pub fn gst_info_strdup_printf(format: *const c_char, ...) -> *mut c_char; //pub fn gst_info_strdup_vprintf(format: *const c_char, args: /*Unimplemented*/va_list) -> *mut c_char; //pub fn gst_info_vasprintf(result: *mut *mut c_char, format: *const c_char, args: /*Unimplemented*/va_list) -> c_int; pub fn gst_init(argc: *mut c_int, argv: *mut *mut *mut c_char); pub fn gst_init_check( argc: *mut c_int, argv: *mut *mut *mut c_char, error: *mut *mut glib::GError, ) -> gboolean; pub fn gst_init_get_option_group() -> *mut glib::GOptionGroup; pub fn gst_is_caps_features(obj: gconstpointer) -> gboolean; pub fn gst_is_initialized() -> gboolean; pub fn gst_make_element_message_details(name: *const c_char, ...) -> *mut GstStructure; pub fn gst_param_spec_array( name: *const c_char, nick: *const c_char, blurb: *const c_char, element_spec: *mut gobject::GParamSpec, flags: gobject::GParamFlags, ) -> *mut gobject::GParamSpec; pub fn gst_param_spec_fraction( name: *const c_char, nick: *const c_char, blurb: *const c_char, min_num: c_int, min_denom: c_int, max_num: c_int, max_denom: c_int, default_num: c_int, default_denom: c_int, flags: gobject::GParamFlags, ) -> *mut gobject::GParamSpec; pub fn gst_parent_buffer_meta_api_get_type() -> GType; pub fn gst_parse_bin_from_description( bin_description: *const c_char, ghost_unlinked_pads: gboolean, error: *mut *mut glib::GError, ) -> *mut GstBin; pub fn gst_parse_bin_from_description_full( bin_description: *const c_char, ghost_unlinked_pads: gboolean, context: *mut GstParseContext, flags: GstParseFlags, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_parse_launch( pipeline_description: *const c_char, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_parse_launch_full( pipeline_description: *const c_char, context: *mut GstParseContext, flags: GstParseFlags, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_parse_launchv( argv: *mut *const c_char, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_parse_launchv_full( argv: *mut *const c_char, context: *mut GstParseContext, flags: GstParseFlags, error: *mut *mut glib::GError, ) -> *mut GstElement; pub fn gst_print(format: *const c_char, ...); pub fn gst_printerr(format: *const c_char, ...); pub fn gst_printerrln(format: *const c_char, ...); pub fn gst_println(format: *const c_char, ...); pub fn gst_protection_filter_systems_by_available_decryptors( system_identifiers: *mut *const c_char, ) -> *mut *mut c_char; pub fn gst_protection_meta_api_get_type() -> GType; pub fn gst_protection_select_system(system_identifiers: *mut *const c_char) -> *const c_char; pub fn gst_reference_timestamp_meta_api_get_type() -> GType; pub fn gst_segtrap_is_enabled() -> gboolean; pub fn gst_segtrap_set_enabled(enabled: gboolean); pub fn gst_static_caps_get_type() -> GType; pub fn gst_static_pad_template_get_type() -> GType; pub fn gst_tag_exists(tag: *const c_char) -> gboolean; pub fn gst_tag_get_description(tag: *const c_char) -> *const c_char; pub fn gst_tag_get_flag(tag: *const c_char) -> GstTagFlag; pub fn gst_tag_get_nick(tag: *const c_char) -> *const c_char; pub fn gst_tag_get_type(tag: *const c_char) -> GType; pub fn gst_tag_is_fixed(tag: *const c_char) -> gboolean; pub fn gst_tag_merge_strings_with_comma( dest: *mut gobject::GValue, src: *const gobject::GValue, ); pub fn gst_tag_merge_use_first(dest: *mut gobject::GValue, src: *const gobject::GValue); pub fn gst_tag_register( name: *const c_char, flag: GstTagFlag, type_: GType, nick: *const c_char, blurb: *const c_char, func: GstTagMergeFunc, ); pub fn gst_tag_register_static( name: *const c_char, flag: GstTagFlag, type_: GType, nick: *const c_char, blurb: *const c_char, func: GstTagMergeFunc, ); #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_tracing_get_active_tracers() -> *mut glib::GList; pub fn gst_tracing_register_hook( tracer: *mut GstTracer, detail: *const c_char, func: gobject::GCallback, ); pub fn gst_type_find_get_type() -> GType; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_type_is_plugin_api(type_: GType, flags: *mut GstPluginAPIFlags) -> gboolean; #[cfg(feature = "v1_18")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))] pub fn gst_type_mark_as_plugin_api(type_: GType, flags: GstPluginAPIFlags); pub fn gst_update_registry() -> gboolean; pub fn gst_util_array_binary_search( array: gpointer, num_elements: c_uint, element_size: size_t, search_func: glib::GCompareDataFunc, mode: GstSearchMode, search_data: gconstpointer, user_data: gpointer, ) -> gpointer; #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_util_ceil_log2(v: u32) -> c_uint; pub fn gst_util_double_to_fraction(src: c_double, dest_n: *mut c_int, dest_d: *mut c_int); pub fn gst_util_dump_buffer(buf: *mut GstBuffer); pub fn gst_util_dump_mem(mem: *const u8, size: c_uint); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_util_filename_compare(a: *const c_char, b: *const c_char) -> c_int; pub fn gst_util_fraction_add( a_n: c_int, a_d: c_int, b_n: c_int, b_d: c_int, res_n: *mut c_int, res_d: *mut c_int, ) -> gboolean; pub fn gst_util_fraction_compare(a_n: c_int, a_d: c_int, b_n: c_int, b_d: c_int) -> c_int; pub fn gst_util_fraction_multiply( a_n: c_int, a_d: c_int, b_n: c_int, b_d: c_int, res_n: *mut c_int, res_d: *mut c_int, ) -> gboolean; pub fn gst_util_fraction_to_double(src_n: c_int, src_d: c_int, dest: *mut c_double); pub fn gst_util_gdouble_to_guint64(value: c_double) -> u64; pub fn gst_util_get_object_array( object: *mut gobject::GObject, name: *const c_char, array: *mut *mut gobject::GValueArray, ) -> gboolean; pub fn gst_util_get_timestamp() -> GstClockTime; pub fn gst_util_greatest_common_divisor(a: c_int, b: c_int) -> c_int; pub fn gst_util_greatest_common_divisor_int64(a: i64, b: i64) -> i64; pub fn gst_util_group_id_next() -> c_uint; pub fn gst_util_guint64_to_gdouble(value: u64) -> c_double; pub fn gst_util_seqnum_compare(s1: u32, s2: u32) -> i32; pub fn gst_util_seqnum_next() -> u32; pub fn gst_util_set_object_arg( object: *mut gobject::GObject, name: *const c_char, value: *const c_char, ); pub fn gst_util_set_object_array( object: *mut gobject::GObject, name: *const c_char, array: *const gobject::GValueArray, ) -> gboolean; pub fn gst_util_set_value_from_string(value: *mut gobject::GValue, value_str: *const c_char); #[cfg(feature = "v1_24")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))] pub fn gst_util_simplify_fraction( numerator: *mut c_int, denominator: *mut c_int, n_terms: c_uint, threshold: c_uint, ); pub fn gst_util_uint64_scale(val: u64, num: u64, denom: u64) -> u64; pub fn gst_util_uint64_scale_ceil(val: u64, num: u64, denom: u64) -> u64; pub fn gst_util_uint64_scale_int(val: u64, num: c_int, denom: c_int) -> u64; pub fn gst_util_uint64_scale_int_ceil(val: u64, num: c_int, denom: c_int) -> u64; pub fn gst_util_uint64_scale_int_round(val: u64, num: c_int, denom: c_int) -> u64; pub fn gst_util_uint64_scale_round(val: u64, num: u64, denom: u64) -> u64; pub fn gst_value_can_compare( value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_can_intersect( value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_can_subtract( minuend: *const gobject::GValue, subtrahend: *const gobject::GValue, ) -> gboolean; pub fn gst_value_can_union( value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_compare( value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> c_int; pub fn gst_value_deserialize(dest: *mut gobject::GValue, src: *const c_char) -> gboolean; #[cfg(feature = "v1_20")] #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))] pub fn gst_value_deserialize_with_pspec( dest: *mut gobject::GValue, src: *const c_char, pspec: *mut gobject::GParamSpec, ) -> gboolean; pub fn gst_value_fixate(dest: *mut gobject::GValue, src: *const gobject::GValue) -> gboolean; pub fn gst_value_fraction_multiply( product: *mut gobject::GValue, factor1: *const gobject::GValue, factor2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_fraction_subtract( dest: *mut gobject::GValue, minuend: *const gobject::GValue, subtrahend: *const gobject::GValue, ) -> gboolean; pub fn gst_value_get_bitmask(value: *const gobject::GValue) -> u64; pub fn gst_value_get_caps(value: *const gobject::GValue) -> *const GstCaps; pub fn gst_value_get_caps_features(value: *const gobject::GValue) -> *const GstCapsFeatures; pub fn gst_value_get_double_range_max(value: *const gobject::GValue) -> c_double; pub fn gst_value_get_double_range_min(value: *const gobject::GValue) -> c_double; pub fn gst_value_get_flagset_flags(value: *const gobject::GValue) -> c_uint; pub fn gst_value_get_flagset_mask(value: *const gobject::GValue) -> c_uint; pub fn gst_value_get_fraction_denominator(value: *const gobject::GValue) -> c_int; pub fn gst_value_get_fraction_numerator(value: *const gobject::GValue) -> c_int; pub fn gst_value_get_fraction_range_max( value: *const gobject::GValue, ) -> *const gobject::GValue; pub fn gst_value_get_fraction_range_min( value: *const gobject::GValue, ) -> *const gobject::GValue; pub fn gst_value_get_int64_range_max(value: *const gobject::GValue) -> i64; pub fn gst_value_get_int64_range_min(value: *const gobject::GValue) -> i64; pub fn gst_value_get_int64_range_step(value: *const gobject::GValue) -> i64; pub fn gst_value_get_int_range_max(value: *const gobject::GValue) -> c_int; pub fn gst_value_get_int_range_min(value: *const gobject::GValue) -> c_int; pub fn gst_value_get_int_range_step(value: *const gobject::GValue) -> c_int; pub fn gst_value_get_structure(value: *const gobject::GValue) -> *const GstStructure; pub fn gst_value_init_and_copy(dest: *mut gobject::GValue, src: *const gobject::GValue); pub fn gst_value_intersect( dest: *mut gobject::GValue, value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_is_fixed(value: *const gobject::GValue) -> gboolean; pub fn gst_value_is_subset( value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_value_register(table: *const GstValueTable); pub fn gst_value_serialize(value: *const gobject::GValue) -> *mut c_char; pub fn gst_value_set_bitmask(value: *mut gobject::GValue, bitmask: u64); pub fn gst_value_set_caps(value: *mut gobject::GValue, caps: *const GstCaps); pub fn gst_value_set_caps_features( value: *mut gobject::GValue, features: *const GstCapsFeatures, ); pub fn gst_value_set_double_range(value: *mut gobject::GValue, start: c_double, end: c_double); pub fn gst_value_set_flagset(value: *mut gobject::GValue, flags: c_uint, mask: c_uint); pub fn gst_value_set_fraction( value: *mut gobject::GValue, numerator: c_int, denominator: c_int, ); pub fn gst_value_set_fraction_range( value: *mut gobject::GValue, start: *const gobject::GValue, end: *const gobject::GValue, ); pub fn gst_value_set_fraction_range_full( value: *mut gobject::GValue, numerator_start: c_int, denominator_start: c_int, numerator_end: c_int, denominator_end: c_int, ); pub fn gst_value_set_int64_range(value: *mut gobject::GValue, start: i64, end: i64); pub fn gst_value_set_int64_range_step( value: *mut gobject::GValue, start: i64, end: i64, step: i64, ); pub fn gst_value_set_int_range(value: *mut gobject::GValue, start: c_int, end: c_int); pub fn gst_value_set_int_range_step( value: *mut gobject::GValue, start: c_int, end: c_int, step: c_int, ); pub fn gst_value_set_structure(value: *mut gobject::GValue, structure: *const GstStructure); pub fn gst_value_subtract( dest: *mut gobject::GValue, minuend: *const gobject::GValue, subtrahend: *const gobject::GValue, ) -> gboolean; pub fn gst_value_union( dest: *mut gobject::GValue, value1: *const gobject::GValue, value2: *const gobject::GValue, ) -> gboolean; pub fn gst_version( major: *mut c_uint, minor: *mut c_uint, micro: *mut c_uint, nano: *mut c_uint, ); pub fn gst_version_string() -> *mut c_char; } gstreamer-sys-0.23.0/tests/abi.rs000064400000000000000000002145441046102023000147700ustar 00000000000000// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #![cfg(unix)] use gstreamer_sys::*; use std::env; use std::error::Error; use std::ffi::OsString; use std::mem::{align_of, size_of}; use std::path::Path; use std::process::{Command, Stdio}; use std::str; use tempfile::Builder; static PACKAGES: &[&str] = &["gstreamer-1.0"]; #[derive(Clone, Debug)] struct Compiler { pub args: Vec, } impl Compiler { pub fn new() -> Result> { let mut args = get_var("CC", "cc")?; args.push("-Wno-deprecated-declarations".to_owned()); // For _Generic args.push("-std=c11".to_owned()); // For %z support in printf when using MinGW. args.push("-D__USE_MINGW_ANSI_STDIO".to_owned()); args.extend(get_var("CFLAGS", "")?); args.extend(get_var("CPPFLAGS", "")?); args.extend(pkg_config_cflags(PACKAGES)?); Ok(Self { args }) } pub fn compile(&self, src: &Path, out: &Path) -> Result<(), Box> { let mut cmd = self.to_command(); cmd.arg(src); cmd.arg("-o"); cmd.arg(out); let status = cmd.spawn()?.wait()?; if !status.success() { return Err(format!("compilation command {cmd:?} failed, {status}").into()); } Ok(()) } fn to_command(&self) -> Command { let mut cmd = Command::new(&self.args[0]); cmd.args(&self.args[1..]); cmd } } fn get_var(name: &str, default: &str) -> Result, Box> { match env::var(name) { Ok(value) => Ok(shell_words::split(&value)?), Err(env::VarError::NotPresent) => Ok(shell_words::split(default)?), Err(err) => Err(format!("{name} {err}").into()), } } fn pkg_config_cflags(packages: &[&str]) -> Result, Box> { if packages.is_empty() { return Ok(Vec::new()); } let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config")); let mut cmd = Command::new(pkg_config); cmd.arg("--cflags"); cmd.args(packages); cmd.stderr(Stdio::inherit()); let out = cmd.output()?; if !out.status.success() { let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); } let stdout = str::from_utf8(&out.stdout)?; Ok(shell_words::split(stdout.trim())?) } #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Layout { size: usize, alignment: usize, } #[derive(Copy, Clone, Debug, Default, Eq, PartialEq)] struct Results { /// Number of successfully completed tests. passed: usize, /// Total number of failed tests (including those that failed to compile). failed: usize, } impl Results { fn record_passed(&mut self) { self.passed += 1; } fn record_failed(&mut self) { self.failed += 1; } fn summary(&self) -> String { format!("{} passed; {} failed", self.passed, self.failed) } fn expect_total_success(&self) { if self.failed == 0 { println!("OK: {}", self.summary()); } else { panic!("FAILED: {}", self.summary()); }; } } #[test] fn cross_validate_constants_with_c() { let mut c_constants: Vec<(String, String)> = Vec::new(); for l in get_c_output("constant").unwrap().lines() { let (name, value) = l.split_once(';').expect("Missing ';' separator"); c_constants.push((name.to_owned(), value.to_owned())); } let mut results = Results::default(); for ((rust_name, rust_value), (c_name, c_value)) in RUST_CONSTANTS.iter().zip(c_constants.iter()) { if rust_name != c_name { results.record_failed(); eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); continue; } if rust_value != c_value { results.record_failed(); eprintln!( "Constant value mismatch for {rust_name}\nRust: {rust_value:?}\nC: {c_value:?}", ); continue; } results.record_passed(); } results.expect_total_success(); } #[test] fn cross_validate_layout_with_c() { let mut c_layouts = Vec::new(); for l in get_c_output("layout").unwrap().lines() { let (name, value) = l.split_once(';').expect("Missing first ';' separator"); let (size, alignment) = value.split_once(';').expect("Missing second ';' separator"); let size = size.parse().expect("Failed to parse size"); let alignment = alignment.parse().expect("Failed to parse alignment"); c_layouts.push((name.to_owned(), Layout { size, alignment })); } let mut results = Results::default(); for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter()) { if rust_name != c_name { results.record_failed(); eprintln!("Name mismatch:\nRust: {rust_name:?}\nC: {c_name:?}"); continue; } if rust_layout != c_layout { results.record_failed(); eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",); continue; } results.record_passed(); } results.expect_total_success(); } fn get_c_output(name: &str) -> Result> { let tmpdir = Builder::new().prefix("abi").tempdir()?; let exe = tmpdir.path().join(name); let c_file = Path::new("tests").join(name).with_extension("c"); let cc = Compiler::new().expect("configured compiler"); cc.compile(&c_file, &exe)?; let mut cmd = Command::new(exe); cmd.stderr(Stdio::inherit()); let out = cmd.output()?; if !out.status.success() { let (status, stdout) = (out.status, String::from_utf8_lossy(&out.stdout)); return Err(format!("command {cmd:?} failed, {status:?}\nstdout: {stdout}").into()); } Ok(String::from_utf8(out.stdout)?) } const RUST_LAYOUTS: &[(&str, Layout)] = &[ ( "GstAllocationParams", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstAllocator", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstAllocatorClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstAllocatorFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBin", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBinClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBinFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBuffer", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferCopyFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferMapInfo", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferPool", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferPoolAcquireFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferPoolAcquireParams", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferPoolClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBufferingMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBus", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBusClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBusFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstBusSyncReply", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstByteArrayInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstCaps", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstCapsFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstCapsIntersectMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstChildProxyInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClock", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockEntry", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockEntryType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockID", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockReturn", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockTime", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockTimeDiff", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstClockType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstControlBinding", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstControlBindingClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstControlSource", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstControlSourceClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstCoreError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstCustomMeta", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDebugCategory", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDebugColorFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDebugColorMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDebugGraphDetails", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDebugLevel", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDevice", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDeviceClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDeviceMonitor", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDeviceMonitorClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDeviceProvider", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstDeviceProviderClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstElement", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstElementClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstElementFactoryListType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstElementFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstEvent", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstEventType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstEventTypeFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstFlowReturn", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstFormat", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstFormatDefinition", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstGapFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstGhostPad", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstGhostPadClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstIterator", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstIteratorItem", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstIteratorResult", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstLibraryError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstLockFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMapFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMapInfo", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMemory", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMemoryFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMemoryMapInfo", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMessage", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMessageType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMeta", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMetaFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMetaInfo", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMetaTransformCopy", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMiniObject", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstMiniObjectFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstObject", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstObjectClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstObjectFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPad", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadDirection", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadLinkCheck", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadLinkReturn", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadPresence", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadProbeInfo", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadProbeReturn", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadProbeType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadTemplate", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadTemplateClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPadTemplateFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstParamSpecArray", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstParamSpecFraction", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstParentBufferMeta", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstParseError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstParseFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPipeline", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPipelineClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPipelineFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPluginAPIFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPluginDependencyFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPluginDesc", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPluginError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPluginFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPollFD", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPresetInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstProgressType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPromise", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstPromiseResult", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstProtectionMeta", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstProxyPad", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstProxyPadClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstQOSType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstQuery", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstQueryType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstQueryTypeFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstRank", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstReferenceTimestampMeta", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstRegistry", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstRegistryClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstResourceError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSchedulingFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSearchMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSeekFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSeekType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSegment", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSegmentFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSerializeFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSharedTaskPool", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSharedTaskPoolClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStackTraceFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstState", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStateChange", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStateChangeReturn", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStaticCaps", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStaticPadTemplate", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStream", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamCollection", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamCollectionClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamStatusType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStreamType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStructure", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstStructureChangeType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSystemClock", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstSystemClockClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTagFlag", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTagList", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTagMergeMode", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTagScope", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTagSetterInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTask", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTaskClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTaskPool", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTaskPoolClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTaskState", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTimedValue", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTocEntryType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTocLoopType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTocScope", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTocSetterInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTracer", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTracerClass", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTracerValueFlags", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTracerValueScope", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTypeFind", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstTypeFindProbability", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstURIError", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstURIHandlerInterface", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstURIType", Layout { size: size_of::(), alignment: align_of::(), }, ), ( "GstValueTable", Layout { size: size_of::(), alignment: align_of::(), }, ), ]; const RUST_CONSTANTS: &[(&str, &str)] = &[ ("(guint) GST_ALLOCATOR_FLAG_CUSTOM_ALLOC", "16"), ("(guint) GST_ALLOCATOR_FLAG_LAST", "1048576"), ("(guint) GST_ALLOCATOR_FLAG_NO_COPY", "32"), ("GST_ALLOCATOR_SYSMEM", "SystemMemory"), ("(guint) GST_BIN_FLAG_LAST", "524288"), ("(guint) GST_BIN_FLAG_NO_RESYNC", "16384"), ("(guint) GST_BIN_FLAG_STREAMS_AWARE", "32768"), ("(gint) GST_BUFFERING_DOWNLOAD", "1"), ("(gint) GST_BUFFERING_LIVE", "3"), ("(gint) GST_BUFFERING_STREAM", "0"), ("(gint) GST_BUFFERING_TIMESHIFT", "2"), ("GST_BUFFER_COPY_ALL", "15"), ("(guint) GST_BUFFER_COPY_DEEP", "32"), ("(guint) GST_BUFFER_COPY_FLAGS", "1"), ("(guint) GST_BUFFER_COPY_MEMORY", "8"), ("(guint) GST_BUFFER_COPY_MERGE", "16"), ("(guint) GST_BUFFER_COPY_META", "4"), ("GST_BUFFER_COPY_METADATA", "7"), ("(guint) GST_BUFFER_COPY_NONE", "0"), ("(guint) GST_BUFFER_COPY_TIMESTAMPS", "2"), ("(guint) GST_BUFFER_FLAG_CORRUPTED", "256"), ("(guint) GST_BUFFER_FLAG_DECODE_ONLY", "32"), ("(guint) GST_BUFFER_FLAG_DELTA_UNIT", "8192"), ("(guint) GST_BUFFER_FLAG_DISCONT", "64"), ("(guint) GST_BUFFER_FLAG_DROPPABLE", "4096"), ("(guint) GST_BUFFER_FLAG_GAP", "2048"), ("(guint) GST_BUFFER_FLAG_HEADER", "1024"), ("(guint) GST_BUFFER_FLAG_LAST", "1048576"), ("(guint) GST_BUFFER_FLAG_LIVE", "16"), ("(guint) GST_BUFFER_FLAG_MARKER", "512"), ("(guint) GST_BUFFER_FLAG_NON_DROPPABLE", "65536"), ("(guint) GST_BUFFER_FLAG_RESYNC", "128"), ("(guint) GST_BUFFER_FLAG_SYNC_AFTER", "32768"), ("(guint) GST_BUFFER_FLAG_TAG_MEMORY", "16384"), ("GST_BUFFER_OFFSET_NONE", "18446744073709551615"), ("(guint) GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT", "4"), ("(guint) GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT", "2"), ("(guint) GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT", "1"), ("(guint) GST_BUFFER_POOL_ACQUIRE_FLAG_LAST", "65536"), ("(guint) GST_BUFFER_POOL_ACQUIRE_FLAG_NONE", "0"), ("(gint) GST_BUS_ASYNC", "2"), ("(gint) GST_BUS_DROP", "0"), ("(guint) GST_BUS_FLAG_LAST", "32"), ("(guint) GST_BUS_FLUSHING", "16"), ("(gint) GST_BUS_PASS", "1"), ("GST_CAN_INLINE", "1"), ( "GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY", "memory:SystemMemory", ), ("(guint) GST_CAPS_FLAG_ANY", "16"), ("(gint) GST_CAPS_INTERSECT_FIRST", "1"), ("(gint) GST_CAPS_INTERSECT_ZIG_ZAG", "0"), ("(gint) GST_CLOCK_BADTIME", "4"), ("(gint) GST_CLOCK_BUSY", "3"), ("(gint) GST_CLOCK_DONE", "7"), ("(gint) GST_CLOCK_EARLY", "1"), ("(gint) GST_CLOCK_ENTRY_PERIODIC", "1"), ("(gint) GST_CLOCK_ENTRY_SINGLE", "0"), ("(gint) GST_CLOCK_ERROR", "5"), ("(guint) GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC", "128"), ("(guint) GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC", "64"), ("(guint) GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC", "32"), ("(guint) GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC", "16"), ("(guint) GST_CLOCK_FLAG_CAN_SET_MASTER", "512"), ("(guint) GST_CLOCK_FLAG_CAN_SET_RESOLUTION", "256"), ("(guint) GST_CLOCK_FLAG_LAST", "4096"), ("(guint) GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC", "1024"), ("(gint) GST_CLOCK_OK", "0"), ("GST_CLOCK_TIME_NONE", "18446744073709551615"), ("(gint) GST_CLOCK_TYPE_MONOTONIC", "1"), ("(gint) GST_CLOCK_TYPE_OTHER", "2"), ("(gint) GST_CLOCK_TYPE_REALTIME", "0"), ("(gint) GST_CLOCK_TYPE_TAI", "3"), ("(gint) GST_CLOCK_UNSCHEDULED", "2"), ("(gint) GST_CLOCK_UNSUPPORTED", "6"), ("(gint) GST_CORE_ERROR_CAPS", "10"), ("(gint) GST_CORE_ERROR_CLOCK", "13"), ("(gint) GST_CORE_ERROR_DISABLED", "14"), ("(gint) GST_CORE_ERROR_EVENT", "8"), ("(gint) GST_CORE_ERROR_FAILED", "1"), ("(gint) GST_CORE_ERROR_MISSING_PLUGIN", "12"), ("(gint) GST_CORE_ERROR_NEGOTIATION", "7"), ("(gint) GST_CORE_ERROR_NOT_IMPLEMENTED", "3"), ("(gint) GST_CORE_ERROR_NUM_ERRORS", "15"), ("(gint) GST_CORE_ERROR_PAD", "5"), ("(gint) GST_CORE_ERROR_SEEK", "9"), ("(gint) GST_CORE_ERROR_STATE_CHANGE", "4"), ("(gint) GST_CORE_ERROR_TAG", "11"), ("(gint) GST_CORE_ERROR_THREAD", "6"), ("(gint) GST_CORE_ERROR_TOO_LAZY", "2"), ("(guint) GST_DEBUG_BG_BLACK", "0"), ("(guint) GST_DEBUG_BG_BLUE", "64"), ("(guint) GST_DEBUG_BG_CYAN", "96"), ("(guint) GST_DEBUG_BG_GREEN", "32"), ("(guint) GST_DEBUG_BG_MAGENTA", "80"), ("GST_DEBUG_BG_MASK", "240"), ("(guint) GST_DEBUG_BG_RED", "16"), ("(guint) GST_DEBUG_BG_WHITE", "112"), ("(guint) GST_DEBUG_BG_YELLOW", "48"), ("(guint) GST_DEBUG_BOLD", "256"), ("(gint) GST_DEBUG_COLOR_MODE_OFF", "0"), ("(gint) GST_DEBUG_COLOR_MODE_ON", "1"), ("(gint) GST_DEBUG_COLOR_MODE_UNIX", "2"), ("(guint) GST_DEBUG_FG_BLACK", "0"), ("(guint) GST_DEBUG_FG_BLUE", "4"), ("(guint) GST_DEBUG_FG_CYAN", "6"), ("(guint) GST_DEBUG_FG_GREEN", "2"), ("(guint) GST_DEBUG_FG_MAGENTA", "5"), ("GST_DEBUG_FG_MASK", "15"), ("(guint) GST_DEBUG_FG_RED", "1"), ("(guint) GST_DEBUG_FG_WHITE", "7"), ("(guint) GST_DEBUG_FG_YELLOW", "3"), ("GST_DEBUG_FORMAT_MASK", "65280"), ("(guint) GST_DEBUG_GRAPH_SHOW_ALL", "15"), ("(guint) GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS", "2"), ("(guint) GST_DEBUG_GRAPH_SHOW_FULL_PARAMS", "16"), ("(guint) GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE", "1"), ("(guint) GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS", "4"), ("(guint) GST_DEBUG_GRAPH_SHOW_STATES", "8"), ("(guint) GST_DEBUG_GRAPH_SHOW_VERBOSE", "4294967295"), ("(guint) GST_DEBUG_UNDERLINE", "512"), ("GST_ELEMENT_FACTORY_KLASS_DECODER", "Decoder"), ("GST_ELEMENT_FACTORY_KLASS_DECRYPTOR", "Decryptor"), ("GST_ELEMENT_FACTORY_KLASS_DEMUXER", "Demuxer"), ("GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER", "Depayloader"), ("GST_ELEMENT_FACTORY_KLASS_ENCODER", "Encoder"), ("GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR", "Encryptor"), ("GST_ELEMENT_FACTORY_KLASS_FORMATTER", "Formatter"), ("GST_ELEMENT_FACTORY_KLASS_HARDWARE", "Hardware"), ("GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO", "Audio"), ("GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE", "Image"), ("GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA", "Metadata"), ("GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE", "Subtitle"), ("GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO", "Video"), ("GST_ELEMENT_FACTORY_KLASS_MUXER", "Muxer"), ("GST_ELEMENT_FACTORY_KLASS_PARSER", "Parser"), ("GST_ELEMENT_FACTORY_KLASS_PAYLOADER", "Payloader"), ("GST_ELEMENT_FACTORY_KLASS_SINK", "Sink"), ("GST_ELEMENT_FACTORY_KLASS_SRC", "Source"), ("GST_ELEMENT_FACTORY_TYPE_ANY", "562949953421311"), ( "GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS", "3940649673949188", ), ("GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER", "1125899906842626"), ("GST_ELEMENT_FACTORY_TYPE_DECODABLE", "1377"), ("GST_ELEMENT_FACTORY_TYPE_DECODER", "1"), ("GST_ELEMENT_FACTORY_TYPE_DECRYPTOR", "1024"), ("GST_ELEMENT_FACTORY_TYPE_DEMUXER", "32"), ("GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER", "256"), ("GST_ELEMENT_FACTORY_TYPE_ENCODER", "2"), ("GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR", "2048"), ("GST_ELEMENT_FACTORY_TYPE_FORMATTER", "512"), ("GST_ELEMENT_FACTORY_TYPE_HARDWARE", "4096"), ("GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS", "281474976710656"), ("GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY", "18446462598732840960"), ("GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO", "1125899906842624"), ("GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE", "2251799813685248"), ( "GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA", "9007199254740992", ), ( "GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE", "4503599627370496", ), ("GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO", "562949953421312"), ("GST_ELEMENT_FACTORY_TYPE_MUXER", "16"), ("GST_ELEMENT_FACTORY_TYPE_PARSER", "64"), ("GST_ELEMENT_FACTORY_TYPE_PAYLOADER", "128"), ("GST_ELEMENT_FACTORY_TYPE_SINK", "4"), ("GST_ELEMENT_FACTORY_TYPE_SRC", "8"), ("GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER", "8192"), ("GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER", "2814749767106562"), ("(guint) GST_ELEMENT_FLAG_INDEXABLE", "512"), ("(guint) GST_ELEMENT_FLAG_LAST", "16384"), ("(guint) GST_ELEMENT_FLAG_LOCKED_STATE", "16"), ("(guint) GST_ELEMENT_FLAG_PROVIDE_CLOCK", "128"), ("(guint) GST_ELEMENT_FLAG_REQUIRE_CLOCK", "256"), ("(guint) GST_ELEMENT_FLAG_SINK", "32"), ("(guint) GST_ELEMENT_FLAG_SOURCE", "64"), ("GST_ELEMENT_METADATA_AUTHOR", "author"), ("GST_ELEMENT_METADATA_DESCRIPTION", "description"), ("GST_ELEMENT_METADATA_DOC_URI", "doc-uri"), ("GST_ELEMENT_METADATA_ICON_NAME", "icon-name"), ("GST_ELEMENT_METADATA_KLASS", "klass"), ("GST_ELEMENT_METADATA_LONGNAME", "long-name"), ("(gint) GST_EVENT_BUFFERSIZE", "23054"), ("(gint) GST_EVENT_CAPS", "12814"), ("(gint) GST_EVENT_CUSTOM_BOTH", "79367"), ("(gint) GST_EVENT_CUSTOM_BOTH_OOB", "81923"), ("(gint) GST_EVENT_CUSTOM_DOWNSTREAM", "71686"), ("(gint) GST_EVENT_CUSTOM_DOWNSTREAM_OOB", "74242"), ("(gint) GST_EVENT_CUSTOM_DOWNSTREAM_STICKY", "76830"), ("(gint) GST_EVENT_CUSTOM_UPSTREAM", "69121"), ("(gint) GST_EVENT_EOS", "28174"), ("(gint) GST_EVENT_FLUSH_START", "2563"), ("(gint) GST_EVENT_FLUSH_STOP", "5127"), ("(gint) GST_EVENT_GAP", "40966"), ("(gint) GST_EVENT_INSTANT_RATE_CHANGE", "46090"), ("(gint) GST_EVENT_INSTANT_RATE_SYNC_TIME", "66817"), ("(gint) GST_EVENT_LATENCY", "56321"), ("(gint) GST_EVENT_NAVIGATION", "53761"), ("GST_EVENT_NUM_SHIFT", "8"), ("(gint) GST_EVENT_PROTECTION", "33310"), ("(gint) GST_EVENT_QOS", "48641"), ("(gint) GST_EVENT_RECONFIGURE", "61441"), ("(gint) GST_EVENT_SEEK", "51201"), ("(gint) GST_EVENT_SEGMENT", "17934"), ("(gint) GST_EVENT_SEGMENT_DONE", "38406"), ("(gint) GST_EVENT_SELECT_STREAMS", "66561"), ("(gint) GST_EVENT_SINK_MESSAGE", "25630"), ("(gint) GST_EVENT_STEP", "58881"), ("(gint) GST_EVENT_STREAM_COLLECTION", "19230"), ("(gint) GST_EVENT_STREAM_GROUP_DONE", "26894"), ("(gint) GST_EVENT_STREAM_START", "10254"), ("(gint) GST_EVENT_TAG", "20510"), ("(gint) GST_EVENT_TOC", "30750"), ("(gint) GST_EVENT_TOC_SELECT", "64001"), ("GST_EVENT_TYPE_BOTH", "3"), ("(guint) GST_EVENT_TYPE_DOWNSTREAM", "2"), ("(guint) GST_EVENT_TYPE_SERIALIZED", "4"), ("(guint) GST_EVENT_TYPE_STICKY", "8"), ("(guint) GST_EVENT_TYPE_STICKY_MULTI", "16"), ("(guint) GST_EVENT_TYPE_UPSTREAM", "1"), ("(gint) GST_EVENT_UNKNOWN", "0"), ("GST_FLAG_SET_MASK_EXACT", "4294967295"), ("(gint) GST_FLOW_CUSTOM_ERROR", "-100"), ("(gint) GST_FLOW_CUSTOM_ERROR_1", "-101"), ("(gint) GST_FLOW_CUSTOM_ERROR_2", "-102"), ("(gint) GST_FLOW_CUSTOM_SUCCESS", "100"), ("(gint) GST_FLOW_CUSTOM_SUCCESS_1", "101"), ("(gint) GST_FLOW_CUSTOM_SUCCESS_2", "102"), ("(gint) GST_FLOW_EOS", "-3"), ("(gint) GST_FLOW_ERROR", "-5"), ("(gint) GST_FLOW_FLUSHING", "-2"), ("(gint) GST_FLOW_NOT_LINKED", "-1"), ("(gint) GST_FLOW_NOT_NEGOTIATED", "-4"), ("(gint) GST_FLOW_NOT_SUPPORTED", "-6"), ("(gint) GST_FLOW_OK", "0"), ("(gint) GST_FORMAT_BUFFERS", "4"), ("(gint) GST_FORMAT_BYTES", "2"), ("(gint) GST_FORMAT_DEFAULT", "1"), ("(gint) GST_FORMAT_PERCENT", "5"), ("GST_FORMAT_PERCENT_MAX", "1000000"), ("GST_FORMAT_PERCENT_SCALE", "10000"), ("(gint) GST_FORMAT_TIME", "3"), ("(gint) GST_FORMAT_UNDEFINED", "0"), ("(guint) GST_GAP_FLAG_MISSING_DATA", "1"), ("GST_GROUP_ID_INVALID", "0"), ("(gint) GST_ITERATOR_DONE", "0"), ("(gint) GST_ITERATOR_ERROR", "3"), ("(gint) GST_ITERATOR_ITEM_END", "2"), ("(gint) GST_ITERATOR_ITEM_PASS", "1"), ("(gint) GST_ITERATOR_ITEM_SKIP", "0"), ("(gint) GST_ITERATOR_OK", "1"), ("(gint) GST_ITERATOR_RESYNC", "2"), ("(gint) GST_LEVEL_COUNT", "10"), ("(gint) GST_LEVEL_DEBUG", "5"), ("(gint) GST_LEVEL_ERROR", "1"), ("(gint) GST_LEVEL_FIXME", "3"), ("(gint) GST_LEVEL_INFO", "4"), ("(gint) GST_LEVEL_LOG", "6"), ("(gint) GST_LEVEL_MEMDUMP", "9"), ("(gint) GST_LEVEL_NONE", "0"), ("(gint) GST_LEVEL_TRACE", "7"), ("(gint) GST_LEVEL_WARNING", "2"), ("(gint) GST_LIBRARY_ERROR_ENCODE", "6"), ("(gint) GST_LIBRARY_ERROR_FAILED", "1"), ("(gint) GST_LIBRARY_ERROR_INIT", "3"), ("(gint) GST_LIBRARY_ERROR_NUM_ERRORS", "7"), ("(gint) GST_LIBRARY_ERROR_SETTINGS", "5"), ("(gint) GST_LIBRARY_ERROR_SHUTDOWN", "4"), ("(gint) GST_LIBRARY_ERROR_TOO_LAZY", "2"), ("GST_LICENSE_UNKNOWN", "unknown"), ("(guint) GST_LOCK_FLAG_EXCLUSIVE", "4"), ("(guint) GST_LOCK_FLAG_LAST", "256"), ("(guint) GST_LOCK_FLAG_READ", "1"), ("GST_LOCK_FLAG_READWRITE", "3"), ("(guint) GST_LOCK_FLAG_WRITE", "2"), ("(guint) GST_MAP_FLAG_LAST", "65536"), ("(guint) GST_MAP_READ", "1"), ("GST_MAP_READWRITE", "3"), ("(guint) GST_MAP_WRITE", "2"), ("(guint) GST_MEMORY_FLAG_LAST", "1048576"), ("(guint) GST_MEMORY_FLAG_NOT_MAPPABLE", "256"), ("(guint) GST_MEMORY_FLAG_NO_SHARE", "16"), ("(guint) GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS", "128"), ("(guint) GST_MEMORY_FLAG_READONLY", "2"), ("(guint) GST_MEMORY_FLAG_ZERO_PADDED", "64"), ("(guint) GST_MEMORY_FLAG_ZERO_PREFIXED", "32"), ("(guint) GST_MESSAGE_ANY", "4294967295"), ("(guint) GST_MESSAGE_APPLICATION", "16384"), ("(guint) GST_MESSAGE_ASYNC_DONE", "2097152"), ("(guint) GST_MESSAGE_ASYNC_START", "1048576"), ("(guint) GST_MESSAGE_BUFFERING", "32"), ("(guint) GST_MESSAGE_CLOCK_LOST", "1024"), ("(guint) GST_MESSAGE_CLOCK_PROVIDE", "512"), ("(guint) GST_MESSAGE_DEVICE_ADDED", "2147483649"), ("(guint) GST_MESSAGE_DEVICE_CHANGED", "2147483655"), ("(guint) GST_MESSAGE_DEVICE_REMOVED", "2147483650"), ("(guint) GST_MESSAGE_DURATION_CHANGED", "262144"), ("(guint) GST_MESSAGE_ELEMENT", "32768"), ("(guint) GST_MESSAGE_EOS", "1"), ("(guint) GST_MESSAGE_ERROR", "2"), ("(guint) GST_MESSAGE_EXTENDED", "2147483648"), ("(guint) GST_MESSAGE_HAVE_CONTEXT", "1073741824"), ("(guint) GST_MESSAGE_INFO", "8"), ("(guint) GST_MESSAGE_INSTANT_RATE_REQUEST", "2147483656"), ("(guint) GST_MESSAGE_LATENCY", "524288"), ("(guint) GST_MESSAGE_NEED_CONTEXT", "536870912"), ("(guint) GST_MESSAGE_NEW_CLOCK", "2048"), ("(guint) GST_MESSAGE_PROGRESS", "33554432"), ("(guint) GST_MESSAGE_PROPERTY_NOTIFY", "2147483651"), ("(guint) GST_MESSAGE_QOS", "16777216"), ("(guint) GST_MESSAGE_REDIRECT", "2147483654"), ("(guint) GST_MESSAGE_REQUEST_STATE", "4194304"), ("(guint) GST_MESSAGE_RESET_TIME", "134217728"), ("(guint) GST_MESSAGE_SEGMENT_DONE", "131072"), ("(guint) GST_MESSAGE_SEGMENT_START", "65536"), ("(guint) GST_MESSAGE_STATE_CHANGED", "64"), ("(guint) GST_MESSAGE_STATE_DIRTY", "128"), ("(guint) GST_MESSAGE_STEP_DONE", "256"), ("(guint) GST_MESSAGE_STEP_START", "8388608"), ("(guint) GST_MESSAGE_STREAMS_SELECTED", "2147483653"), ("(guint) GST_MESSAGE_STREAM_COLLECTION", "2147483652"), ("(guint) GST_MESSAGE_STREAM_START", "268435456"), ("(guint) GST_MESSAGE_STREAM_STATUS", "8192"), ("(guint) GST_MESSAGE_STRUCTURE_CHANGE", "4096"), ("(guint) GST_MESSAGE_TAG", "16"), ("(guint) GST_MESSAGE_TOC", "67108864"), ("(guint) GST_MESSAGE_UNKNOWN", "0"), ("(guint) GST_MESSAGE_WARNING", "4"), ("(guint) GST_META_FLAG_LAST", "65536"), ("(guint) GST_META_FLAG_LOCKED", "4"), ("(guint) GST_META_FLAG_NONE", "0"), ("(guint) GST_META_FLAG_POOLED", "2"), ("(guint) GST_META_FLAG_READONLY", "1"), ("GST_META_TAG_MEMORY_REFERENCE_STR", "memory-reference"), ("GST_META_TAG_MEMORY_STR", "memory"), ("(guint) GST_MINI_OBJECT_FLAG_LAST", "16"), ("(guint) GST_MINI_OBJECT_FLAG_LOCKABLE", "1"), ("(guint) GST_MINI_OBJECT_FLAG_LOCK_READONLY", "2"), ("(guint) GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED", "4"), ("GST_MSECOND", "1000000"), ("GST_NSECOND", "1"), ("(guint) GST_OBJECT_FLAG_CONSTRUCTED", "2"), ("(guint) GST_OBJECT_FLAG_LAST", "16"), ("(guint) GST_OBJECT_FLAG_MAY_BE_LEAKED", "1"), ("(gint) GST_PAD_ALWAYS", "0"), ("(guint) GST_PAD_FLAG_ACCEPT_INTERSECT", "32768"), ("(guint) GST_PAD_FLAG_ACCEPT_TEMPLATE", "65536"), ("(guint) GST_PAD_FLAG_BLOCKED", "16"), ("(guint) GST_PAD_FLAG_BLOCKING", "128"), ("(guint) GST_PAD_FLAG_EOS", "64"), ("(guint) GST_PAD_FLAG_FIXED_CAPS", "2048"), ("(guint) GST_PAD_FLAG_FLUSHING", "32"), ("(guint) GST_PAD_FLAG_LAST", "1048576"), ("(guint) GST_PAD_FLAG_NEED_PARENT", "256"), ("(guint) GST_PAD_FLAG_NEED_RECONFIGURE", "512"), ("(guint) GST_PAD_FLAG_PENDING_EVENTS", "1024"), ("(guint) GST_PAD_FLAG_PROXY_ALLOCATION", "8192"), ("(guint) GST_PAD_FLAG_PROXY_CAPS", "4096"), ("(guint) GST_PAD_FLAG_PROXY_SCHEDULING", "16384"), ("(guint) GST_PAD_LINK_CHECK_CAPS", "4"), ("(guint) GST_PAD_LINK_CHECK_DEFAULT", "5"), ("(guint) GST_PAD_LINK_CHECK_HIERARCHY", "1"), ("(guint) GST_PAD_LINK_CHECK_NOTHING", "0"), ("(guint) GST_PAD_LINK_CHECK_NO_RECONFIGURE", "8"), ("(guint) GST_PAD_LINK_CHECK_TEMPLATE_CAPS", "2"), ("(gint) GST_PAD_LINK_NOFORMAT", "-4"), ("(gint) GST_PAD_LINK_NOSCHED", "-5"), ("(gint) GST_PAD_LINK_OK", "0"), ("(gint) GST_PAD_LINK_REFUSED", "-6"), ("(gint) GST_PAD_LINK_WAS_LINKED", "-2"), ("(gint) GST_PAD_LINK_WRONG_DIRECTION", "-3"), ("(gint) GST_PAD_LINK_WRONG_HIERARCHY", "-1"), ("(gint) GST_PAD_MODE_NONE", "0"), ("(gint) GST_PAD_MODE_PULL", "2"), ("(gint) GST_PAD_MODE_PUSH", "1"), ("(gint) GST_PAD_PROBE_DROP", "0"), ("(gint) GST_PAD_PROBE_HANDLED", "4"), ("(gint) GST_PAD_PROBE_OK", "1"), ("(gint) GST_PAD_PROBE_PASS", "3"), ("(gint) GST_PAD_PROBE_REMOVE", "2"), ("(guint) GST_PAD_PROBE_TYPE_ALL_BOTH", "1776"), ("(guint) GST_PAD_PROBE_TYPE_BLOCK", "2"), ("(guint) GST_PAD_PROBE_TYPE_BLOCKING", "3"), ("(guint) GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM", "114"), ("(guint) GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM", "130"), ("(guint) GST_PAD_PROBE_TYPE_BUFFER", "16"), ("(guint) GST_PAD_PROBE_TYPE_BUFFER_LIST", "32"), ("(guint) GST_PAD_PROBE_TYPE_DATA_BOTH", "240"), ("(guint) GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM", "112"), ("(guint) GST_PAD_PROBE_TYPE_DATA_UPSTREAM", "128"), ("(guint) GST_PAD_PROBE_TYPE_EVENT_BOTH", "192"), ("(guint) GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM", "64"), ("(guint) GST_PAD_PROBE_TYPE_EVENT_FLUSH", "256"), ("(guint) GST_PAD_PROBE_TYPE_EVENT_UPSTREAM", "128"), ("(guint) GST_PAD_PROBE_TYPE_IDLE", "1"), ("(guint) GST_PAD_PROBE_TYPE_INVALID", "0"), ("(guint) GST_PAD_PROBE_TYPE_PULL", "8192"), ("(guint) GST_PAD_PROBE_TYPE_PUSH", "4096"), ("(guint) GST_PAD_PROBE_TYPE_QUERY_BOTH", "1536"), ("(guint) GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM", "512"), ("(guint) GST_PAD_PROBE_TYPE_QUERY_UPSTREAM", "1024"), ("(guint) GST_PAD_PROBE_TYPE_SCHEDULING", "12288"), ("(gint) GST_PAD_REQUEST", "2"), ("(gint) GST_PAD_SINK", "2"), ("(gint) GST_PAD_SOMETIMES", "1"), ("(gint) GST_PAD_SRC", "1"), ("(guint) GST_PAD_TEMPLATE_FLAG_LAST", "256"), ("(gint) GST_PAD_UNKNOWN", "0"), ("GST_PARAM_CONDITIONALLY_AVAILABLE", "16384"), ("GST_PARAM_CONTROLLABLE", "512"), ("GST_PARAM_DOC_SHOW_DEFAULT", "8192"), ("GST_PARAM_MUTABLE_PAUSED", "2048"), ("GST_PARAM_MUTABLE_PLAYING", "4096"), ("GST_PARAM_MUTABLE_READY", "1024"), ("GST_PARAM_USER_SHIFT", "65536"), ("(gint) GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY", "4"), ("(gint) GST_PARSE_ERROR_DELAYED_LINK", "7"), ("(gint) GST_PARSE_ERROR_EMPTY", "6"), ("(gint) GST_PARSE_ERROR_EMPTY_BIN", "5"), ("(gint) GST_PARSE_ERROR_LINK", "3"), ("(gint) GST_PARSE_ERROR_NO_SUCH_ELEMENT", "1"), ("(gint) GST_PARSE_ERROR_NO_SUCH_PROPERTY", "2"), ("(gint) GST_PARSE_ERROR_SYNTAX", "0"), ("(guint) GST_PARSE_FLAG_FATAL_ERRORS", "1"), ("(guint) GST_PARSE_FLAG_NONE", "0"), ("(guint) GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS", "2"), ("(guint) GST_PARSE_FLAG_PLACE_IN_BIN", "4"), ("(guint) GST_PIPELINE_FLAG_FIXED_CLOCK", "524288"), ("(guint) GST_PIPELINE_FLAG_LAST", "8388608"), ("(guint) GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS", "1"), ( "(guint) GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX", "8", ), ( "(guint) GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX", "4", ), ("(guint) GST_PLUGIN_DEPENDENCY_FLAG_NONE", "0"), ( "(guint) GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY", "2", ), ( "(guint) GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE", "16", ), ("(guint) GST_PLUGIN_DEPENDENCY_FLAG_RECURSE", "1"), ("(gint) GST_PLUGIN_ERROR_DEPENDENCIES", "1"), ("(gint) GST_PLUGIN_ERROR_MODULE", "0"), ("(gint) GST_PLUGIN_ERROR_NAME_MISMATCH", "2"), ("(guint) GST_PLUGIN_FLAG_BLACKLISTED", "32"), ("(guint) GST_PLUGIN_FLAG_CACHED", "16"), ("(gint) GST_PROGRESS_TYPE_CANCELED", "3"), ("(gint) GST_PROGRESS_TYPE_COMPLETE", "2"), ("(gint) GST_PROGRESS_TYPE_CONTINUE", "1"), ("(gint) GST_PROGRESS_TYPE_ERROR", "4"), ("(gint) GST_PROGRESS_TYPE_START", "0"), ("(gint) GST_PROMISE_RESULT_EXPIRED", "3"), ("(gint) GST_PROMISE_RESULT_INTERRUPTED", "1"), ("(gint) GST_PROMISE_RESULT_PENDING", "0"), ("(gint) GST_PROMISE_RESULT_REPLIED", "2"), ("GST_PROTECTION_SYSTEM_ID_CAPS_FIELD", "protection-system"), ( "GST_PROTECTION_UNSPECIFIED_SYSTEM_ID", "unspecified-system-id", ), ("(gint) GST_QOS_TYPE_OVERFLOW", "0"), ("(gint) GST_QOS_TYPE_THROTTLE", "2"), ("(gint) GST_QOS_TYPE_UNDERFLOW", "1"), ("(gint) GST_QUERY_ACCEPT_CAPS", "40963"), ("(gint) GST_QUERY_ALLOCATION", "35846"), ("(gint) GST_QUERY_BITRATE", "51202"), ("(gint) GST_QUERY_BUFFERING", "28163"), ("(gint) GST_QUERY_CAPS", "43523"), ("(gint) GST_QUERY_CONTEXT", "48643"), ("(gint) GST_QUERY_CONVERT", "20483"), ("(gint) GST_QUERY_CUSTOM", "30723"), ("(gint) GST_QUERY_DRAIN", "46086"), ("(gint) GST_QUERY_DURATION", "5123"), ("(gint) GST_QUERY_FORMATS", "23043"), ("(gint) GST_QUERY_JITTER", "10243"), ("(gint) GST_QUERY_LATENCY", "7683"), ("GST_QUERY_NUM_SHIFT", "8"), ("(gint) GST_QUERY_POSITION", "2563"), ("(gint) GST_QUERY_RATE", "12803"), ("(gint) GST_QUERY_SCHEDULING", "38401"), ("(gint) GST_QUERY_SEEKING", "15363"), ("(gint) GST_QUERY_SEGMENT", "17923"), ("(gint) GST_QUERY_SELECTABLE", "53763"), ("GST_QUERY_TYPE_BOTH", "3"), ("(guint) GST_QUERY_TYPE_DOWNSTREAM", "2"), ("(guint) GST_QUERY_TYPE_SERIALIZED", "4"), ("(guint) GST_QUERY_TYPE_UPSTREAM", "1"), ("(gint) GST_QUERY_UNKNOWN", "0"), ("(gint) GST_QUERY_URI", "33283"), ("(gint) GST_RANK_MARGINAL", "64"), ("(gint) GST_RANK_NONE", "0"), ("(gint) GST_RANK_PRIMARY", "256"), ("(gint) GST_RANK_SECONDARY", "128"), ("(gint) GST_RESOURCE_ERROR_BUSY", "4"), ("(gint) GST_RESOURCE_ERROR_CLOSE", "8"), ("(gint) GST_RESOURCE_ERROR_FAILED", "1"), ("(gint) GST_RESOURCE_ERROR_NOT_AUTHORIZED", "15"), ("(gint) GST_RESOURCE_ERROR_NOT_FOUND", "3"), ("(gint) GST_RESOURCE_ERROR_NO_SPACE_LEFT", "14"), ("(gint) GST_RESOURCE_ERROR_NUM_ERRORS", "16"), ("(gint) GST_RESOURCE_ERROR_OPEN_READ", "5"), ("(gint) GST_RESOURCE_ERROR_OPEN_READ_WRITE", "7"), ("(gint) GST_RESOURCE_ERROR_OPEN_WRITE", "6"), ("(gint) GST_RESOURCE_ERROR_READ", "9"), ("(gint) GST_RESOURCE_ERROR_SEEK", "11"), ("(gint) GST_RESOURCE_ERROR_SETTINGS", "13"), ("(gint) GST_RESOURCE_ERROR_SYNC", "12"), ("(gint) GST_RESOURCE_ERROR_TOO_LAZY", "2"), ("(gint) GST_RESOURCE_ERROR_WRITE", "10"), ("(guint) GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED", "4"), ("(guint) GST_SCHEDULING_FLAG_SEEKABLE", "1"), ("(guint) GST_SCHEDULING_FLAG_SEQUENTIAL", "2"), ("(gint) GST_SEARCH_MODE_AFTER", "2"), ("(gint) GST_SEARCH_MODE_BEFORE", "1"), ("(gint) GST_SEARCH_MODE_EXACT", "0"), ("GST_SECOND", "1000000000"), ("(guint) GST_SEEK_FLAG_ACCURATE", "2"), ("(guint) GST_SEEK_FLAG_FLUSH", "1"), ("(guint) GST_SEEK_FLAG_INSTANT_RATE_CHANGE", "1024"), ("(guint) GST_SEEK_FLAG_KEY_UNIT", "4"), ("(guint) GST_SEEK_FLAG_NONE", "0"), ("(guint) GST_SEEK_FLAG_SEGMENT", "8"), ("(guint) GST_SEEK_FLAG_SKIP", "16"), ("(guint) GST_SEEK_FLAG_SNAP_AFTER", "64"), ("(guint) GST_SEEK_FLAG_SNAP_BEFORE", "32"), ("(guint) GST_SEEK_FLAG_SNAP_NEAREST", "96"), ("(guint) GST_SEEK_FLAG_TRICKMODE", "16"), ("(guint) GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED", "512"), ("(guint) GST_SEEK_FLAG_TRICKMODE_KEY_UNITS", "128"), ("(guint) GST_SEEK_FLAG_TRICKMODE_NO_AUDIO", "256"), ("(gint) GST_SEEK_TYPE_END", "2"), ("(gint) GST_SEEK_TYPE_NONE", "0"), ("(gint) GST_SEEK_TYPE_SET", "1"), ("(guint) GST_SEGMENT_FLAG_NONE", "0"), ("(guint) GST_SEGMENT_FLAG_RESET", "1"), ("(guint) GST_SEGMENT_FLAG_SEGMENT", "8"), ("(guint) GST_SEGMENT_FLAG_SKIP", "16"), ("(guint) GST_SEGMENT_FLAG_TRICKMODE", "16"), ( "(guint) GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED", "512", ), ("(guint) GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS", "128"), ("(guint) GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO", "256"), ("GST_SEGMENT_INSTANT_FLAGS", "912"), ("GST_SEQNUM_INVALID", "0"), ("(guint) GST_SERIALIZE_FLAG_BACKWARD_COMPAT", "1"), ("(guint) GST_SERIALIZE_FLAG_NONE", "0"), ("(guint) GST_SERIALIZE_FLAG_STRICT", "2"), ("(guint) GST_STACK_TRACE_SHOW_FULL", "1"), ("(guint) GST_STACK_TRACE_SHOW_NONE", "0"), ("(gint) GST_STATE_CHANGE_ASYNC", "2"), ("(gint) GST_STATE_CHANGE_FAILURE", "0"), ("(gint) GST_STATE_CHANGE_NO_PREROLL", "3"), ("(gint) GST_STATE_CHANGE_NULL_TO_NULL", "9"), ("(gint) GST_STATE_CHANGE_NULL_TO_READY", "10"), ("(gint) GST_STATE_CHANGE_PAUSED_TO_PAUSED", "27"), ("(gint) GST_STATE_CHANGE_PAUSED_TO_PLAYING", "28"), ("(gint) GST_STATE_CHANGE_PAUSED_TO_READY", "26"), ("(gint) GST_STATE_CHANGE_PLAYING_TO_PAUSED", "35"), ("(gint) GST_STATE_CHANGE_PLAYING_TO_PLAYING", "36"), ("(gint) GST_STATE_CHANGE_READY_TO_NULL", "17"), ("(gint) GST_STATE_CHANGE_READY_TO_PAUSED", "19"), ("(gint) GST_STATE_CHANGE_READY_TO_READY", "18"), ("(gint) GST_STATE_CHANGE_SUCCESS", "1"), ("(gint) GST_STATE_NULL", "1"), ("(gint) GST_STATE_PAUSED", "3"), ("(gint) GST_STATE_PLAYING", "4"), ("(gint) GST_STATE_READY", "2"), ("(gint) GST_STATE_VOID_PENDING", "0"), ("(gint) GST_STREAM_ERROR_CODEC_NOT_FOUND", "6"), ("(gint) GST_STREAM_ERROR_DECODE", "7"), ("(gint) GST_STREAM_ERROR_DECRYPT", "12"), ("(gint) GST_STREAM_ERROR_DECRYPT_NOKEY", "13"), ("(gint) GST_STREAM_ERROR_DEMUX", "9"), ("(gint) GST_STREAM_ERROR_ENCODE", "8"), ("(gint) GST_STREAM_ERROR_FAILED", "1"), ("(gint) GST_STREAM_ERROR_FORMAT", "11"), ("(gint) GST_STREAM_ERROR_MUX", "10"), ("(gint) GST_STREAM_ERROR_NOT_IMPLEMENTED", "3"), ("(gint) GST_STREAM_ERROR_NUM_ERRORS", "14"), ("(gint) GST_STREAM_ERROR_TOO_LAZY", "2"), ("(gint) GST_STREAM_ERROR_TYPE_NOT_FOUND", "4"), ("(gint) GST_STREAM_ERROR_WRONG_TYPE", "5"), ("(guint) GST_STREAM_FLAG_NONE", "0"), ("(guint) GST_STREAM_FLAG_SELECT", "2"), ("(guint) GST_STREAM_FLAG_SPARSE", "1"), ("(guint) GST_STREAM_FLAG_UNSELECT", "4"), ("(gint) GST_STREAM_STATUS_TYPE_CREATE", "0"), ("(gint) GST_STREAM_STATUS_TYPE_DESTROY", "3"), ("(gint) GST_STREAM_STATUS_TYPE_ENTER", "1"), ("(gint) GST_STREAM_STATUS_TYPE_LEAVE", "2"), ("(gint) GST_STREAM_STATUS_TYPE_PAUSE", "9"), ("(gint) GST_STREAM_STATUS_TYPE_START", "8"), ("(gint) GST_STREAM_STATUS_TYPE_STOP", "10"), ("(guint) GST_STREAM_TYPE_AUDIO", "2"), ("(guint) GST_STREAM_TYPE_CONTAINER", "8"), ("(guint) GST_STREAM_TYPE_TEXT", "16"), ("(guint) GST_STREAM_TYPE_UNKNOWN", "1"), ("(guint) GST_STREAM_TYPE_VIDEO", "4"), ("(gint) GST_STRUCTURE_CHANGE_TYPE_PAD_LINK", "0"), ("(gint) GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK", "1"), ("GST_TAG_ALBUM", "album"), ("GST_TAG_ALBUM_ARTIST", "album-artist"), ("GST_TAG_ALBUM_ARTIST_SORTNAME", "album-artist-sortname"), ("GST_TAG_ALBUM_GAIN", "replaygain-album-gain"), ("GST_TAG_ALBUM_PEAK", "replaygain-album-peak"), ("GST_TAG_ALBUM_SORTNAME", "album-sortname"), ("GST_TAG_ALBUM_VOLUME_COUNT", "album-disc-count"), ("GST_TAG_ALBUM_VOLUME_NUMBER", "album-disc-number"), ("GST_TAG_APPLICATION_DATA", "application-data"), ("GST_TAG_APPLICATION_NAME", "application-name"), ("GST_TAG_ARTIST", "artist"), ("GST_TAG_ARTIST_SORTNAME", "artist-sortname"), ("GST_TAG_ATTACHMENT", "attachment"), ("GST_TAG_AUDIO_CODEC", "audio-codec"), ("GST_TAG_BEATS_PER_MINUTE", "beats-per-minute"), ("GST_TAG_BITRATE", "bitrate"), ("GST_TAG_CODEC", "codec"), ("GST_TAG_COMMENT", "comment"), ("GST_TAG_COMPOSER", "composer"), ("GST_TAG_COMPOSER_SORTNAME", "composer-sortname"), ("GST_TAG_CONDUCTOR", "conductor"), ("GST_TAG_CONTACT", "contact"), ("GST_TAG_CONTAINER_FORMAT", "container-format"), ( "GST_TAG_CONTAINER_SPECIFIC_TRACK_ID", "container-specific-track-id", ), ("GST_TAG_COPYRIGHT", "copyright"), ("GST_TAG_COPYRIGHT_URI", "copyright-uri"), ("GST_TAG_DATE", "date"), ("GST_TAG_DATE_TIME", "datetime"), ("GST_TAG_DESCRIPTION", "description"), ("GST_TAG_DEVICE_MANUFACTURER", "device-manufacturer"), ("GST_TAG_DEVICE_MODEL", "device-model"), ("GST_TAG_DURATION", "duration"), ("GST_TAG_ENCODED_BY", "encoded-by"), ("GST_TAG_ENCODER", "encoder"), ("GST_TAG_ENCODER_VERSION", "encoder-version"), ("GST_TAG_EXTENDED_COMMENT", "extended-comment"), ("(gint) GST_TAG_FLAG_COUNT", "4"), ("(gint) GST_TAG_FLAG_DECODED", "3"), ("(gint) GST_TAG_FLAG_ENCODED", "2"), ("(gint) GST_TAG_FLAG_META", "1"), ("(gint) GST_TAG_FLAG_UNDEFINED", "0"), ("GST_TAG_GENRE", "genre"), ( "GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION", "geo-location-capture-direction", ), ("GST_TAG_GEO_LOCATION_CITY", "geo-location-city"), ("GST_TAG_GEO_LOCATION_COUNTRY", "geo-location-country"), ("GST_TAG_GEO_LOCATION_ELEVATION", "geo-location-elevation"), ( "GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR", "geo-location-horizontal-error", ), ("GST_TAG_GEO_LOCATION_LATITUDE", "geo-location-latitude"), ("GST_TAG_GEO_LOCATION_LONGITUDE", "geo-location-longitude"), ( "GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION", "geo-location-movement-direction", ), ( "GST_TAG_GEO_LOCATION_MOVEMENT_SPEED", "geo-location-movement-speed", ), ("GST_TAG_GEO_LOCATION_NAME", "geo-location-name"), ( "GST_TAG_GEO_LOCATION_SUBLOCATION", "geo-location-sublocation", ), ("GST_TAG_GROUPING", "grouping"), ("GST_TAG_HOMEPAGE", "homepage"), ("GST_TAG_IMAGE", "image"), ("GST_TAG_IMAGE_ORIENTATION", "image-orientation"), ("GST_TAG_INTERPRETED_BY", "interpreted-by"), ("GST_TAG_ISRC", "isrc"), ("GST_TAG_KEYWORDS", "keywords"), ("GST_TAG_LANGUAGE_CODE", "language-code"), ("GST_TAG_LANGUAGE_NAME", "language-name"), ("GST_TAG_LICENSE", "license"), ("GST_TAG_LICENSE_URI", "license-uri"), ("GST_TAG_LOCATION", "location"), ("GST_TAG_LYRICS", "lyrics"), ("GST_TAG_MAXIMUM_BITRATE", "maximum-bitrate"), ("(gint) GST_TAG_MERGE_APPEND", "3"), ("(gint) GST_TAG_MERGE_COUNT", "7"), ("(gint) GST_TAG_MERGE_KEEP", "5"), ("(gint) GST_TAG_MERGE_KEEP_ALL", "6"), ("(gint) GST_TAG_MERGE_PREPEND", "4"), ("(gint) GST_TAG_MERGE_REPLACE", "2"), ("(gint) GST_TAG_MERGE_REPLACE_ALL", "1"), ("(gint) GST_TAG_MERGE_UNDEFINED", "0"), ("GST_TAG_MIDI_BASE_NOTE", "midi-base-note"), ("GST_TAG_MINIMUM_BITRATE", "minimum-bitrate"), ("GST_TAG_NOMINAL_BITRATE", "nominal-bitrate"), ("GST_TAG_ORGANIZATION", "organization"), ("GST_TAG_PERFORMER", "performer"), ("GST_TAG_PREVIEW_IMAGE", "preview-image"), ("GST_TAG_PRIVATE_DATA", "private-data"), ("GST_TAG_PUBLISHER", "publisher"), ("GST_TAG_REFERENCE_LEVEL", "replaygain-reference-level"), ("(gint) GST_TAG_SCOPE_GLOBAL", "1"), ("(gint) GST_TAG_SCOPE_STREAM", "0"), ("GST_TAG_SERIAL", "serial"), ("GST_TAG_SHOW_EPISODE_NUMBER", "show-episode-number"), ("GST_TAG_SHOW_NAME", "show-name"), ("GST_TAG_SHOW_SEASON_NUMBER", "show-season-number"), ("GST_TAG_SHOW_SORTNAME", "show-sortname"), ("GST_TAG_SUBTITLE_CODEC", "subtitle-codec"), ("GST_TAG_TITLE", "title"), ("GST_TAG_TITLE_SORTNAME", "title-sortname"), ("GST_TAG_TRACK_COUNT", "track-count"), ("GST_TAG_TRACK_GAIN", "replaygain-track-gain"), ("GST_TAG_TRACK_NUMBER", "track-number"), ("GST_TAG_TRACK_PEAK", "replaygain-track-peak"), ("GST_TAG_USER_RATING", "user-rating"), ("GST_TAG_VERSION", "version"), ("GST_TAG_VIDEO_CODEC", "video-codec"), ("(gint) GST_TASK_PAUSED", "2"), ("(gint) GST_TASK_STARTED", "0"), ("(gint) GST_TASK_STOPPED", "1"), ("(gint) GST_TOC_ENTRY_TYPE_ANGLE", "-3"), ("(gint) GST_TOC_ENTRY_TYPE_CHAPTER", "3"), ("(gint) GST_TOC_ENTRY_TYPE_EDITION", "-1"), ("(gint) GST_TOC_ENTRY_TYPE_INVALID", "0"), ("(gint) GST_TOC_ENTRY_TYPE_TITLE", "1"), ("(gint) GST_TOC_ENTRY_TYPE_TRACK", "2"), ("(gint) GST_TOC_ENTRY_TYPE_VERSION", "-2"), ("(gint) GST_TOC_LOOP_FORWARD", "1"), ("(gint) GST_TOC_LOOP_NONE", "0"), ("(gint) GST_TOC_LOOP_PING_PONG", "3"), ("(gint) GST_TOC_LOOP_REVERSE", "2"), ("GST_TOC_REPEAT_COUNT_INFINITE", "-1"), ("(gint) GST_TOC_SCOPE_CURRENT", "2"), ("(gint) GST_TOC_SCOPE_GLOBAL", "1"), ("(guint) GST_TRACER_VALUE_FLAGS_AGGREGATED", "2"), ("(guint) GST_TRACER_VALUE_FLAGS_NONE", "0"), ("(guint) GST_TRACER_VALUE_FLAGS_OPTIONAL", "1"), ("(gint) GST_TRACER_VALUE_SCOPE_ELEMENT", "2"), ("(gint) GST_TRACER_VALUE_SCOPE_PAD", "3"), ("(gint) GST_TRACER_VALUE_SCOPE_PROCESS", "0"), ("(gint) GST_TRACER_VALUE_SCOPE_THREAD", "1"), ("(gint) GST_TYPE_FIND_LIKELY", "80"), ("(gint) GST_TYPE_FIND_MAXIMUM", "100"), ("(gint) GST_TYPE_FIND_MINIMUM", "1"), ("(gint) GST_TYPE_FIND_NEARLY_CERTAIN", "99"), ("(gint) GST_TYPE_FIND_NONE", "0"), ("(gint) GST_TYPE_FIND_POSSIBLE", "50"), ("(gint) GST_URI_ERROR_BAD_REFERENCE", "3"), ("(gint) GST_URI_ERROR_BAD_STATE", "2"), ("(gint) GST_URI_ERROR_BAD_URI", "1"), ("(gint) GST_URI_ERROR_UNSUPPORTED_PROTOCOL", "0"), ("GST_URI_NO_PORT", "0"), ("(gint) GST_URI_SINK", "1"), ("(gint) GST_URI_SRC", "2"), ("(gint) GST_URI_UNKNOWN", "0"), ("GST_USECOND", "1000"), ("GST_VALUE_EQUAL", "0"), ("GST_VALUE_GREATER_THAN", "1"), ("GST_VALUE_LESS_THAN", "-1"), ("GST_VALUE_UNORDERED", "2"), ]; gstreamer-sys-0.23.0/tests/constant.c000064400000000000000000001131131046102023000156520ustar 00000000000000// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #include "manual.h" #include #define PRINT_CONSTANT(CONSTANT_NAME) \ printf("%s;", #CONSTANT_NAME); \ printf(_Generic((CONSTANT_NAME), \ char *: "%s", \ const char *: "%s", \ char: "%c", \ signed char: "%hhd", \ unsigned char: "%hhu", \ short int: "%hd", \ unsigned short int: "%hu", \ int: "%d", \ unsigned int: "%u", \ long: "%ld", \ unsigned long: "%lu", \ long long: "%lld", \ unsigned long long: "%llu", \ float: "%f", \ double: "%f", \ long double: "%ld"), \ CONSTANT_NAME); \ printf("\n"); int main() { PRINT_CONSTANT((guint) GST_ALLOCATOR_FLAG_CUSTOM_ALLOC); PRINT_CONSTANT((guint) GST_ALLOCATOR_FLAG_LAST); PRINT_CONSTANT((guint) GST_ALLOCATOR_FLAG_NO_COPY); PRINT_CONSTANT(GST_ALLOCATOR_SYSMEM); PRINT_CONSTANT((guint) GST_BIN_FLAG_LAST); PRINT_CONSTANT((guint) GST_BIN_FLAG_NO_RESYNC); PRINT_CONSTANT((guint) GST_BIN_FLAG_STREAMS_AWARE); PRINT_CONSTANT((gint) GST_BUFFERING_DOWNLOAD); PRINT_CONSTANT((gint) GST_BUFFERING_LIVE); PRINT_CONSTANT((gint) GST_BUFFERING_STREAM); PRINT_CONSTANT((gint) GST_BUFFERING_TIMESHIFT); PRINT_CONSTANT(GST_BUFFER_COPY_ALL); PRINT_CONSTANT((guint) GST_BUFFER_COPY_DEEP); PRINT_CONSTANT((guint) GST_BUFFER_COPY_FLAGS); PRINT_CONSTANT((guint) GST_BUFFER_COPY_MEMORY); PRINT_CONSTANT((guint) GST_BUFFER_COPY_MERGE); PRINT_CONSTANT((guint) GST_BUFFER_COPY_META); PRINT_CONSTANT(GST_BUFFER_COPY_METADATA); PRINT_CONSTANT((guint) GST_BUFFER_COPY_NONE); PRINT_CONSTANT((guint) GST_BUFFER_COPY_TIMESTAMPS); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_CORRUPTED); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_DECODE_ONLY); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_DELTA_UNIT); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_DISCONT); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_DROPPABLE); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_GAP); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_HEADER); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_LAST); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_LIVE); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_MARKER); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_NON_DROPPABLE); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_RESYNC); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_SYNC_AFTER); PRINT_CONSTANT((guint) GST_BUFFER_FLAG_TAG_MEMORY); PRINT_CONSTANT(GST_BUFFER_OFFSET_NONE); PRINT_CONSTANT((guint) GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT); PRINT_CONSTANT((guint) GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT); PRINT_CONSTANT((guint) GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT); PRINT_CONSTANT((guint) GST_BUFFER_POOL_ACQUIRE_FLAG_LAST); PRINT_CONSTANT((guint) GST_BUFFER_POOL_ACQUIRE_FLAG_NONE); PRINT_CONSTANT((gint) GST_BUS_ASYNC); PRINT_CONSTANT((gint) GST_BUS_DROP); PRINT_CONSTANT((guint) GST_BUS_FLAG_LAST); PRINT_CONSTANT((guint) GST_BUS_FLUSHING); PRINT_CONSTANT((gint) GST_BUS_PASS); PRINT_CONSTANT(GST_CAN_INLINE); PRINT_CONSTANT(GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY); PRINT_CONSTANT((guint) GST_CAPS_FLAG_ANY); PRINT_CONSTANT((gint) GST_CAPS_INTERSECT_FIRST); PRINT_CONSTANT((gint) GST_CAPS_INTERSECT_ZIG_ZAG); PRINT_CONSTANT((gint) GST_CLOCK_BADTIME); PRINT_CONSTANT((gint) GST_CLOCK_BUSY); PRINT_CONSTANT((gint) GST_CLOCK_DONE); PRINT_CONSTANT((gint) GST_CLOCK_EARLY); PRINT_CONSTANT((gint) GST_CLOCK_ENTRY_PERIODIC); PRINT_CONSTANT((gint) GST_CLOCK_ENTRY_SINGLE); PRINT_CONSTANT((gint) GST_CLOCK_ERROR); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_SET_MASTER); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_CAN_SET_RESOLUTION); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_LAST); PRINT_CONSTANT((guint) GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC); PRINT_CONSTANT((gint) GST_CLOCK_OK); PRINT_CONSTANT(GST_CLOCK_TIME_NONE); PRINT_CONSTANT((gint) GST_CLOCK_TYPE_MONOTONIC); PRINT_CONSTANT((gint) GST_CLOCK_TYPE_OTHER); PRINT_CONSTANT((gint) GST_CLOCK_TYPE_REALTIME); PRINT_CONSTANT((gint) GST_CLOCK_TYPE_TAI); PRINT_CONSTANT((gint) GST_CLOCK_UNSCHEDULED); PRINT_CONSTANT((gint) GST_CLOCK_UNSUPPORTED); PRINT_CONSTANT((gint) GST_CORE_ERROR_CAPS); PRINT_CONSTANT((gint) GST_CORE_ERROR_CLOCK); PRINT_CONSTANT((gint) GST_CORE_ERROR_DISABLED); PRINT_CONSTANT((gint) GST_CORE_ERROR_EVENT); PRINT_CONSTANT((gint) GST_CORE_ERROR_FAILED); PRINT_CONSTANT((gint) GST_CORE_ERROR_MISSING_PLUGIN); PRINT_CONSTANT((gint) GST_CORE_ERROR_NEGOTIATION); PRINT_CONSTANT((gint) GST_CORE_ERROR_NOT_IMPLEMENTED); PRINT_CONSTANT((gint) GST_CORE_ERROR_NUM_ERRORS); PRINT_CONSTANT((gint) GST_CORE_ERROR_PAD); PRINT_CONSTANT((gint) GST_CORE_ERROR_SEEK); PRINT_CONSTANT((gint) GST_CORE_ERROR_STATE_CHANGE); PRINT_CONSTANT((gint) GST_CORE_ERROR_TAG); PRINT_CONSTANT((gint) GST_CORE_ERROR_THREAD); PRINT_CONSTANT((gint) GST_CORE_ERROR_TOO_LAZY); PRINT_CONSTANT((guint) GST_DEBUG_BG_BLACK); PRINT_CONSTANT((guint) GST_DEBUG_BG_BLUE); PRINT_CONSTANT((guint) GST_DEBUG_BG_CYAN); PRINT_CONSTANT((guint) GST_DEBUG_BG_GREEN); PRINT_CONSTANT((guint) GST_DEBUG_BG_MAGENTA); PRINT_CONSTANT(GST_DEBUG_BG_MASK); PRINT_CONSTANT((guint) GST_DEBUG_BG_RED); PRINT_CONSTANT((guint) GST_DEBUG_BG_WHITE); PRINT_CONSTANT((guint) GST_DEBUG_BG_YELLOW); PRINT_CONSTANT((guint) GST_DEBUG_BOLD); PRINT_CONSTANT((gint) GST_DEBUG_COLOR_MODE_OFF); PRINT_CONSTANT((gint) GST_DEBUG_COLOR_MODE_ON); PRINT_CONSTANT((gint) GST_DEBUG_COLOR_MODE_UNIX); PRINT_CONSTANT((guint) GST_DEBUG_FG_BLACK); PRINT_CONSTANT((guint) GST_DEBUG_FG_BLUE); PRINT_CONSTANT((guint) GST_DEBUG_FG_CYAN); PRINT_CONSTANT((guint) GST_DEBUG_FG_GREEN); PRINT_CONSTANT((guint) GST_DEBUG_FG_MAGENTA); PRINT_CONSTANT(GST_DEBUG_FG_MASK); PRINT_CONSTANT((guint) GST_DEBUG_FG_RED); PRINT_CONSTANT((guint) GST_DEBUG_FG_WHITE); PRINT_CONSTANT((guint) GST_DEBUG_FG_YELLOW); PRINT_CONSTANT(GST_DEBUG_FORMAT_MASK); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_ALL); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_FULL_PARAMS); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_STATES); PRINT_CONSTANT((guint) GST_DEBUG_GRAPH_SHOW_VERBOSE); PRINT_CONSTANT((guint) GST_DEBUG_UNDERLINE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_DECODER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_DECRYPTOR); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_DEMUXER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_ENCODER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_FORMATTER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_HARDWARE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_MUXER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_PARSER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_PAYLOADER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_SINK); PRINT_CONSTANT(GST_ELEMENT_FACTORY_KLASS_SRC); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_ANY); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_DECODABLE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_DECODER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_DECRYPTOR); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_DEMUXER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_ENCODER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_FORMATTER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_HARDWARE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_MUXER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_PARSER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_PAYLOADER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_SINK); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_SRC); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER); PRINT_CONSTANT(GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_INDEXABLE); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_LAST); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_LOCKED_STATE); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_PROVIDE_CLOCK); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_REQUIRE_CLOCK); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_SINK); PRINT_CONSTANT((guint) GST_ELEMENT_FLAG_SOURCE); PRINT_CONSTANT(GST_ELEMENT_METADATA_AUTHOR); PRINT_CONSTANT(GST_ELEMENT_METADATA_DESCRIPTION); PRINT_CONSTANT(GST_ELEMENT_METADATA_DOC_URI); PRINT_CONSTANT(GST_ELEMENT_METADATA_ICON_NAME); PRINT_CONSTANT(GST_ELEMENT_METADATA_KLASS); PRINT_CONSTANT(GST_ELEMENT_METADATA_LONGNAME); PRINT_CONSTANT((gint) GST_EVENT_BUFFERSIZE); PRINT_CONSTANT((gint) GST_EVENT_CAPS); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_BOTH); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_BOTH_OOB); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_DOWNSTREAM); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_DOWNSTREAM_OOB); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_DOWNSTREAM_STICKY); PRINT_CONSTANT((gint) GST_EVENT_CUSTOM_UPSTREAM); PRINT_CONSTANT((gint) GST_EVENT_EOS); PRINT_CONSTANT((gint) GST_EVENT_FLUSH_START); PRINT_CONSTANT((gint) GST_EVENT_FLUSH_STOP); PRINT_CONSTANT((gint) GST_EVENT_GAP); PRINT_CONSTANT((gint) GST_EVENT_INSTANT_RATE_CHANGE); PRINT_CONSTANT((gint) GST_EVENT_INSTANT_RATE_SYNC_TIME); PRINT_CONSTANT((gint) GST_EVENT_LATENCY); PRINT_CONSTANT((gint) GST_EVENT_NAVIGATION); PRINT_CONSTANT(GST_EVENT_NUM_SHIFT); PRINT_CONSTANT((gint) GST_EVENT_PROTECTION); PRINT_CONSTANT((gint) GST_EVENT_QOS); PRINT_CONSTANT((gint) GST_EVENT_RECONFIGURE); PRINT_CONSTANT((gint) GST_EVENT_SEEK); PRINT_CONSTANT((gint) GST_EVENT_SEGMENT); PRINT_CONSTANT((gint) GST_EVENT_SEGMENT_DONE); PRINT_CONSTANT((gint) GST_EVENT_SELECT_STREAMS); PRINT_CONSTANT((gint) GST_EVENT_SINK_MESSAGE); PRINT_CONSTANT((gint) GST_EVENT_STEP); PRINT_CONSTANT((gint) GST_EVENT_STREAM_COLLECTION); PRINT_CONSTANT((gint) GST_EVENT_STREAM_GROUP_DONE); PRINT_CONSTANT((gint) GST_EVENT_STREAM_START); PRINT_CONSTANT((gint) GST_EVENT_TAG); PRINT_CONSTANT((gint) GST_EVENT_TOC); PRINT_CONSTANT((gint) GST_EVENT_TOC_SELECT); PRINT_CONSTANT(GST_EVENT_TYPE_BOTH); PRINT_CONSTANT((guint) GST_EVENT_TYPE_DOWNSTREAM); PRINT_CONSTANT((guint) GST_EVENT_TYPE_SERIALIZED); PRINT_CONSTANT((guint) GST_EVENT_TYPE_STICKY); PRINT_CONSTANT((guint) GST_EVENT_TYPE_STICKY_MULTI); PRINT_CONSTANT((guint) GST_EVENT_TYPE_UPSTREAM); PRINT_CONSTANT((gint) GST_EVENT_UNKNOWN); PRINT_CONSTANT(GST_FLAG_SET_MASK_EXACT); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_ERROR); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_ERROR_1); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_ERROR_2); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_SUCCESS); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_SUCCESS_1); PRINT_CONSTANT((gint) GST_FLOW_CUSTOM_SUCCESS_2); PRINT_CONSTANT((gint) GST_FLOW_EOS); PRINT_CONSTANT((gint) GST_FLOW_ERROR); PRINT_CONSTANT((gint) GST_FLOW_FLUSHING); PRINT_CONSTANT((gint) GST_FLOW_NOT_LINKED); PRINT_CONSTANT((gint) GST_FLOW_NOT_NEGOTIATED); PRINT_CONSTANT((gint) GST_FLOW_NOT_SUPPORTED); PRINT_CONSTANT((gint) GST_FLOW_OK); PRINT_CONSTANT((gint) GST_FORMAT_BUFFERS); PRINT_CONSTANT((gint) GST_FORMAT_BYTES); PRINT_CONSTANT((gint) GST_FORMAT_DEFAULT); PRINT_CONSTANT((gint) GST_FORMAT_PERCENT); PRINT_CONSTANT(GST_FORMAT_PERCENT_MAX); PRINT_CONSTANT(GST_FORMAT_PERCENT_SCALE); PRINT_CONSTANT((gint) GST_FORMAT_TIME); PRINT_CONSTANT((gint) GST_FORMAT_UNDEFINED); PRINT_CONSTANT((guint) GST_GAP_FLAG_MISSING_DATA); PRINT_CONSTANT(GST_GROUP_ID_INVALID); PRINT_CONSTANT((gint) GST_ITERATOR_DONE); PRINT_CONSTANT((gint) GST_ITERATOR_ERROR); PRINT_CONSTANT((gint) GST_ITERATOR_ITEM_END); PRINT_CONSTANT((gint) GST_ITERATOR_ITEM_PASS); PRINT_CONSTANT((gint) GST_ITERATOR_ITEM_SKIP); PRINT_CONSTANT((gint) GST_ITERATOR_OK); PRINT_CONSTANT((gint) GST_ITERATOR_RESYNC); PRINT_CONSTANT((gint) GST_LEVEL_COUNT); PRINT_CONSTANT((gint) GST_LEVEL_DEBUG); PRINT_CONSTANT((gint) GST_LEVEL_ERROR); PRINT_CONSTANT((gint) GST_LEVEL_FIXME); PRINT_CONSTANT((gint) GST_LEVEL_INFO); PRINT_CONSTANT((gint) GST_LEVEL_LOG); PRINT_CONSTANT((gint) GST_LEVEL_MEMDUMP); PRINT_CONSTANT((gint) GST_LEVEL_NONE); PRINT_CONSTANT((gint) GST_LEVEL_TRACE); PRINT_CONSTANT((gint) GST_LEVEL_WARNING); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_ENCODE); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_FAILED); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_INIT); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_NUM_ERRORS); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_SETTINGS); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_SHUTDOWN); PRINT_CONSTANT((gint) GST_LIBRARY_ERROR_TOO_LAZY); PRINT_CONSTANT(GST_LICENSE_UNKNOWN); PRINT_CONSTANT((guint) GST_LOCK_FLAG_EXCLUSIVE); PRINT_CONSTANT((guint) GST_LOCK_FLAG_LAST); PRINT_CONSTANT((guint) GST_LOCK_FLAG_READ); PRINT_CONSTANT(GST_LOCK_FLAG_READWRITE); PRINT_CONSTANT((guint) GST_LOCK_FLAG_WRITE); PRINT_CONSTANT((guint) GST_MAP_FLAG_LAST); PRINT_CONSTANT((guint) GST_MAP_READ); PRINT_CONSTANT(GST_MAP_READWRITE); PRINT_CONSTANT((guint) GST_MAP_WRITE); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_LAST); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_NOT_MAPPABLE); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_NO_SHARE); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_READONLY); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_ZERO_PADDED); PRINT_CONSTANT((guint) GST_MEMORY_FLAG_ZERO_PREFIXED); PRINT_CONSTANT((guint) GST_MESSAGE_ANY); PRINT_CONSTANT((guint) GST_MESSAGE_APPLICATION); PRINT_CONSTANT((guint) GST_MESSAGE_ASYNC_DONE); PRINT_CONSTANT((guint) GST_MESSAGE_ASYNC_START); PRINT_CONSTANT((guint) GST_MESSAGE_BUFFERING); PRINT_CONSTANT((guint) GST_MESSAGE_CLOCK_LOST); PRINT_CONSTANT((guint) GST_MESSAGE_CLOCK_PROVIDE); PRINT_CONSTANT((guint) GST_MESSAGE_DEVICE_ADDED); PRINT_CONSTANT((guint) GST_MESSAGE_DEVICE_CHANGED); PRINT_CONSTANT((guint) GST_MESSAGE_DEVICE_REMOVED); PRINT_CONSTANT((guint) GST_MESSAGE_DURATION_CHANGED); PRINT_CONSTANT((guint) GST_MESSAGE_ELEMENT); PRINT_CONSTANT((guint) GST_MESSAGE_EOS); PRINT_CONSTANT((guint) GST_MESSAGE_ERROR); PRINT_CONSTANT((guint) GST_MESSAGE_EXTENDED); PRINT_CONSTANT((guint) GST_MESSAGE_HAVE_CONTEXT); PRINT_CONSTANT((guint) GST_MESSAGE_INFO); PRINT_CONSTANT((guint) GST_MESSAGE_INSTANT_RATE_REQUEST); PRINT_CONSTANT((guint) GST_MESSAGE_LATENCY); PRINT_CONSTANT((guint) GST_MESSAGE_NEED_CONTEXT); PRINT_CONSTANT((guint) GST_MESSAGE_NEW_CLOCK); PRINT_CONSTANT((guint) GST_MESSAGE_PROGRESS); PRINT_CONSTANT((guint) GST_MESSAGE_PROPERTY_NOTIFY); PRINT_CONSTANT((guint) GST_MESSAGE_QOS); PRINT_CONSTANT((guint) GST_MESSAGE_REDIRECT); PRINT_CONSTANT((guint) GST_MESSAGE_REQUEST_STATE); PRINT_CONSTANT((guint) GST_MESSAGE_RESET_TIME); PRINT_CONSTANT((guint) GST_MESSAGE_SEGMENT_DONE); PRINT_CONSTANT((guint) GST_MESSAGE_SEGMENT_START); PRINT_CONSTANT((guint) GST_MESSAGE_STATE_CHANGED); PRINT_CONSTANT((guint) GST_MESSAGE_STATE_DIRTY); PRINT_CONSTANT((guint) GST_MESSAGE_STEP_DONE); PRINT_CONSTANT((guint) GST_MESSAGE_STEP_START); PRINT_CONSTANT((guint) GST_MESSAGE_STREAMS_SELECTED); PRINT_CONSTANT((guint) GST_MESSAGE_STREAM_COLLECTION); PRINT_CONSTANT((guint) GST_MESSAGE_STREAM_START); PRINT_CONSTANT((guint) GST_MESSAGE_STREAM_STATUS); PRINT_CONSTANT((guint) GST_MESSAGE_STRUCTURE_CHANGE); PRINT_CONSTANT((guint) GST_MESSAGE_TAG); PRINT_CONSTANT((guint) GST_MESSAGE_TOC); PRINT_CONSTANT((guint) GST_MESSAGE_UNKNOWN); PRINT_CONSTANT((guint) GST_MESSAGE_WARNING); PRINT_CONSTANT((guint) GST_META_FLAG_LAST); PRINT_CONSTANT((guint) GST_META_FLAG_LOCKED); PRINT_CONSTANT((guint) GST_META_FLAG_NONE); PRINT_CONSTANT((guint) GST_META_FLAG_POOLED); PRINT_CONSTANT((guint) GST_META_FLAG_READONLY); PRINT_CONSTANT(GST_META_TAG_MEMORY_REFERENCE_STR); PRINT_CONSTANT(GST_META_TAG_MEMORY_STR); PRINT_CONSTANT((guint) GST_MINI_OBJECT_FLAG_LAST); PRINT_CONSTANT((guint) GST_MINI_OBJECT_FLAG_LOCKABLE); PRINT_CONSTANT((guint) GST_MINI_OBJECT_FLAG_LOCK_READONLY); PRINT_CONSTANT((guint) GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED); PRINT_CONSTANT(GST_MSECOND); PRINT_CONSTANT(GST_NSECOND); PRINT_CONSTANT((guint) GST_OBJECT_FLAG_CONSTRUCTED); PRINT_CONSTANT((guint) GST_OBJECT_FLAG_LAST); PRINT_CONSTANT((guint) GST_OBJECT_FLAG_MAY_BE_LEAKED); PRINT_CONSTANT((gint) GST_PAD_ALWAYS); PRINT_CONSTANT((guint) GST_PAD_FLAG_ACCEPT_INTERSECT); PRINT_CONSTANT((guint) GST_PAD_FLAG_ACCEPT_TEMPLATE); PRINT_CONSTANT((guint) GST_PAD_FLAG_BLOCKED); PRINT_CONSTANT((guint) GST_PAD_FLAG_BLOCKING); PRINT_CONSTANT((guint) GST_PAD_FLAG_EOS); PRINT_CONSTANT((guint) GST_PAD_FLAG_FIXED_CAPS); PRINT_CONSTANT((guint) GST_PAD_FLAG_FLUSHING); PRINT_CONSTANT((guint) GST_PAD_FLAG_LAST); PRINT_CONSTANT((guint) GST_PAD_FLAG_NEED_PARENT); PRINT_CONSTANT((guint) GST_PAD_FLAG_NEED_RECONFIGURE); PRINT_CONSTANT((guint) GST_PAD_FLAG_PENDING_EVENTS); PRINT_CONSTANT((guint) GST_PAD_FLAG_PROXY_ALLOCATION); PRINT_CONSTANT((guint) GST_PAD_FLAG_PROXY_CAPS); PRINT_CONSTANT((guint) GST_PAD_FLAG_PROXY_SCHEDULING); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_CAPS); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_DEFAULT); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_HIERARCHY); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_NOTHING); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_NO_RECONFIGURE); PRINT_CONSTANT((guint) GST_PAD_LINK_CHECK_TEMPLATE_CAPS); PRINT_CONSTANT((gint) GST_PAD_LINK_NOFORMAT); PRINT_CONSTANT((gint) GST_PAD_LINK_NOSCHED); PRINT_CONSTANT((gint) GST_PAD_LINK_OK); PRINT_CONSTANT((gint) GST_PAD_LINK_REFUSED); PRINT_CONSTANT((gint) GST_PAD_LINK_WAS_LINKED); PRINT_CONSTANT((gint) GST_PAD_LINK_WRONG_DIRECTION); PRINT_CONSTANT((gint) GST_PAD_LINK_WRONG_HIERARCHY); PRINT_CONSTANT((gint) GST_PAD_MODE_NONE); PRINT_CONSTANT((gint) GST_PAD_MODE_PULL); PRINT_CONSTANT((gint) GST_PAD_MODE_PUSH); PRINT_CONSTANT((gint) GST_PAD_PROBE_DROP); PRINT_CONSTANT((gint) GST_PAD_PROBE_HANDLED); PRINT_CONSTANT((gint) GST_PAD_PROBE_OK); PRINT_CONSTANT((gint) GST_PAD_PROBE_PASS); PRINT_CONSTANT((gint) GST_PAD_PROBE_REMOVE); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_ALL_BOTH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BLOCK); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BLOCKING); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BUFFER); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_BUFFER_LIST); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_DATA_BOTH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_DATA_UPSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_EVENT_BOTH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_EVENT_FLUSH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_EVENT_UPSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_IDLE); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_INVALID); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_PULL); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_PUSH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_QUERY_BOTH); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_QUERY_UPSTREAM); PRINT_CONSTANT((guint) GST_PAD_PROBE_TYPE_SCHEDULING); PRINT_CONSTANT((gint) GST_PAD_REQUEST); PRINT_CONSTANT((gint) GST_PAD_SINK); PRINT_CONSTANT((gint) GST_PAD_SOMETIMES); PRINT_CONSTANT((gint) GST_PAD_SRC); PRINT_CONSTANT((guint) GST_PAD_TEMPLATE_FLAG_LAST); PRINT_CONSTANT((gint) GST_PAD_UNKNOWN); PRINT_CONSTANT(GST_PARAM_CONDITIONALLY_AVAILABLE); PRINT_CONSTANT(GST_PARAM_CONTROLLABLE); PRINT_CONSTANT(GST_PARAM_DOC_SHOW_DEFAULT); PRINT_CONSTANT(GST_PARAM_MUTABLE_PAUSED); PRINT_CONSTANT(GST_PARAM_MUTABLE_PLAYING); PRINT_CONSTANT(GST_PARAM_MUTABLE_READY); PRINT_CONSTANT(GST_PARAM_USER_SHIFT); PRINT_CONSTANT((gint) GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY); PRINT_CONSTANT((gint) GST_PARSE_ERROR_DELAYED_LINK); PRINT_CONSTANT((gint) GST_PARSE_ERROR_EMPTY); PRINT_CONSTANT((gint) GST_PARSE_ERROR_EMPTY_BIN); PRINT_CONSTANT((gint) GST_PARSE_ERROR_LINK); PRINT_CONSTANT((gint) GST_PARSE_ERROR_NO_SUCH_ELEMENT); PRINT_CONSTANT((gint) GST_PARSE_ERROR_NO_SUCH_PROPERTY); PRINT_CONSTANT((gint) GST_PARSE_ERROR_SYNTAX); PRINT_CONSTANT((guint) GST_PARSE_FLAG_FATAL_ERRORS); PRINT_CONSTANT((guint) GST_PARSE_FLAG_NONE); PRINT_CONSTANT((guint) GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS); PRINT_CONSTANT((guint) GST_PARSE_FLAG_PLACE_IN_BIN); PRINT_CONSTANT((guint) GST_PIPELINE_FLAG_FIXED_CLOCK); PRINT_CONSTANT((guint) GST_PIPELINE_FLAG_LAST); PRINT_CONSTANT((guint) GST_PLUGIN_API_FLAG_IGNORE_ENUM_MEMBERS); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_NONE); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_RELATIVE_TO_EXE); PRINT_CONSTANT((guint) GST_PLUGIN_DEPENDENCY_FLAG_RECURSE); PRINT_CONSTANT((gint) GST_PLUGIN_ERROR_DEPENDENCIES); PRINT_CONSTANT((gint) GST_PLUGIN_ERROR_MODULE); PRINT_CONSTANT((gint) GST_PLUGIN_ERROR_NAME_MISMATCH); PRINT_CONSTANT((guint) GST_PLUGIN_FLAG_BLACKLISTED); PRINT_CONSTANT((guint) GST_PLUGIN_FLAG_CACHED); PRINT_CONSTANT((gint) GST_PROGRESS_TYPE_CANCELED); PRINT_CONSTANT((gint) GST_PROGRESS_TYPE_COMPLETE); PRINT_CONSTANT((gint) GST_PROGRESS_TYPE_CONTINUE); PRINT_CONSTANT((gint) GST_PROGRESS_TYPE_ERROR); PRINT_CONSTANT((gint) GST_PROGRESS_TYPE_START); PRINT_CONSTANT((gint) GST_PROMISE_RESULT_EXPIRED); PRINT_CONSTANT((gint) GST_PROMISE_RESULT_INTERRUPTED); PRINT_CONSTANT((gint) GST_PROMISE_RESULT_PENDING); PRINT_CONSTANT((gint) GST_PROMISE_RESULT_REPLIED); PRINT_CONSTANT(GST_PROTECTION_SYSTEM_ID_CAPS_FIELD); PRINT_CONSTANT(GST_PROTECTION_UNSPECIFIED_SYSTEM_ID); PRINT_CONSTANT((gint) GST_QOS_TYPE_OVERFLOW); PRINT_CONSTANT((gint) GST_QOS_TYPE_THROTTLE); PRINT_CONSTANT((gint) GST_QOS_TYPE_UNDERFLOW); PRINT_CONSTANT((gint) GST_QUERY_ACCEPT_CAPS); PRINT_CONSTANT((gint) GST_QUERY_ALLOCATION); PRINT_CONSTANT((gint) GST_QUERY_BITRATE); PRINT_CONSTANT((gint) GST_QUERY_BUFFERING); PRINT_CONSTANT((gint) GST_QUERY_CAPS); PRINT_CONSTANT((gint) GST_QUERY_CONTEXT); PRINT_CONSTANT((gint) GST_QUERY_CONVERT); PRINT_CONSTANT((gint) GST_QUERY_CUSTOM); PRINT_CONSTANT((gint) GST_QUERY_DRAIN); PRINT_CONSTANT((gint) GST_QUERY_DURATION); PRINT_CONSTANT((gint) GST_QUERY_FORMATS); PRINT_CONSTANT((gint) GST_QUERY_JITTER); PRINT_CONSTANT((gint) GST_QUERY_LATENCY); PRINT_CONSTANT(GST_QUERY_NUM_SHIFT); PRINT_CONSTANT((gint) GST_QUERY_POSITION); PRINT_CONSTANT((gint) GST_QUERY_RATE); PRINT_CONSTANT((gint) GST_QUERY_SCHEDULING); PRINT_CONSTANT((gint) GST_QUERY_SEEKING); PRINT_CONSTANT((gint) GST_QUERY_SEGMENT); PRINT_CONSTANT((gint) GST_QUERY_SELECTABLE); PRINT_CONSTANT(GST_QUERY_TYPE_BOTH); PRINT_CONSTANT((guint) GST_QUERY_TYPE_DOWNSTREAM); PRINT_CONSTANT((guint) GST_QUERY_TYPE_SERIALIZED); PRINT_CONSTANT((guint) GST_QUERY_TYPE_UPSTREAM); PRINT_CONSTANT((gint) GST_QUERY_UNKNOWN); PRINT_CONSTANT((gint) GST_QUERY_URI); PRINT_CONSTANT((gint) GST_RANK_MARGINAL); PRINT_CONSTANT((gint) GST_RANK_NONE); PRINT_CONSTANT((gint) GST_RANK_PRIMARY); PRINT_CONSTANT((gint) GST_RANK_SECONDARY); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_BUSY); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_CLOSE); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_FAILED); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_NOT_AUTHORIZED); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_NOT_FOUND); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_NO_SPACE_LEFT); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_NUM_ERRORS); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_OPEN_READ); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_OPEN_READ_WRITE); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_OPEN_WRITE); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_READ); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_SEEK); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_SETTINGS); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_SYNC); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_TOO_LAZY); PRINT_CONSTANT((gint) GST_RESOURCE_ERROR_WRITE); PRINT_CONSTANT((guint) GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED); PRINT_CONSTANT((guint) GST_SCHEDULING_FLAG_SEEKABLE); PRINT_CONSTANT((guint) GST_SCHEDULING_FLAG_SEQUENTIAL); PRINT_CONSTANT((gint) GST_SEARCH_MODE_AFTER); PRINT_CONSTANT((gint) GST_SEARCH_MODE_BEFORE); PRINT_CONSTANT((gint) GST_SEARCH_MODE_EXACT); PRINT_CONSTANT(GST_SECOND); PRINT_CONSTANT((guint) GST_SEEK_FLAG_ACCURATE); PRINT_CONSTANT((guint) GST_SEEK_FLAG_FLUSH); PRINT_CONSTANT((guint) GST_SEEK_FLAG_INSTANT_RATE_CHANGE); PRINT_CONSTANT((guint) GST_SEEK_FLAG_KEY_UNIT); PRINT_CONSTANT((guint) GST_SEEK_FLAG_NONE); PRINT_CONSTANT((guint) GST_SEEK_FLAG_SEGMENT); PRINT_CONSTANT((guint) GST_SEEK_FLAG_SKIP); PRINT_CONSTANT((guint) GST_SEEK_FLAG_SNAP_AFTER); PRINT_CONSTANT((guint) GST_SEEK_FLAG_SNAP_BEFORE); PRINT_CONSTANT((guint) GST_SEEK_FLAG_SNAP_NEAREST); PRINT_CONSTANT((guint) GST_SEEK_FLAG_TRICKMODE); PRINT_CONSTANT((guint) GST_SEEK_FLAG_TRICKMODE_FORWARD_PREDICTED); PRINT_CONSTANT((guint) GST_SEEK_FLAG_TRICKMODE_KEY_UNITS); PRINT_CONSTANT((guint) GST_SEEK_FLAG_TRICKMODE_NO_AUDIO); PRINT_CONSTANT((gint) GST_SEEK_TYPE_END); PRINT_CONSTANT((gint) GST_SEEK_TYPE_NONE); PRINT_CONSTANT((gint) GST_SEEK_TYPE_SET); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_NONE); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_RESET); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_SEGMENT); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_SKIP); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_TRICKMODE); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_TRICKMODE_FORWARD_PREDICTED); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS); PRINT_CONSTANT((guint) GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO); PRINT_CONSTANT(GST_SEGMENT_INSTANT_FLAGS); PRINT_CONSTANT(GST_SEQNUM_INVALID); PRINT_CONSTANT((guint) GST_SERIALIZE_FLAG_BACKWARD_COMPAT); PRINT_CONSTANT((guint) GST_SERIALIZE_FLAG_NONE); PRINT_CONSTANT((guint) GST_SERIALIZE_FLAG_STRICT); PRINT_CONSTANT((guint) GST_STACK_TRACE_SHOW_FULL); PRINT_CONSTANT((guint) GST_STACK_TRACE_SHOW_NONE); PRINT_CONSTANT((gint) GST_STATE_CHANGE_ASYNC); PRINT_CONSTANT((gint) GST_STATE_CHANGE_FAILURE); PRINT_CONSTANT((gint) GST_STATE_CHANGE_NO_PREROLL); PRINT_CONSTANT((gint) GST_STATE_CHANGE_NULL_TO_NULL); PRINT_CONSTANT((gint) GST_STATE_CHANGE_NULL_TO_READY); PRINT_CONSTANT((gint) GST_STATE_CHANGE_PAUSED_TO_PAUSED); PRINT_CONSTANT((gint) GST_STATE_CHANGE_PAUSED_TO_PLAYING); PRINT_CONSTANT((gint) GST_STATE_CHANGE_PAUSED_TO_READY); PRINT_CONSTANT((gint) GST_STATE_CHANGE_PLAYING_TO_PAUSED); PRINT_CONSTANT((gint) GST_STATE_CHANGE_PLAYING_TO_PLAYING); PRINT_CONSTANT((gint) GST_STATE_CHANGE_READY_TO_NULL); PRINT_CONSTANT((gint) GST_STATE_CHANGE_READY_TO_PAUSED); PRINT_CONSTANT((gint) GST_STATE_CHANGE_READY_TO_READY); PRINT_CONSTANT((gint) GST_STATE_CHANGE_SUCCESS); PRINT_CONSTANT((gint) GST_STATE_NULL); PRINT_CONSTANT((gint) GST_STATE_PAUSED); PRINT_CONSTANT((gint) GST_STATE_PLAYING); PRINT_CONSTANT((gint) GST_STATE_READY); PRINT_CONSTANT((gint) GST_STATE_VOID_PENDING); PRINT_CONSTANT((gint) GST_STREAM_ERROR_CODEC_NOT_FOUND); PRINT_CONSTANT((gint) GST_STREAM_ERROR_DECODE); PRINT_CONSTANT((gint) GST_STREAM_ERROR_DECRYPT); PRINT_CONSTANT((gint) GST_STREAM_ERROR_DECRYPT_NOKEY); PRINT_CONSTANT((gint) GST_STREAM_ERROR_DEMUX); PRINT_CONSTANT((gint) GST_STREAM_ERROR_ENCODE); PRINT_CONSTANT((gint) GST_STREAM_ERROR_FAILED); PRINT_CONSTANT((gint) GST_STREAM_ERROR_FORMAT); PRINT_CONSTANT((gint) GST_STREAM_ERROR_MUX); PRINT_CONSTANT((gint) GST_STREAM_ERROR_NOT_IMPLEMENTED); PRINT_CONSTANT((gint) GST_STREAM_ERROR_NUM_ERRORS); PRINT_CONSTANT((gint) GST_STREAM_ERROR_TOO_LAZY); PRINT_CONSTANT((gint) GST_STREAM_ERROR_TYPE_NOT_FOUND); PRINT_CONSTANT((gint) GST_STREAM_ERROR_WRONG_TYPE); PRINT_CONSTANT((guint) GST_STREAM_FLAG_NONE); PRINT_CONSTANT((guint) GST_STREAM_FLAG_SELECT); PRINT_CONSTANT((guint) GST_STREAM_FLAG_SPARSE); PRINT_CONSTANT((guint) GST_STREAM_FLAG_UNSELECT); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_CREATE); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_DESTROY); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_ENTER); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_LEAVE); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_PAUSE); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_START); PRINT_CONSTANT((gint) GST_STREAM_STATUS_TYPE_STOP); PRINT_CONSTANT((guint) GST_STREAM_TYPE_AUDIO); PRINT_CONSTANT((guint) GST_STREAM_TYPE_CONTAINER); PRINT_CONSTANT((guint) GST_STREAM_TYPE_TEXT); PRINT_CONSTANT((guint) GST_STREAM_TYPE_UNKNOWN); PRINT_CONSTANT((guint) GST_STREAM_TYPE_VIDEO); PRINT_CONSTANT((gint) GST_STRUCTURE_CHANGE_TYPE_PAD_LINK); PRINT_CONSTANT((gint) GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK); PRINT_CONSTANT(GST_TAG_ALBUM); PRINT_CONSTANT(GST_TAG_ALBUM_ARTIST); PRINT_CONSTANT(GST_TAG_ALBUM_ARTIST_SORTNAME); PRINT_CONSTANT(GST_TAG_ALBUM_GAIN); PRINT_CONSTANT(GST_TAG_ALBUM_PEAK); PRINT_CONSTANT(GST_TAG_ALBUM_SORTNAME); PRINT_CONSTANT(GST_TAG_ALBUM_VOLUME_COUNT); PRINT_CONSTANT(GST_TAG_ALBUM_VOLUME_NUMBER); PRINT_CONSTANT(GST_TAG_APPLICATION_DATA); PRINT_CONSTANT(GST_TAG_APPLICATION_NAME); PRINT_CONSTANT(GST_TAG_ARTIST); PRINT_CONSTANT(GST_TAG_ARTIST_SORTNAME); PRINT_CONSTANT(GST_TAG_ATTACHMENT); PRINT_CONSTANT(GST_TAG_AUDIO_CODEC); PRINT_CONSTANT(GST_TAG_BEATS_PER_MINUTE); PRINT_CONSTANT(GST_TAG_BITRATE); PRINT_CONSTANT(GST_TAG_CODEC); PRINT_CONSTANT(GST_TAG_COMMENT); PRINT_CONSTANT(GST_TAG_COMPOSER); PRINT_CONSTANT(GST_TAG_COMPOSER_SORTNAME); PRINT_CONSTANT(GST_TAG_CONDUCTOR); PRINT_CONSTANT(GST_TAG_CONTACT); PRINT_CONSTANT(GST_TAG_CONTAINER_FORMAT); PRINT_CONSTANT(GST_TAG_CONTAINER_SPECIFIC_TRACK_ID); PRINT_CONSTANT(GST_TAG_COPYRIGHT); PRINT_CONSTANT(GST_TAG_COPYRIGHT_URI); PRINT_CONSTANT(GST_TAG_DATE); PRINT_CONSTANT(GST_TAG_DATE_TIME); PRINT_CONSTANT(GST_TAG_DESCRIPTION); PRINT_CONSTANT(GST_TAG_DEVICE_MANUFACTURER); PRINT_CONSTANT(GST_TAG_DEVICE_MODEL); PRINT_CONSTANT(GST_TAG_DURATION); PRINT_CONSTANT(GST_TAG_ENCODED_BY); PRINT_CONSTANT(GST_TAG_ENCODER); PRINT_CONSTANT(GST_TAG_ENCODER_VERSION); PRINT_CONSTANT(GST_TAG_EXTENDED_COMMENT); PRINT_CONSTANT((gint) GST_TAG_FLAG_COUNT); PRINT_CONSTANT((gint) GST_TAG_FLAG_DECODED); PRINT_CONSTANT((gint) GST_TAG_FLAG_ENCODED); PRINT_CONSTANT((gint) GST_TAG_FLAG_META); PRINT_CONSTANT((gint) GST_TAG_FLAG_UNDEFINED); PRINT_CONSTANT(GST_TAG_GENRE); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_CITY); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_COUNTRY); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_ELEVATION); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_LATITUDE); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_LONGITUDE); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_MOVEMENT_SPEED); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_NAME); PRINT_CONSTANT(GST_TAG_GEO_LOCATION_SUBLOCATION); PRINT_CONSTANT(GST_TAG_GROUPING); PRINT_CONSTANT(GST_TAG_HOMEPAGE); PRINT_CONSTANT(GST_TAG_IMAGE); PRINT_CONSTANT(GST_TAG_IMAGE_ORIENTATION); PRINT_CONSTANT(GST_TAG_INTERPRETED_BY); PRINT_CONSTANT(GST_TAG_ISRC); PRINT_CONSTANT(GST_TAG_KEYWORDS); PRINT_CONSTANT(GST_TAG_LANGUAGE_CODE); PRINT_CONSTANT(GST_TAG_LANGUAGE_NAME); PRINT_CONSTANT(GST_TAG_LICENSE); PRINT_CONSTANT(GST_TAG_LICENSE_URI); PRINT_CONSTANT(GST_TAG_LOCATION); PRINT_CONSTANT(GST_TAG_LYRICS); PRINT_CONSTANT(GST_TAG_MAXIMUM_BITRATE); PRINT_CONSTANT((gint) GST_TAG_MERGE_APPEND); PRINT_CONSTANT((gint) GST_TAG_MERGE_COUNT); PRINT_CONSTANT((gint) GST_TAG_MERGE_KEEP); PRINT_CONSTANT((gint) GST_TAG_MERGE_KEEP_ALL); PRINT_CONSTANT((gint) GST_TAG_MERGE_PREPEND); PRINT_CONSTANT((gint) GST_TAG_MERGE_REPLACE); PRINT_CONSTANT((gint) GST_TAG_MERGE_REPLACE_ALL); PRINT_CONSTANT((gint) GST_TAG_MERGE_UNDEFINED); PRINT_CONSTANT(GST_TAG_MIDI_BASE_NOTE); PRINT_CONSTANT(GST_TAG_MINIMUM_BITRATE); PRINT_CONSTANT(GST_TAG_NOMINAL_BITRATE); PRINT_CONSTANT(GST_TAG_ORGANIZATION); PRINT_CONSTANT(GST_TAG_PERFORMER); PRINT_CONSTANT(GST_TAG_PREVIEW_IMAGE); PRINT_CONSTANT(GST_TAG_PRIVATE_DATA); PRINT_CONSTANT(GST_TAG_PUBLISHER); PRINT_CONSTANT(GST_TAG_REFERENCE_LEVEL); PRINT_CONSTANT((gint) GST_TAG_SCOPE_GLOBAL); PRINT_CONSTANT((gint) GST_TAG_SCOPE_STREAM); PRINT_CONSTANT(GST_TAG_SERIAL); PRINT_CONSTANT(GST_TAG_SHOW_EPISODE_NUMBER); PRINT_CONSTANT(GST_TAG_SHOW_NAME); PRINT_CONSTANT(GST_TAG_SHOW_SEASON_NUMBER); PRINT_CONSTANT(GST_TAG_SHOW_SORTNAME); PRINT_CONSTANT(GST_TAG_SUBTITLE_CODEC); PRINT_CONSTANT(GST_TAG_TITLE); PRINT_CONSTANT(GST_TAG_TITLE_SORTNAME); PRINT_CONSTANT(GST_TAG_TRACK_COUNT); PRINT_CONSTANT(GST_TAG_TRACK_GAIN); PRINT_CONSTANT(GST_TAG_TRACK_NUMBER); PRINT_CONSTANT(GST_TAG_TRACK_PEAK); PRINT_CONSTANT(GST_TAG_USER_RATING); PRINT_CONSTANT(GST_TAG_VERSION); PRINT_CONSTANT(GST_TAG_VIDEO_CODEC); PRINT_CONSTANT((gint) GST_TASK_PAUSED); PRINT_CONSTANT((gint) GST_TASK_STARTED); PRINT_CONSTANT((gint) GST_TASK_STOPPED); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_ANGLE); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_CHAPTER); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_EDITION); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_INVALID); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_TITLE); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_TRACK); PRINT_CONSTANT((gint) GST_TOC_ENTRY_TYPE_VERSION); PRINT_CONSTANT((gint) GST_TOC_LOOP_FORWARD); PRINT_CONSTANT((gint) GST_TOC_LOOP_NONE); PRINT_CONSTANT((gint) GST_TOC_LOOP_PING_PONG); PRINT_CONSTANT((gint) GST_TOC_LOOP_REVERSE); PRINT_CONSTANT(GST_TOC_REPEAT_COUNT_INFINITE); PRINT_CONSTANT((gint) GST_TOC_SCOPE_CURRENT); PRINT_CONSTANT((gint) GST_TOC_SCOPE_GLOBAL); PRINT_CONSTANT((guint) GST_TRACER_VALUE_FLAGS_AGGREGATED); PRINT_CONSTANT((guint) GST_TRACER_VALUE_FLAGS_NONE); PRINT_CONSTANT((guint) GST_TRACER_VALUE_FLAGS_OPTIONAL); PRINT_CONSTANT((gint) GST_TRACER_VALUE_SCOPE_ELEMENT); PRINT_CONSTANT((gint) GST_TRACER_VALUE_SCOPE_PAD); PRINT_CONSTANT((gint) GST_TRACER_VALUE_SCOPE_PROCESS); PRINT_CONSTANT((gint) GST_TRACER_VALUE_SCOPE_THREAD); PRINT_CONSTANT((gint) GST_TYPE_FIND_LIKELY); PRINT_CONSTANT((gint) GST_TYPE_FIND_MAXIMUM); PRINT_CONSTANT((gint) GST_TYPE_FIND_MINIMUM); PRINT_CONSTANT((gint) GST_TYPE_FIND_NEARLY_CERTAIN); PRINT_CONSTANT((gint) GST_TYPE_FIND_NONE); PRINT_CONSTANT((gint) GST_TYPE_FIND_POSSIBLE); PRINT_CONSTANT((gint) GST_URI_ERROR_BAD_REFERENCE); PRINT_CONSTANT((gint) GST_URI_ERROR_BAD_STATE); PRINT_CONSTANT((gint) GST_URI_ERROR_BAD_URI); PRINT_CONSTANT((gint) GST_URI_ERROR_UNSUPPORTED_PROTOCOL); PRINT_CONSTANT(GST_URI_NO_PORT); PRINT_CONSTANT((gint) GST_URI_SINK); PRINT_CONSTANT((gint) GST_URI_SRC); PRINT_CONSTANT((gint) GST_URI_UNKNOWN); PRINT_CONSTANT(GST_USECOND); PRINT_CONSTANT(GST_VALUE_EQUAL); PRINT_CONSTANT(GST_VALUE_GREATER_THAN); PRINT_CONSTANT(GST_VALUE_LESS_THAN); PRINT_CONSTANT(GST_VALUE_UNORDERED); return 0; } gstreamer-sys-0.23.0/tests/layout.c000064400000000000000000000427471046102023000153540ustar 00000000000000// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git) // DO NOT EDIT #include "manual.h" #include #include int main() { printf("%s;%zu;%zu\n", "GstAllocationParams", sizeof(GstAllocationParams), alignof(GstAllocationParams)); printf("%s;%zu;%zu\n", "GstAllocator", sizeof(GstAllocator), alignof(GstAllocator)); printf("%s;%zu;%zu\n", "GstAllocatorClass", sizeof(GstAllocatorClass), alignof(GstAllocatorClass)); printf("%s;%zu;%zu\n", "GstAllocatorFlags", sizeof(GstAllocatorFlags), alignof(GstAllocatorFlags)); printf("%s;%zu;%zu\n", "GstBin", sizeof(GstBin), alignof(GstBin)); printf("%s;%zu;%zu\n", "GstBinClass", sizeof(GstBinClass), alignof(GstBinClass)); printf("%s;%zu;%zu\n", "GstBinFlags", sizeof(GstBinFlags), alignof(GstBinFlags)); printf("%s;%zu;%zu\n", "GstBuffer", sizeof(GstBuffer), alignof(GstBuffer)); printf("%s;%zu;%zu\n", "GstBufferCopyFlags", sizeof(GstBufferCopyFlags), alignof(GstBufferCopyFlags)); printf("%s;%zu;%zu\n", "GstBufferFlags", sizeof(GstBufferFlags), alignof(GstBufferFlags)); printf("%s;%zu;%zu\n", "GstBufferMapInfo", sizeof(GstBufferMapInfo), alignof(GstBufferMapInfo)); printf("%s;%zu;%zu\n", "GstBufferPool", sizeof(GstBufferPool), alignof(GstBufferPool)); printf("%s;%zu;%zu\n", "GstBufferPoolAcquireFlags", sizeof(GstBufferPoolAcquireFlags), alignof(GstBufferPoolAcquireFlags)); printf("%s;%zu;%zu\n", "GstBufferPoolAcquireParams", sizeof(GstBufferPoolAcquireParams), alignof(GstBufferPoolAcquireParams)); printf("%s;%zu;%zu\n", "GstBufferPoolClass", sizeof(GstBufferPoolClass), alignof(GstBufferPoolClass)); printf("%s;%zu;%zu\n", "GstBufferingMode", sizeof(GstBufferingMode), alignof(GstBufferingMode)); printf("%s;%zu;%zu\n", "GstBus", sizeof(GstBus), alignof(GstBus)); printf("%s;%zu;%zu\n", "GstBusClass", sizeof(GstBusClass), alignof(GstBusClass)); printf("%s;%zu;%zu\n", "GstBusFlags", sizeof(GstBusFlags), alignof(GstBusFlags)); printf("%s;%zu;%zu\n", "GstBusSyncReply", sizeof(GstBusSyncReply), alignof(GstBusSyncReply)); printf("%s;%zu;%zu\n", "GstByteArrayInterface", sizeof(GstByteArrayInterface), alignof(GstByteArrayInterface)); printf("%s;%zu;%zu\n", "GstCaps", sizeof(GstCaps), alignof(GstCaps)); printf("%s;%zu;%zu\n", "GstCapsFlags", sizeof(GstCapsFlags), alignof(GstCapsFlags)); printf("%s;%zu;%zu\n", "GstCapsIntersectMode", sizeof(GstCapsIntersectMode), alignof(GstCapsIntersectMode)); printf("%s;%zu;%zu\n", "GstChildProxyInterface", sizeof(GstChildProxyInterface), alignof(GstChildProxyInterface)); printf("%s;%zu;%zu\n", "GstClock", sizeof(GstClock), alignof(GstClock)); printf("%s;%zu;%zu\n", "GstClockClass", sizeof(GstClockClass), alignof(GstClockClass)); printf("%s;%zu;%zu\n", "GstClockEntry", sizeof(GstClockEntry), alignof(GstClockEntry)); printf("%s;%zu;%zu\n", "GstClockEntryType", sizeof(GstClockEntryType), alignof(GstClockEntryType)); printf("%s;%zu;%zu\n", "GstClockFlags", sizeof(GstClockFlags), alignof(GstClockFlags)); printf("%s;%zu;%zu\n", "GstClockID", sizeof(GstClockID), alignof(GstClockID)); printf("%s;%zu;%zu\n", "GstClockReturn", sizeof(GstClockReturn), alignof(GstClockReturn)); printf("%s;%zu;%zu\n", "GstClockTime", sizeof(GstClockTime), alignof(GstClockTime)); printf("%s;%zu;%zu\n", "GstClockTimeDiff", sizeof(GstClockTimeDiff), alignof(GstClockTimeDiff)); printf("%s;%zu;%zu\n", "GstClockType", sizeof(GstClockType), alignof(GstClockType)); printf("%s;%zu;%zu\n", "GstControlBinding", sizeof(GstControlBinding), alignof(GstControlBinding)); printf("%s;%zu;%zu\n", "GstControlBindingClass", sizeof(GstControlBindingClass), alignof(GstControlBindingClass)); printf("%s;%zu;%zu\n", "GstControlSource", sizeof(GstControlSource), alignof(GstControlSource)); printf("%s;%zu;%zu\n", "GstControlSourceClass", sizeof(GstControlSourceClass), alignof(GstControlSourceClass)); printf("%s;%zu;%zu\n", "GstCoreError", sizeof(GstCoreError), alignof(GstCoreError)); printf("%s;%zu;%zu\n", "GstCustomMeta", sizeof(GstCustomMeta), alignof(GstCustomMeta)); printf("%s;%zu;%zu\n", "GstDebugCategory", sizeof(GstDebugCategory), alignof(GstDebugCategory)); printf("%s;%zu;%zu\n", "GstDebugColorFlags", sizeof(GstDebugColorFlags), alignof(GstDebugColorFlags)); printf("%s;%zu;%zu\n", "GstDebugColorMode", sizeof(GstDebugColorMode), alignof(GstDebugColorMode)); printf("%s;%zu;%zu\n", "GstDebugGraphDetails", sizeof(GstDebugGraphDetails), alignof(GstDebugGraphDetails)); printf("%s;%zu;%zu\n", "GstDebugLevel", sizeof(GstDebugLevel), alignof(GstDebugLevel)); printf("%s;%zu;%zu\n", "GstDevice", sizeof(GstDevice), alignof(GstDevice)); printf("%s;%zu;%zu\n", "GstDeviceClass", sizeof(GstDeviceClass), alignof(GstDeviceClass)); printf("%s;%zu;%zu\n", "GstDeviceMonitor", sizeof(GstDeviceMonitor), alignof(GstDeviceMonitor)); printf("%s;%zu;%zu\n", "GstDeviceMonitorClass", sizeof(GstDeviceMonitorClass), alignof(GstDeviceMonitorClass)); printf("%s;%zu;%zu\n", "GstDeviceProvider", sizeof(GstDeviceProvider), alignof(GstDeviceProvider)); printf("%s;%zu;%zu\n", "GstDeviceProviderClass", sizeof(GstDeviceProviderClass), alignof(GstDeviceProviderClass)); printf("%s;%zu;%zu\n", "GstElement", sizeof(GstElement), alignof(GstElement)); printf("%s;%zu;%zu\n", "GstElementClass", sizeof(GstElementClass), alignof(GstElementClass)); printf("%s;%zu;%zu\n", "GstElementFactoryListType", sizeof(GstElementFactoryListType), alignof(GstElementFactoryListType)); printf("%s;%zu;%zu\n", "GstElementFlags", sizeof(GstElementFlags), alignof(GstElementFlags)); printf("%s;%zu;%zu\n", "GstEvent", sizeof(GstEvent), alignof(GstEvent)); printf("%s;%zu;%zu\n", "GstEventType", sizeof(GstEventType), alignof(GstEventType)); printf("%s;%zu;%zu\n", "GstEventTypeFlags", sizeof(GstEventTypeFlags), alignof(GstEventTypeFlags)); printf("%s;%zu;%zu\n", "GstFlowReturn", sizeof(GstFlowReturn), alignof(GstFlowReturn)); printf("%s;%zu;%zu\n", "GstFormat", sizeof(GstFormat), alignof(GstFormat)); printf("%s;%zu;%zu\n", "GstFormatDefinition", sizeof(GstFormatDefinition), alignof(GstFormatDefinition)); printf("%s;%zu;%zu\n", "GstGapFlags", sizeof(GstGapFlags), alignof(GstGapFlags)); printf("%s;%zu;%zu\n", "GstGhostPad", sizeof(GstGhostPad), alignof(GstGhostPad)); printf("%s;%zu;%zu\n", "GstGhostPadClass", sizeof(GstGhostPadClass), alignof(GstGhostPadClass)); printf("%s;%zu;%zu\n", "GstIterator", sizeof(GstIterator), alignof(GstIterator)); printf("%s;%zu;%zu\n", "GstIteratorItem", sizeof(GstIteratorItem), alignof(GstIteratorItem)); printf("%s;%zu;%zu\n", "GstIteratorResult", sizeof(GstIteratorResult), alignof(GstIteratorResult)); printf("%s;%zu;%zu\n", "GstLibraryError", sizeof(GstLibraryError), alignof(GstLibraryError)); printf("%s;%zu;%zu\n", "GstLockFlags", sizeof(GstLockFlags), alignof(GstLockFlags)); printf("%s;%zu;%zu\n", "GstMapFlags", sizeof(GstMapFlags), alignof(GstMapFlags)); printf("%s;%zu;%zu\n", "GstMapInfo", sizeof(GstMapInfo), alignof(GstMapInfo)); printf("%s;%zu;%zu\n", "GstMemory", sizeof(GstMemory), alignof(GstMemory)); printf("%s;%zu;%zu\n", "GstMemoryFlags", sizeof(GstMemoryFlags), alignof(GstMemoryFlags)); printf("%s;%zu;%zu\n", "GstMemoryMapInfo", sizeof(GstMemoryMapInfo), alignof(GstMemoryMapInfo)); printf("%s;%zu;%zu\n", "GstMessage", sizeof(GstMessage), alignof(GstMessage)); printf("%s;%zu;%zu\n", "GstMessageType", sizeof(GstMessageType), alignof(GstMessageType)); printf("%s;%zu;%zu\n", "GstMeta", sizeof(GstMeta), alignof(GstMeta)); printf("%s;%zu;%zu\n", "GstMetaFlags", sizeof(GstMetaFlags), alignof(GstMetaFlags)); printf("%s;%zu;%zu\n", "GstMetaInfo", sizeof(GstMetaInfo), alignof(GstMetaInfo)); printf("%s;%zu;%zu\n", "GstMetaTransformCopy", sizeof(GstMetaTransformCopy), alignof(GstMetaTransformCopy)); printf("%s;%zu;%zu\n", "GstMiniObject", sizeof(GstMiniObject), alignof(GstMiniObject)); printf("%s;%zu;%zu\n", "GstMiniObjectFlags", sizeof(GstMiniObjectFlags), alignof(GstMiniObjectFlags)); printf("%s;%zu;%zu\n", "GstObject", sizeof(GstObject), alignof(GstObject)); printf("%s;%zu;%zu\n", "GstObjectClass", sizeof(GstObjectClass), alignof(GstObjectClass)); printf("%s;%zu;%zu\n", "GstObjectFlags", sizeof(GstObjectFlags), alignof(GstObjectFlags)); printf("%s;%zu;%zu\n", "GstPad", sizeof(GstPad), alignof(GstPad)); printf("%s;%zu;%zu\n", "GstPadClass", sizeof(GstPadClass), alignof(GstPadClass)); printf("%s;%zu;%zu\n", "GstPadDirection", sizeof(GstPadDirection), alignof(GstPadDirection)); printf("%s;%zu;%zu\n", "GstPadFlags", sizeof(GstPadFlags), alignof(GstPadFlags)); printf("%s;%zu;%zu\n", "GstPadLinkCheck", sizeof(GstPadLinkCheck), alignof(GstPadLinkCheck)); printf("%s;%zu;%zu\n", "GstPadLinkReturn", sizeof(GstPadLinkReturn), alignof(GstPadLinkReturn)); printf("%s;%zu;%zu\n", "GstPadMode", sizeof(GstPadMode), alignof(GstPadMode)); printf("%s;%zu;%zu\n", "GstPadPresence", sizeof(GstPadPresence), alignof(GstPadPresence)); printf("%s;%zu;%zu\n", "GstPadProbeInfo", sizeof(GstPadProbeInfo), alignof(GstPadProbeInfo)); printf("%s;%zu;%zu\n", "GstPadProbeReturn", sizeof(GstPadProbeReturn), alignof(GstPadProbeReturn)); printf("%s;%zu;%zu\n", "GstPadProbeType", sizeof(GstPadProbeType), alignof(GstPadProbeType)); printf("%s;%zu;%zu\n", "GstPadTemplate", sizeof(GstPadTemplate), alignof(GstPadTemplate)); printf("%s;%zu;%zu\n", "GstPadTemplateClass", sizeof(GstPadTemplateClass), alignof(GstPadTemplateClass)); printf("%s;%zu;%zu\n", "GstPadTemplateFlags", sizeof(GstPadTemplateFlags), alignof(GstPadTemplateFlags)); printf("%s;%zu;%zu\n", "GstParamSpecArray", sizeof(GstParamSpecArray), alignof(GstParamSpecArray)); printf("%s;%zu;%zu\n", "GstParamSpecFraction", sizeof(GstParamSpecFraction), alignof(GstParamSpecFraction)); printf("%s;%zu;%zu\n", "GstParentBufferMeta", sizeof(GstParentBufferMeta), alignof(GstParentBufferMeta)); printf("%s;%zu;%zu\n", "GstParseError", sizeof(GstParseError), alignof(GstParseError)); printf("%s;%zu;%zu\n", "GstParseFlags", sizeof(GstParseFlags), alignof(GstParseFlags)); printf("%s;%zu;%zu\n", "GstPipeline", sizeof(GstPipeline), alignof(GstPipeline)); printf("%s;%zu;%zu\n", "GstPipelineClass", sizeof(GstPipelineClass), alignof(GstPipelineClass)); printf("%s;%zu;%zu\n", "GstPipelineFlags", sizeof(GstPipelineFlags), alignof(GstPipelineFlags)); printf("%s;%zu;%zu\n", "GstPluginAPIFlags", sizeof(GstPluginAPIFlags), alignof(GstPluginAPIFlags)); printf("%s;%zu;%zu\n", "GstPluginDependencyFlags", sizeof(GstPluginDependencyFlags), alignof(GstPluginDependencyFlags)); printf("%s;%zu;%zu\n", "GstPluginDesc", sizeof(GstPluginDesc), alignof(GstPluginDesc)); printf("%s;%zu;%zu\n", "GstPluginError", sizeof(GstPluginError), alignof(GstPluginError)); printf("%s;%zu;%zu\n", "GstPluginFlags", sizeof(GstPluginFlags), alignof(GstPluginFlags)); printf("%s;%zu;%zu\n", "GstPollFD", sizeof(GstPollFD), alignof(GstPollFD)); printf("%s;%zu;%zu\n", "GstPresetInterface", sizeof(GstPresetInterface), alignof(GstPresetInterface)); printf("%s;%zu;%zu\n", "GstProgressType", sizeof(GstProgressType), alignof(GstProgressType)); printf("%s;%zu;%zu\n", "GstPromise", sizeof(GstPromise), alignof(GstPromise)); printf("%s;%zu;%zu\n", "GstPromiseResult", sizeof(GstPromiseResult), alignof(GstPromiseResult)); printf("%s;%zu;%zu\n", "GstProtectionMeta", sizeof(GstProtectionMeta), alignof(GstProtectionMeta)); printf("%s;%zu;%zu\n", "GstProxyPad", sizeof(GstProxyPad), alignof(GstProxyPad)); printf("%s;%zu;%zu\n", "GstProxyPadClass", sizeof(GstProxyPadClass), alignof(GstProxyPadClass)); printf("%s;%zu;%zu\n", "GstQOSType", sizeof(GstQOSType), alignof(GstQOSType)); printf("%s;%zu;%zu\n", "GstQuery", sizeof(GstQuery), alignof(GstQuery)); printf("%s;%zu;%zu\n", "GstQueryType", sizeof(GstQueryType), alignof(GstQueryType)); printf("%s;%zu;%zu\n", "GstQueryTypeFlags", sizeof(GstQueryTypeFlags), alignof(GstQueryTypeFlags)); printf("%s;%zu;%zu\n", "GstRank", sizeof(GstRank), alignof(GstRank)); printf("%s;%zu;%zu\n", "GstReferenceTimestampMeta", sizeof(GstReferenceTimestampMeta), alignof(GstReferenceTimestampMeta)); printf("%s;%zu;%zu\n", "GstRegistry", sizeof(GstRegistry), alignof(GstRegistry)); printf("%s;%zu;%zu\n", "GstRegistryClass", sizeof(GstRegistryClass), alignof(GstRegistryClass)); printf("%s;%zu;%zu\n", "GstResourceError", sizeof(GstResourceError), alignof(GstResourceError)); printf("%s;%zu;%zu\n", "GstSchedulingFlags", sizeof(GstSchedulingFlags), alignof(GstSchedulingFlags)); printf("%s;%zu;%zu\n", "GstSearchMode", sizeof(GstSearchMode), alignof(GstSearchMode)); printf("%s;%zu;%zu\n", "GstSeekFlags", sizeof(GstSeekFlags), alignof(GstSeekFlags)); printf("%s;%zu;%zu\n", "GstSeekType", sizeof(GstSeekType), alignof(GstSeekType)); printf("%s;%zu;%zu\n", "GstSegment", sizeof(GstSegment), alignof(GstSegment)); printf("%s;%zu;%zu\n", "GstSegmentFlags", sizeof(GstSegmentFlags), alignof(GstSegmentFlags)); printf("%s;%zu;%zu\n", "GstSerializeFlags", sizeof(GstSerializeFlags), alignof(GstSerializeFlags)); printf("%s;%zu;%zu\n", "GstSharedTaskPool", sizeof(GstSharedTaskPool), alignof(GstSharedTaskPool)); printf("%s;%zu;%zu\n", "GstSharedTaskPoolClass", sizeof(GstSharedTaskPoolClass), alignof(GstSharedTaskPoolClass)); printf("%s;%zu;%zu\n", "GstStackTraceFlags", sizeof(GstStackTraceFlags), alignof(GstStackTraceFlags)); printf("%s;%zu;%zu\n", "GstState", sizeof(GstState), alignof(GstState)); printf("%s;%zu;%zu\n", "GstStateChange", sizeof(GstStateChange), alignof(GstStateChange)); printf("%s;%zu;%zu\n", "GstStateChangeReturn", sizeof(GstStateChangeReturn), alignof(GstStateChangeReturn)); printf("%s;%zu;%zu\n", "GstStaticCaps", sizeof(GstStaticCaps), alignof(GstStaticCaps)); printf("%s;%zu;%zu\n", "GstStaticPadTemplate", sizeof(GstStaticPadTemplate), alignof(GstStaticPadTemplate)); printf("%s;%zu;%zu\n", "GstStream", sizeof(GstStream), alignof(GstStream)); printf("%s;%zu;%zu\n", "GstStreamClass", sizeof(GstStreamClass), alignof(GstStreamClass)); printf("%s;%zu;%zu\n", "GstStreamCollection", sizeof(GstStreamCollection), alignof(GstStreamCollection)); printf("%s;%zu;%zu\n", "GstStreamCollectionClass", sizeof(GstStreamCollectionClass), alignof(GstStreamCollectionClass)); printf("%s;%zu;%zu\n", "GstStreamError", sizeof(GstStreamError), alignof(GstStreamError)); printf("%s;%zu;%zu\n", "GstStreamFlags", sizeof(GstStreamFlags), alignof(GstStreamFlags)); printf("%s;%zu;%zu\n", "GstStreamStatusType", sizeof(GstStreamStatusType), alignof(GstStreamStatusType)); printf("%s;%zu;%zu\n", "GstStreamType", sizeof(GstStreamType), alignof(GstStreamType)); printf("%s;%zu;%zu\n", "GstStructure", sizeof(GstStructure), alignof(GstStructure)); printf("%s;%zu;%zu\n", "GstStructureChangeType", sizeof(GstStructureChangeType), alignof(GstStructureChangeType)); printf("%s;%zu;%zu\n", "GstSystemClock", sizeof(GstSystemClock), alignof(GstSystemClock)); printf("%s;%zu;%zu\n", "GstSystemClockClass", sizeof(GstSystemClockClass), alignof(GstSystemClockClass)); printf("%s;%zu;%zu\n", "GstTagFlag", sizeof(GstTagFlag), alignof(GstTagFlag)); printf("%s;%zu;%zu\n", "GstTagList", sizeof(GstTagList), alignof(GstTagList)); printf("%s;%zu;%zu\n", "GstTagMergeMode", sizeof(GstTagMergeMode), alignof(GstTagMergeMode)); printf("%s;%zu;%zu\n", "GstTagScope", sizeof(GstTagScope), alignof(GstTagScope)); printf("%s;%zu;%zu\n", "GstTagSetterInterface", sizeof(GstTagSetterInterface), alignof(GstTagSetterInterface)); printf("%s;%zu;%zu\n", "GstTask", sizeof(GstTask), alignof(GstTask)); printf("%s;%zu;%zu\n", "GstTaskClass", sizeof(GstTaskClass), alignof(GstTaskClass)); printf("%s;%zu;%zu\n", "GstTaskPool", sizeof(GstTaskPool), alignof(GstTaskPool)); printf("%s;%zu;%zu\n", "GstTaskPoolClass", sizeof(GstTaskPoolClass), alignof(GstTaskPoolClass)); printf("%s;%zu;%zu\n", "GstTaskState", sizeof(GstTaskState), alignof(GstTaskState)); printf("%s;%zu;%zu\n", "GstTimedValue", sizeof(GstTimedValue), alignof(GstTimedValue)); printf("%s;%zu;%zu\n", "GstTocEntryType", sizeof(GstTocEntryType), alignof(GstTocEntryType)); printf("%s;%zu;%zu\n", "GstTocLoopType", sizeof(GstTocLoopType), alignof(GstTocLoopType)); printf("%s;%zu;%zu\n", "GstTocScope", sizeof(GstTocScope), alignof(GstTocScope)); printf("%s;%zu;%zu\n", "GstTocSetterInterface", sizeof(GstTocSetterInterface), alignof(GstTocSetterInterface)); printf("%s;%zu;%zu\n", "GstTracer", sizeof(GstTracer), alignof(GstTracer)); printf("%s;%zu;%zu\n", "GstTracerClass", sizeof(GstTracerClass), alignof(GstTracerClass)); printf("%s;%zu;%zu\n", "GstTracerValueFlags", sizeof(GstTracerValueFlags), alignof(GstTracerValueFlags)); printf("%s;%zu;%zu\n", "GstTracerValueScope", sizeof(GstTracerValueScope), alignof(GstTracerValueScope)); printf("%s;%zu;%zu\n", "GstTypeFind", sizeof(GstTypeFind), alignof(GstTypeFind)); printf("%s;%zu;%zu\n", "GstTypeFindProbability", sizeof(GstTypeFindProbability), alignof(GstTypeFindProbability)); printf("%s;%zu;%zu\n", "GstURIError", sizeof(GstURIError), alignof(GstURIError)); printf("%s;%zu;%zu\n", "GstURIHandlerInterface", sizeof(GstURIHandlerInterface), alignof(GstURIHandlerInterface)); printf("%s;%zu;%zu\n", "GstURIType", sizeof(GstURIType), alignof(GstURIType)); printf("%s;%zu;%zu\n", "GstValueTable", sizeof(GstValueTable), alignof(GstValueTable)); return 0; } gstreamer-sys-0.23.0/tests/manual.h000064400000000000000000000001571046102023000153060ustar 00000000000000// Feel free to edit this file, it won't be regenerated by gir generator unless removed. #include