1// Take a look at the license at the top of the repository in the LICENSE file.
2
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![allow(clippy::missing_safety_doc)]
5#![doc = include_str!("../README.md")]
6
7pub use ffi;
8pub use glib;
9pub use gst;
10pub use gst_base;
11
12macro_rules! assert_initialized_main_thread {
13 () => {
14 if !gst::INITIALIZED.load(std::sync::atomic::Ordering::SeqCst) {
15 gst::assert_initialized();
16 }
17 };
18}
19
20macro_rules! skip_assert_initialized {
21 () => {};
22}
23
24#[allow(clippy::needless_borrow)]
25mod auto;
26pub use crate::auto::*;
27
28mod caps;
29pub use crate::caps::AudioCapsBuilder;
30
31#[cfg(feature = "serde")]
32mod flag_serde;
33
34mod audio_format;
35pub use crate::audio_format::*;
36mod audio_format_info;
37pub use crate::audio_format_info::*;
38mod audio_ring_buffer_spec;
39pub use crate::audio_ring_buffer_spec::*;
40mod audio_info;
41pub use crate::audio_info::*;
42mod audio_meta;
43pub use crate::audio_meta::*;
44mod audio_channel_position;
45pub use crate::audio_channel_position::*;
46mod audio_aggregator;
47mod audio_aggregator_convert_pad;
48mod audio_aggregator_pad;
49mod audio_stream_align;
50mod functions;
51pub use crate::functions::*;
52#[cfg(feature = "v1_16")]
53#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
54pub mod audio_buffer;
55#[cfg(feature = "v1_16")]
56#[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
57pub use audio_buffer::{AudioBuffer, AudioBufferRef};
58
59mod audio_decoder;
60mod audio_encoder;
61
62mod audio_converter;
63pub use crate::audio_converter::AudioConverterConfig;
64
65// Re-export all the traits in a prelude module, so that applications
66// can always "use gst_audio::prelude::*" without getting conflicts
67pub mod prelude {
68 #[doc(hidden)]
69 pub use gst_base::prelude::*;
70
71 pub use super::{audio_decoder::AudioDecoderExtManual, audio_encoder::AudioEncoderExtManual};
72 pub use crate::{
73 audio_aggregator::AudioAggregatorExtManual,
74 audio_aggregator_convert_pad::AudioAggregatorConvertPadExtManual,
75 audio_aggregator_pad::AudioAggregatorPadExtManual, audio_format::AudioFormatIteratorExt,
76 auto::traits::*,
77 };
78}
79
80pub mod subclass;
81