// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

mod allocator;
pub use self::allocator::AllocatorExt;
pub use self::allocator::{Allocator, AllocatorClass, NONE_ALLOCATOR};

mod bin;
pub use self::bin::GstBinExt;
pub use self::bin::{Bin, BinClass, NONE_BIN};

mod buffer_pool;
pub use self::buffer_pool::BufferPoolExt;
pub use self::buffer_pool::{BufferPool, BufferPoolClass, NONE_BUFFER_POOL};

mod bus;
pub use self::bus::{Bus, BusClass};

mod child_proxy;
pub use self::child_proxy::ChildProxyExt;
pub use self::child_proxy::{ChildProxy, NONE_CHILD_PROXY};

mod clock;
pub use self::clock::ClockExt;
pub use self::clock::{Clock, ClockClass, NONE_CLOCK};

mod device;
pub use self::device::DeviceExt;
pub use self::device::{Device, DeviceClass, NONE_DEVICE};

mod device_monitor;
pub use self::device_monitor::DeviceMonitorExt;
pub use self::device_monitor::{DeviceMonitor, DeviceMonitorClass, NONE_DEVICE_MONITOR};

mod device_provider;
pub use self::device_provider::DeviceProviderExt;
pub use self::device_provider::{DeviceProvider, DeviceProviderClass, NONE_DEVICE_PROVIDER};

mod device_provider_factory;
pub use self::device_provider_factory::{DeviceProviderFactory, DeviceProviderFactoryClass};

mod element;
pub use self::element::ElementExt;
pub use self::element::{Element, ElementClass, NONE_ELEMENT};

mod element_factory;
pub use self::element_factory::{ElementFactory, ElementFactoryClass};

mod ghost_pad;
pub use self::ghost_pad::GhostPadExt;
pub use self::ghost_pad::{GhostPad, GhostPadClass, NONE_GHOST_PAD};

mod object;
pub use self::object::GstObjectExt;
pub use self::object::{Object, ObjectClass, NONE_OBJECT};

mod pad;
pub use self::pad::PadExt;
pub use self::pad::{Pad, PadClass, NONE_PAD};

mod pad_template;
pub use self::pad_template::{PadTemplate, PadTemplateClass};

mod pipeline;
pub use self::pipeline::PipelineExt;
pub use self::pipeline::{Pipeline, PipelineClass, NONE_PIPELINE};

mod plugin;
pub use self::plugin::{Plugin, PluginClass};

mod plugin_feature;
pub use self::plugin_feature::PluginFeatureExt;
pub use self::plugin_feature::{PluginFeature, PluginFeatureClass, NONE_PLUGIN_FEATURE};

mod preset;
pub use self::preset::PresetExt;
pub use self::preset::{Preset, NONE_PRESET};

mod proxy_pad;
pub use self::proxy_pad::ProxyPadExt;
pub use self::proxy_pad::{ProxyPad, ProxyPadClass, NONE_PROXY_PAD};

mod registry;
pub use self::registry::{Registry, RegistryClass};

#[cfg(any(feature = "v1_10", feature = "dox"))]
mod stream;
#[cfg(any(feature = "v1_10", feature = "dox"))]
pub use self::stream::{Stream, StreamClass};

#[cfg(any(feature = "v1_10", feature = "dox"))]
mod stream_collection;
#[cfg(any(feature = "v1_10", feature = "dox"))]
pub use self::stream_collection::{StreamCollection, StreamCollectionClass};

mod system_clock;
pub use self::system_clock::SystemClockExt;
pub use self::system_clock::{SystemClock, SystemClockClass, NONE_SYSTEM_CLOCK};

mod tag_setter;
pub use self::tag_setter::TagSetterExt;
pub use self::tag_setter::{TagSetter, NONE_TAG_SETTER};

mod toc_setter;
pub use self::toc_setter::TocSetterExt;
pub use self::toc_setter::{TocSetter, NONE_TOC_SETTER};

mod type_find_factory;
pub use self::type_find_factory::{TypeFindFactory, TypeFindFactoryClass};

mod uri_handler;
pub use self::uri_handler::URIHandlerExt;
pub use self::uri_handler::{URIHandler, NONE_URI_HANDLER};

mod date_time;
pub use self::date_time::DateTime;

mod enums;
pub use self::enums::BufferingMode;
pub use self::enums::BusSyncReply;
pub use self::enums::CapsIntersectMode;
pub use self::enums::ClockEntryType;
pub use self::enums::ClockReturn;
pub use self::enums::ClockType;
pub use self::enums::CoreError;
pub use self::enums::DebugLevel;
pub use self::enums::EventType;
pub use self::enums::FlowReturn;
pub use self::enums::Format;
pub use self::enums::LibraryError;
pub use self::enums::PadDirection;
pub use self::enums::PadLinkReturn;
pub use self::enums::PadMode;
pub use self::enums::PadPresence;
pub use self::enums::PadProbeReturn;
pub use self::enums::ParseError;
pub use self::enums::PluginError;
pub use self::enums::ProgressType;
#[cfg(any(feature = "v1_14", feature = "dox"))]
pub use self::enums::PromiseResult;
pub use self::enums::QOSType;
pub use self::enums::Rank;
pub use self::enums::ResourceError;
pub use self::enums::SeekType;
pub use self::enums::State;
pub use self::enums::StateChange;
pub use self::enums::StateChangeReturn;
pub use self::enums::StreamError;
pub use self::enums::StreamStatusType;
pub use self::enums::StructureChangeType;
pub use self::enums::TagFlag;
pub use self::enums::TagMergeMode;
pub use self::enums::TagScope;
pub use self::enums::TaskState;
pub use self::enums::TocEntryType;
pub use self::enums::TocLoopType;
pub use self::enums::TocScope;
pub use self::enums::TypeFindProbability;
pub use self::enums::URIError;
pub use self::enums::URIType;

mod flags;
pub use self::flags::BinFlags;
pub use self::flags::BufferCopyFlags;
pub use self::flags::BufferFlags;
pub use self::flags::BufferPoolAcquireFlags;
pub use self::flags::ClockFlags;
pub use self::flags::DebugColorFlags;
pub use self::flags::DebugGraphDetails;
pub use self::flags::ElementFlags;
pub use self::flags::MemoryFlags;
pub use self::flags::ObjectFlags;
pub use self::flags::PadFlags;
pub use self::flags::PadLinkCheck;
pub use self::flags::PadProbeType;
pub use self::flags::ParseFlags;
pub use self::flags::PipelineFlags;
#[cfg(any(feature = "v1_18", feature = "dox"))]
pub use self::flags::PluginAPIFlags;
pub use self::flags::PluginDependencyFlags;
pub use self::flags::PluginFlags;
pub use self::flags::SchedulingFlags;
pub use self::flags::SeekFlags;
pub use self::flags::SegmentFlags;
#[cfg(any(feature = "v1_12", feature = "dox"))]
pub use self::flags::StackTraceFlags;
pub use self::flags::StreamFlags;
#[cfg(any(feature = "v1_10", feature = "dox"))]
pub use self::flags::StreamType;

mod alias;
pub use self::alias::ClockTimeDiff;
pub use self::alias::ElementFactoryListType;

pub mod functions;

#[doc(hidden)]
pub mod traits {
    pub use super::AllocatorExt;
    pub use super::BufferPoolExt;
    pub use super::ChildProxyExt;
    pub use super::ClockExt;
    pub use super::DeviceExt;
    pub use super::DeviceMonitorExt;
    pub use super::DeviceProviderExt;
    pub use super::ElementExt;
    pub use super::GhostPadExt;
    pub use super::GstBinExt;
    pub use super::GstObjectExt;
    pub use super::PadExt;
    pub use super::PipelineExt;
    pub use super::PluginFeatureExt;
    pub use super::PresetExt;
    pub use super::ProxyPadExt;
    pub use super::SystemClockExt;
    pub use super::TagSetterExt;
    pub use super::TocSetterExt;
    pub use super::URIHandlerExt;
}
