1#![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)]
7#![allow(
8 clippy::approx_constant,
9 clippy::type_complexity,
10 clippy::unreadable_literal,
11 clippy::upper_case_acronyms
12)]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15use glib_sys as glib;
16use gobject_sys as gobject;
17use gstreamer_base_sys as gst_base;
18use gstreamer_sys as gst;
19
20#[allow(unused_imports)]
21use libc::{FILE, intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t};
22#[cfg(unix)]
23#[allow(unused_imports)]
24use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t};
25#[allow(unused_imports)]
26use std::ffi::{
27 c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void,
28};
29
30#[allow(unused_imports)]
31use glib::{GType, gboolean, gconstpointer, gpointer};
32
33pub type GstAudioBaseSinkDiscontReason = c_int;
35pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_NO_DISCONT: GstAudioBaseSinkDiscontReason = 0;
36pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_NEW_CAPS: GstAudioBaseSinkDiscontReason = 1;
37pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_FLUSH: GstAudioBaseSinkDiscontReason = 2;
38pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_SYNC_LATENCY: GstAudioBaseSinkDiscontReason = 3;
39pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_ALIGNMENT: GstAudioBaseSinkDiscontReason = 4;
40pub const GST_AUDIO_BASE_SINK_DISCONT_REASON_DEVICE_FAILURE: GstAudioBaseSinkDiscontReason = 5;
41
42pub type GstAudioBaseSinkSlaveMethod = c_int;
43pub const GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE: GstAudioBaseSinkSlaveMethod = 0;
44pub const GST_AUDIO_BASE_SINK_SLAVE_SKEW: GstAudioBaseSinkSlaveMethod = 1;
45pub const GST_AUDIO_BASE_SINK_SLAVE_NONE: GstAudioBaseSinkSlaveMethod = 2;
46pub const GST_AUDIO_BASE_SINK_SLAVE_CUSTOM: GstAudioBaseSinkSlaveMethod = 3;
47
48pub type GstAudioBaseSrcSlaveMethod = c_int;
49pub const GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE: GstAudioBaseSrcSlaveMethod = 0;
50pub const GST_AUDIO_BASE_SRC_SLAVE_RE_TIMESTAMP: GstAudioBaseSrcSlaveMethod = 1;
51pub const GST_AUDIO_BASE_SRC_SLAVE_SKEW: GstAudioBaseSrcSlaveMethod = 2;
52pub const GST_AUDIO_BASE_SRC_SLAVE_NONE: GstAudioBaseSrcSlaveMethod = 3;
53
54pub type GstAudioCdSrcMode = c_int;
55pub const GST_AUDIO_CD_SRC_MODE_NORMAL: GstAudioCdSrcMode = 0;
56pub const GST_AUDIO_CD_SRC_MODE_CONTINUOUS: GstAudioCdSrcMode = 1;
57
58pub type GstAudioChannelPosition = c_int;
59pub const GST_AUDIO_CHANNEL_POSITION_NONE: GstAudioChannelPosition = -3;
60pub const GST_AUDIO_CHANNEL_POSITION_MONO: GstAudioChannelPosition = -2;
61pub const GST_AUDIO_CHANNEL_POSITION_INVALID: GstAudioChannelPosition = -1;
62pub const GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT: GstAudioChannelPosition = 0;
63pub const GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT: GstAudioChannelPosition = 1;
64pub const GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER: GstAudioChannelPosition = 2;
65pub const GST_AUDIO_CHANNEL_POSITION_LFE1: GstAudioChannelPosition = 3;
66pub const GST_AUDIO_CHANNEL_POSITION_REAR_LEFT: GstAudioChannelPosition = 4;
67pub const GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT: GstAudioChannelPosition = 5;
68pub const GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER: GstAudioChannelPosition = 6;
69pub const GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER: GstAudioChannelPosition = 7;
70pub const GST_AUDIO_CHANNEL_POSITION_REAR_CENTER: GstAudioChannelPosition = 8;
71pub const GST_AUDIO_CHANNEL_POSITION_LFE2: GstAudioChannelPosition = 9;
72pub const GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT: GstAudioChannelPosition = 10;
73pub const GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT: GstAudioChannelPosition = 11;
74pub const GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT: GstAudioChannelPosition = 12;
75pub const GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT: GstAudioChannelPosition = 13;
76pub const GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER: GstAudioChannelPosition = 14;
77pub const GST_AUDIO_CHANNEL_POSITION_TOP_CENTER: GstAudioChannelPosition = 15;
78pub const GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT: GstAudioChannelPosition = 16;
79pub const GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT: GstAudioChannelPosition = 17;
80pub const GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT: GstAudioChannelPosition = 18;
81pub const GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT: GstAudioChannelPosition = 19;
82pub const GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER: GstAudioChannelPosition = 20;
83pub const GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER: GstAudioChannelPosition = 21;
84pub const GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT: GstAudioChannelPosition = 22;
85pub const GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT: GstAudioChannelPosition = 23;
86pub const GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT: GstAudioChannelPosition = 24;
87pub const GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT: GstAudioChannelPosition = 25;
88pub const GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT: GstAudioChannelPosition = 26;
89pub const GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT: GstAudioChannelPosition = 27;
90#[cfg(feature = "v1_26")]
91#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
92pub const GST_AUDIO_CHANNEL_POSITION_TOP_SURROUND_LEFT: GstAudioChannelPosition = 28;
93#[cfg(feature = "v1_26")]
94#[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
95pub const GST_AUDIO_CHANNEL_POSITION_TOP_SURROUND_RIGHT: GstAudioChannelPosition = 29;
96
97pub type GstAudioDitherMethod = c_int;
98pub const GST_AUDIO_DITHER_NONE: GstAudioDitherMethod = 0;
99pub const GST_AUDIO_DITHER_RPDF: GstAudioDitherMethod = 1;
100pub const GST_AUDIO_DITHER_TPDF: GstAudioDitherMethod = 2;
101pub const GST_AUDIO_DITHER_TPDF_HF: GstAudioDitherMethod = 3;
102
103pub type GstAudioFormat = c_int;
104pub const GST_AUDIO_FORMAT_UNKNOWN: GstAudioFormat = 0;
105pub const GST_AUDIO_FORMAT_ENCODED: GstAudioFormat = 1;
106pub const GST_AUDIO_FORMAT_S8: GstAudioFormat = 2;
107pub const GST_AUDIO_FORMAT_U8: GstAudioFormat = 3;
108pub const GST_AUDIO_FORMAT_S16LE: GstAudioFormat = 4;
109pub const GST_AUDIO_FORMAT_S16BE: GstAudioFormat = 5;
110pub const GST_AUDIO_FORMAT_U16LE: GstAudioFormat = 6;
111pub const GST_AUDIO_FORMAT_U16BE: GstAudioFormat = 7;
112pub const GST_AUDIO_FORMAT_S24_32LE: GstAudioFormat = 8;
113pub const GST_AUDIO_FORMAT_S24_32BE: GstAudioFormat = 9;
114pub const GST_AUDIO_FORMAT_U24_32LE: GstAudioFormat = 10;
115pub const GST_AUDIO_FORMAT_U24_32BE: GstAudioFormat = 11;
116pub const GST_AUDIO_FORMAT_S32LE: GstAudioFormat = 12;
117pub const GST_AUDIO_FORMAT_S32BE: GstAudioFormat = 13;
118pub const GST_AUDIO_FORMAT_U32LE: GstAudioFormat = 14;
119pub const GST_AUDIO_FORMAT_U32BE: GstAudioFormat = 15;
120pub const GST_AUDIO_FORMAT_S24LE: GstAudioFormat = 16;
121pub const GST_AUDIO_FORMAT_S24BE: GstAudioFormat = 17;
122pub const GST_AUDIO_FORMAT_U24LE: GstAudioFormat = 18;
123pub const GST_AUDIO_FORMAT_U24BE: GstAudioFormat = 19;
124pub const GST_AUDIO_FORMAT_S20LE: GstAudioFormat = 20;
125pub const GST_AUDIO_FORMAT_S20BE: GstAudioFormat = 21;
126pub const GST_AUDIO_FORMAT_U20LE: GstAudioFormat = 22;
127pub const GST_AUDIO_FORMAT_U20BE: GstAudioFormat = 23;
128pub const GST_AUDIO_FORMAT_S18LE: GstAudioFormat = 24;
129pub const GST_AUDIO_FORMAT_S18BE: GstAudioFormat = 25;
130pub const GST_AUDIO_FORMAT_U18LE: GstAudioFormat = 26;
131pub const GST_AUDIO_FORMAT_U18BE: GstAudioFormat = 27;
132pub const GST_AUDIO_FORMAT_F32LE: GstAudioFormat = 28;
133pub const GST_AUDIO_FORMAT_F32BE: GstAudioFormat = 29;
134pub const GST_AUDIO_FORMAT_F64LE: GstAudioFormat = 30;
135pub const GST_AUDIO_FORMAT_F64BE: GstAudioFormat = 31;
136#[cfg(feature = "v1_28")]
137#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
138pub const GST_AUDIO_FORMAT_S20_32LE: GstAudioFormat = 32;
139#[cfg(feature = "v1_28")]
140#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
141pub const GST_AUDIO_FORMAT_S20_32BE: GstAudioFormat = 33;
142#[cfg(feature = "v1_28")]
143#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
144pub const GST_AUDIO_FORMAT_U20_32LE: GstAudioFormat = 34;
145#[cfg(feature = "v1_28")]
146#[cfg_attr(docsrs, doc(cfg(feature = "v1_28")))]
147pub const GST_AUDIO_FORMAT_U20_32BE: GstAudioFormat = 35;
148
149pub type GstAudioLayout = c_int;
150pub const GST_AUDIO_LAYOUT_INTERLEAVED: GstAudioLayout = 0;
151pub const GST_AUDIO_LAYOUT_NON_INTERLEAVED: GstAudioLayout = 1;
152
153pub type GstAudioNoiseShapingMethod = c_int;
154pub const GST_AUDIO_NOISE_SHAPING_NONE: GstAudioNoiseShapingMethod = 0;
155pub const GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK: GstAudioNoiseShapingMethod = 1;
156pub const GST_AUDIO_NOISE_SHAPING_SIMPLE: GstAudioNoiseShapingMethod = 2;
157pub const GST_AUDIO_NOISE_SHAPING_MEDIUM: GstAudioNoiseShapingMethod = 3;
158pub const GST_AUDIO_NOISE_SHAPING_HIGH: GstAudioNoiseShapingMethod = 4;
159
160pub type GstAudioResamplerFilterInterpolation = c_int;
161pub const GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE: GstAudioResamplerFilterInterpolation = 0;
162pub const GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR: GstAudioResamplerFilterInterpolation = 1;
163pub const GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC: GstAudioResamplerFilterInterpolation = 2;
164
165pub type GstAudioResamplerFilterMode = c_int;
166pub const GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED: GstAudioResamplerFilterMode = 0;
167pub const GST_AUDIO_RESAMPLER_FILTER_MODE_FULL: GstAudioResamplerFilterMode = 1;
168pub const GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO: GstAudioResamplerFilterMode = 2;
169
170pub type GstAudioResamplerMethod = c_int;
171pub const GST_AUDIO_RESAMPLER_METHOD_NEAREST: GstAudioResamplerMethod = 0;
172pub const GST_AUDIO_RESAMPLER_METHOD_LINEAR: GstAudioResamplerMethod = 1;
173pub const GST_AUDIO_RESAMPLER_METHOD_CUBIC: GstAudioResamplerMethod = 2;
174pub const GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL: GstAudioResamplerMethod = 3;
175pub const GST_AUDIO_RESAMPLER_METHOD_KAISER: GstAudioResamplerMethod = 4;
176
177pub type GstAudioRingBufferFormatType = c_int;
178pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW: GstAudioRingBufferFormatType = 0;
179pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW: GstAudioRingBufferFormatType = 1;
180pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW: GstAudioRingBufferFormatType = 2;
181pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM: GstAudioRingBufferFormatType = 3;
182pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG: GstAudioRingBufferFormatType = 4;
183pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM: GstAudioRingBufferFormatType = 5;
184pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958: GstAudioRingBufferFormatType = 6;
185pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3: GstAudioRingBufferFormatType = 7;
186pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3: GstAudioRingBufferFormatType = 8;
187pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS: GstAudioRingBufferFormatType = 9;
188pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC: GstAudioRingBufferFormatType = 10;
189pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC: GstAudioRingBufferFormatType = 11;
190pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW: GstAudioRingBufferFormatType = 12;
191pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW: GstAudioRingBufferFormatType = 13;
192pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC: GstAudioRingBufferFormatType = 14;
193pub const GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD: GstAudioRingBufferFormatType = 15;
194
195pub type GstAudioRingBufferState = c_int;
196pub const GST_AUDIO_RING_BUFFER_STATE_STOPPED: GstAudioRingBufferState = 0;
197pub const GST_AUDIO_RING_BUFFER_STATE_PAUSED: GstAudioRingBufferState = 1;
198pub const GST_AUDIO_RING_BUFFER_STATE_STARTED: GstAudioRingBufferState = 2;
199pub const GST_AUDIO_RING_BUFFER_STATE_ERROR: GstAudioRingBufferState = 3;
200
201pub type GstDsdFormat = c_int;
202pub const GST_DSD_FORMAT_UNKNOWN: GstDsdFormat = 0;
203pub const GST_DSD_FORMAT_U8: GstDsdFormat = 1;
204pub const GST_DSD_FORMAT_U16LE: GstDsdFormat = 2;
205pub const GST_DSD_FORMAT_U16BE: GstDsdFormat = 3;
206pub const GST_DSD_FORMAT_U32LE: GstDsdFormat = 4;
207pub const GST_DSD_FORMAT_U32BE: GstDsdFormat = 5;
208pub const GST_NUM_DSD_FORMATS: GstDsdFormat = 6;
209
210pub type GstStreamVolumeFormat = c_int;
211pub const GST_STREAM_VOLUME_FORMAT_LINEAR: GstStreamVolumeFormat = 0;
212pub const GST_STREAM_VOLUME_FORMAT_CUBIC: GstStreamVolumeFormat = 1;
213pub const GST_STREAM_VOLUME_FORMAT_DB: GstStreamVolumeFormat = 2;
214
215pub const GST_AUDIO_CHANNELS_RANGE: &[u8] = b"(int) [ 1, max ]\0";
217pub const GST_AUDIO_CONVERTER_OPT_DITHER_METHOD: &[u8] = b"GstAudioConverter.dither-method\0";
218pub const GST_AUDIO_CONVERTER_OPT_DITHER_THRESHOLD: &[u8] = b"GstAudioConverter.dither-threshold\0";
219pub const GST_AUDIO_CONVERTER_OPT_MIX_MATRIX: &[u8] = b"GstAudioConverter.mix-matrix\0";
220pub const GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD: &[u8] =
221 b"GstAudioConverter.noise-shaping-method\0";
222pub const GST_AUDIO_CONVERTER_OPT_QUANTIZATION: &[u8] = b"GstAudioConverter.quantization\0";
223pub const GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD: &[u8] = b"GstAudioConverter.resampler-method\0";
224pub const GST_AUDIO_DECODER_MAX_ERRORS: c_int = -1;
225pub const GST_AUDIO_DECODER_SINK_NAME: &[u8] = b"sink\0";
226pub const GST_AUDIO_DECODER_SRC_NAME: &[u8] = b"src\0";
227pub const GST_AUDIO_DEF_CHANNELS: c_int = 2;
228pub const GST_AUDIO_DEF_FORMAT: &[u8] = b"S16LE\0";
229pub const GST_AUDIO_DEF_RATE: c_int = 44100;
230pub const GST_AUDIO_ENCODER_SINK_NAME: &[u8] = b"sink\0";
231pub const GST_AUDIO_ENCODER_SRC_NAME: &[u8] = b"src\0";
232pub const GST_AUDIO_FORMAT_LAST: c_int = 36;
233pub const GST_AUDIO_RATE_RANGE: &[u8] = b"(int) [ 1, max ]\0";
234pub const GST_AUDIO_RESAMPLER_OPT_CUBIC_B: &[u8] = b"GstAudioResampler.cubic-b\0";
235pub const GST_AUDIO_RESAMPLER_OPT_CUBIC_C: &[u8] = b"GstAudioResampler.cubic-c\0";
236pub const GST_AUDIO_RESAMPLER_OPT_CUTOFF: &[u8] = b"GstAudioResampler.cutoff\0";
237pub const GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION: &[u8] =
238 b"GstAudioResampler.filter-interpolation\0";
239pub const GST_AUDIO_RESAMPLER_OPT_FILTER_MODE: &[u8] = b"GstAudioResampler.filter-mode\0";
240pub const GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD: &[u8] =
241 b"GstAudioResampler.filter-mode-threshold\0";
242pub const GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE: &[u8] =
243 b"GstAudioResampler.filter-oversample\0";
244pub const GST_AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR: &[u8] = b"GstAudioResampler.max-phase-error\0";
245pub const GST_AUDIO_RESAMPLER_OPT_N_TAPS: &[u8] = b"GstAudioResampler.n-taps\0";
246pub const GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUATION: &[u8] =
247 b"GstAudioResampler.stop-attenutation\0";
248pub const GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH: &[u8] =
249 b"GstAudioResampler.transition-bandwidth\0";
250pub const GST_AUDIO_RESAMPLER_QUALITY_DEFAULT: c_int = 4;
251pub const GST_AUDIO_RESAMPLER_QUALITY_MAX: c_int = 10;
252pub const GST_AUDIO_RESAMPLER_QUALITY_MIN: c_int = 0;
253pub const GST_DSD_FORMATS_ALL: &[u8] = b"{ DSDU32BE, DSDU16BE, DSDU8, DSDU32LE, DSDU16LE }\0";
254pub const GST_DSD_MEDIA_TYPE: &[u8] = b"audio/x-dsd\0";
255pub const GST_DSD_SILENCE_PATTERN_BYTE: c_int = 105;
256pub const GST_META_TAG_AUDIO_CHANNELS_STR: &[u8] = b"channels\0";
257pub const GST_META_TAG_AUDIO_RATE_STR: &[u8] = b"rate\0";
258pub const GST_META_TAG_AUDIO_STR: &[u8] = b"audio\0";
259pub const GST_META_TAG_DSD_PLANE_OFFSETS_STR: &[u8] = b"dsdplaneoffsets\0";
260
261pub type GstAudioChannelMixerFlags = c_uint;
263pub const GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE: GstAudioChannelMixerFlags = 0;
264pub const GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN: GstAudioChannelMixerFlags = 1;
265pub const GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT: GstAudioChannelMixerFlags = 2;
266pub const GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN: GstAudioChannelMixerFlags = 4;
267pub const GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT: GstAudioChannelMixerFlags = 8;
268
269pub type GstAudioConverterFlags = c_uint;
270pub const GST_AUDIO_CONVERTER_FLAG_NONE: GstAudioConverterFlags = 0;
271pub const GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE: GstAudioConverterFlags = 1;
272pub const GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE: GstAudioConverterFlags = 2;
273
274pub type GstAudioFlags = c_uint;
275pub const GST_AUDIO_FLAG_NONE: GstAudioFlags = 0;
276pub const GST_AUDIO_FLAG_UNPOSITIONED: GstAudioFlags = 1;
277
278pub type GstAudioFormatFlags = c_uint;
279pub const GST_AUDIO_FORMAT_FLAG_INTEGER: GstAudioFormatFlags = 1;
280pub const GST_AUDIO_FORMAT_FLAG_FLOAT: GstAudioFormatFlags = 2;
281pub const GST_AUDIO_FORMAT_FLAG_SIGNED: GstAudioFormatFlags = 4;
282pub const GST_AUDIO_FORMAT_FLAG_COMPLEX: GstAudioFormatFlags = 16;
283pub const GST_AUDIO_FORMAT_FLAG_UNPACK: GstAudioFormatFlags = 32;
284
285pub type GstAudioPackFlags = c_uint;
286pub const GST_AUDIO_PACK_FLAG_NONE: GstAudioPackFlags = 0;
287pub const GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE: GstAudioPackFlags = 1;
288
289pub type GstAudioQuantizeFlags = c_uint;
290pub const GST_AUDIO_QUANTIZE_FLAG_NONE: GstAudioQuantizeFlags = 0;
291pub const GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED: GstAudioQuantizeFlags = 1;
292
293pub type GstAudioResamplerFlags = c_uint;
294pub const GST_AUDIO_RESAMPLER_FLAG_NONE: GstAudioResamplerFlags = 0;
295pub const GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN: GstAudioResamplerFlags = 1;
296pub const GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT: GstAudioResamplerFlags = 2;
297pub const GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE: GstAudioResamplerFlags = 4;
298
299#[derive(Copy, Clone)]
301#[repr(C)]
302pub union GstAudioRingBufferSpec_ABI {
303 pub abi: GstAudioRingBufferSpec_ABI_abi,
304 pub _gst_reserved: [gpointer; 4],
305}
306
307impl ::std::fmt::Debug for GstAudioRingBufferSpec_ABI {
308 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
309 f.debug_struct(&format!("GstAudioRingBufferSpec_ABI @ {self:p}"))
310 .field("abi", unsafe { &self.abi })
311 .finish()
312 }
313}
314
315pub type GstAudioBaseSinkCustomSlavingCallback = Option<
317 unsafe extern "C" fn(
318 *mut GstAudioBaseSink,
319 gst::GstClockTime,
320 gst::GstClockTime,
321 *mut gst::GstClockTimeDiff,
322 GstAudioBaseSinkDiscontReason,
323 gpointer,
324 ),
325>;
326pub type GstAudioClockGetTimeFunc =
327 Option<unsafe extern "C" fn(*mut gst::GstClock, gpointer) -> gst::GstClockTime>;
328pub type GstAudioFormatPack = Option<
329 unsafe extern "C" fn(
330 *const GstAudioFormatInfo,
331 GstAudioPackFlags,
332 gconstpointer,
333 gpointer,
334 c_int,
335 ),
336>;
337pub type GstAudioFormatUnpack = Option<
338 unsafe extern "C" fn(
339 *const GstAudioFormatInfo,
340 GstAudioPackFlags,
341 gpointer,
342 gconstpointer,
343 c_int,
344 ),
345>;
346pub type GstAudioRingBufferCallback =
347 Option<unsafe extern "C" fn(*mut GstAudioRingBuffer, *mut u8, c_uint, gpointer)>;
348
349#[derive(Copy, Clone)]
351#[repr(C)]
352pub struct GstAudioAggregatorClass {
353 pub parent_class: gst_base::GstAggregatorClass,
354 pub create_output_buffer:
355 Option<unsafe extern "C" fn(*mut GstAudioAggregator, c_uint) -> *mut gst::GstBuffer>,
356 pub aggregate_one_buffer: Option<
357 unsafe extern "C" fn(
358 *mut GstAudioAggregator,
359 *mut GstAudioAggregatorPad,
360 *mut gst::GstBuffer,
361 c_uint,
362 *mut gst::GstBuffer,
363 c_uint,
364 c_uint,
365 ) -> gboolean,
366 >,
367 pub _gst_reserved: [gpointer; 20],
368}
369
370impl ::std::fmt::Debug for GstAudioAggregatorClass {
371 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
372 f.debug_struct(&format!("GstAudioAggregatorClass @ {self:p}"))
373 .field("parent_class", &self.parent_class)
374 .field("create_output_buffer", &self.create_output_buffer)
375 .field("aggregate_one_buffer", &self.aggregate_one_buffer)
376 .finish()
377 }
378}
379
380#[derive(Copy, Clone)]
381#[repr(C)]
382pub struct GstAudioAggregatorConvertPadClass {
383 pub parent_class: GstAudioAggregatorPadClass,
384 pub _gst_reserved: [gpointer; 4],
385}
386
387impl ::std::fmt::Debug for GstAudioAggregatorConvertPadClass {
388 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
389 f.debug_struct(&format!("GstAudioAggregatorConvertPadClass @ {self:p}"))
390 .field("parent_class", &self.parent_class)
391 .finish()
392 }
393}
394
395#[repr(C)]
396#[allow(dead_code)]
397pub struct _GstAudioAggregatorConvertPadPrivate {
398 _data: [u8; 0],
399 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
400}
401
402pub type GstAudioAggregatorConvertPadPrivate = _GstAudioAggregatorConvertPadPrivate;
403
404#[derive(Copy, Clone)]
405#[repr(C)]
406pub struct GstAudioAggregatorPadClass {
407 pub parent_class: gst_base::GstAggregatorPadClass,
408 pub convert_buffer: Option<
409 unsafe extern "C" fn(
410 *mut GstAudioAggregatorPad,
411 *mut GstAudioInfo,
412 *mut GstAudioInfo,
413 *mut gst::GstBuffer,
414 ) -> *mut gst::GstBuffer,
415 >,
416 pub update_conversion_info: Option<unsafe extern "C" fn(*mut GstAudioAggregatorPad)>,
417 pub _gst_reserved: [gpointer; 20],
418}
419
420impl ::std::fmt::Debug for GstAudioAggregatorPadClass {
421 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
422 f.debug_struct(&format!("GstAudioAggregatorPadClass @ {self:p}"))
423 .field("parent_class", &self.parent_class)
424 .field("convert_buffer", &self.convert_buffer)
425 .field("update_conversion_info", &self.update_conversion_info)
426 .finish()
427 }
428}
429
430#[repr(C)]
431#[allow(dead_code)]
432pub struct _GstAudioAggregatorPadPrivate {
433 _data: [u8; 0],
434 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
435}
436
437pub type GstAudioAggregatorPadPrivate = _GstAudioAggregatorPadPrivate;
438
439#[repr(C)]
440#[allow(dead_code)]
441pub struct _GstAudioAggregatorPrivate {
442 _data: [u8; 0],
443 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
444}
445
446pub type GstAudioAggregatorPrivate = _GstAudioAggregatorPrivate;
447
448#[derive(Copy, Clone)]
449#[repr(C)]
450pub struct GstAudioBaseSinkClass {
451 pub parent_class: gst_base::GstBaseSinkClass,
452 pub create_ringbuffer:
453 Option<unsafe extern "C" fn(*mut GstAudioBaseSink) -> *mut GstAudioRingBuffer>,
454 pub payload: Option<
455 unsafe extern "C" fn(*mut GstAudioBaseSink, *mut gst::GstBuffer) -> *mut gst::GstBuffer,
456 >,
457 pub _gst_reserved: [gpointer; 4],
458}
459
460impl ::std::fmt::Debug for GstAudioBaseSinkClass {
461 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
462 f.debug_struct(&format!("GstAudioBaseSinkClass @ {self:p}"))
463 .field("parent_class", &self.parent_class)
464 .field("create_ringbuffer", &self.create_ringbuffer)
465 .field("payload", &self.payload)
466 .finish()
467 }
468}
469
470#[repr(C)]
471#[allow(dead_code)]
472pub struct _GstAudioBaseSinkPrivate {
473 _data: [u8; 0],
474 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
475}
476
477pub type GstAudioBaseSinkPrivate = _GstAudioBaseSinkPrivate;
478
479#[derive(Copy, Clone)]
480#[repr(C)]
481pub struct GstAudioBaseSrcClass {
482 pub parent_class: gst_base::GstPushSrcClass,
483 pub create_ringbuffer:
484 Option<unsafe extern "C" fn(*mut GstAudioBaseSrc) -> *mut GstAudioRingBuffer>,
485 pub _gst_reserved: [gpointer; 4],
486}
487
488impl ::std::fmt::Debug for GstAudioBaseSrcClass {
489 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
490 f.debug_struct(&format!("GstAudioBaseSrcClass @ {self:p}"))
491 .field("parent_class", &self.parent_class)
492 .field("create_ringbuffer", &self.create_ringbuffer)
493 .finish()
494 }
495}
496
497#[repr(C)]
498#[allow(dead_code)]
499pub struct _GstAudioBaseSrcPrivate {
500 _data: [u8; 0],
501 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
502}
503
504pub type GstAudioBaseSrcPrivate = _GstAudioBaseSrcPrivate;
505
506#[derive(Copy, Clone)]
507#[repr(C)]
508pub struct GstAudioBuffer {
509 pub info: GstAudioInfo,
510 pub n_samples: size_t,
511 pub n_planes: c_int,
512 pub planes: *mut gpointer,
513 pub buffer: *mut gst::GstBuffer,
514 pub map_infos: *mut gst::GstMapInfo,
515 pub priv_planes_arr: [gpointer; 8],
516 pub priv_map_infos_arr: [gst::GstMapInfo; 8],
517 pub _gst_reserved: [gpointer; 4],
518}
519
520impl ::std::fmt::Debug for GstAudioBuffer {
521 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
522 f.debug_struct(&format!("GstAudioBuffer @ {self:p}"))
523 .field("info", &self.info)
524 .field("n_samples", &self.n_samples)
525 .field("n_planes", &self.n_planes)
526 .field("planes", &self.planes)
527 .field("buffer", &self.buffer)
528 .finish()
529 }
530}
531
532#[derive(Copy, Clone)]
533#[repr(C)]
534pub struct GstAudioCdSrcClass {
535 pub pushsrc_class: gst_base::GstPushSrcClass,
536 pub open: Option<unsafe extern "C" fn(*mut GstAudioCdSrc, *const c_char) -> gboolean>,
537 pub close: Option<unsafe extern "C" fn(*mut GstAudioCdSrc)>,
538 pub read_sector: Option<unsafe extern "C" fn(*mut GstAudioCdSrc, c_int) -> *mut gst::GstBuffer>,
539 pub _gst_reserved: [gpointer; 20],
540}
541
542impl ::std::fmt::Debug for GstAudioCdSrcClass {
543 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
544 f.debug_struct(&format!("GstAudioCdSrcClass @ {self:p}"))
545 .field("pushsrc_class", &self.pushsrc_class)
546 .field("open", &self.open)
547 .field("close", &self.close)
548 .field("read_sector", &self.read_sector)
549 .finish()
550 }
551}
552
553#[repr(C)]
554#[allow(dead_code)]
555pub struct _GstAudioCdSrcPrivate {
556 _data: [u8; 0],
557 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
558}
559
560pub type GstAudioCdSrcPrivate = _GstAudioCdSrcPrivate;
561
562#[derive(Copy, Clone)]
563#[repr(C)]
564pub struct GstAudioCdSrcTrack {
565 pub is_audio: gboolean,
566 pub num: c_uint,
567 pub start: c_uint,
568 pub end: c_uint,
569 pub tags: *mut gst::GstTagList,
570 pub _gst_reserved1: [c_uint; 2],
571 pub _gst_reserved2: [gpointer; 2],
572}
573
574impl ::std::fmt::Debug for GstAudioCdSrcTrack {
575 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
576 f.debug_struct(&format!("GstAudioCdSrcTrack @ {self:p}"))
577 .field("is_audio", &self.is_audio)
578 .field("num", &self.num)
579 .field("start", &self.start)
580 .field("end", &self.end)
581 .field("tags", &self.tags)
582 .finish()
583 }
584}
585
586#[repr(C)]
587#[allow(dead_code)]
588pub struct _GstAudioChannelMixer {
589 _data: [u8; 0],
590 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
591}
592
593pub type GstAudioChannelMixer = _GstAudioChannelMixer;
594
595#[derive(Copy, Clone)]
596#[repr(C)]
597pub struct GstAudioClippingMeta {
598 pub meta: gst::GstMeta,
599 pub format: gst::GstFormat,
600 pub start: u64,
601 pub end: u64,
602}
603
604impl ::std::fmt::Debug for GstAudioClippingMeta {
605 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
606 f.debug_struct(&format!("GstAudioClippingMeta @ {self:p}"))
607 .field("meta", &self.meta)
608 .field("format", &self.format)
609 .field("start", &self.start)
610 .field("end", &self.end)
611 .finish()
612 }
613}
614
615#[derive(Copy, Clone)]
616#[repr(C)]
617pub struct GstAudioClockClass {
618 pub parent_class: gst::GstSystemClockClass,
619 pub _gst_reserved: [gpointer; 4],
620}
621
622impl ::std::fmt::Debug for GstAudioClockClass {
623 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
624 f.debug_struct(&format!("GstAudioClockClass @ {self:p}"))
625 .field("parent_class", &self.parent_class)
626 .finish()
627 }
628}
629
630#[repr(C)]
631#[allow(dead_code)]
632pub struct GstAudioConverter {
633 _data: [u8; 0],
634 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
635}
636
637impl ::std::fmt::Debug for GstAudioConverter {
638 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
639 f.debug_struct(&format!("GstAudioConverter @ {self:p}"))
640 .finish()
641 }
642}
643
644#[derive(Copy, Clone)]
645#[repr(C)]
646pub struct GstAudioDecoderClass {
647 pub element_class: gst::GstElementClass,
648 pub start: Option<unsafe extern "C" fn(*mut GstAudioDecoder) -> gboolean>,
649 pub stop: Option<unsafe extern "C" fn(*mut GstAudioDecoder) -> gboolean>,
650 pub set_format:
651 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstCaps) -> gboolean>,
652 pub parse: Option<
653 unsafe extern "C" fn(
654 *mut GstAudioDecoder,
655 *mut gst_base::GstAdapter,
656 *mut c_int,
657 *mut c_int,
658 ) -> gst::GstFlowReturn,
659 >,
660 pub handle_frame: Option<
661 unsafe extern "C" fn(*mut GstAudioDecoder, *mut *mut gst::GstBuffer) -> gst::GstFlowReturn,
662 >,
663 pub flush: Option<unsafe extern "C" fn(*mut GstAudioDecoder, gboolean)>,
664 pub pre_push: Option<
665 unsafe extern "C" fn(*mut GstAudioDecoder, *mut *mut gst::GstBuffer) -> gst::GstFlowReturn,
666 >,
667 pub sink_event:
668 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstEvent) -> gboolean>,
669 pub src_event:
670 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstEvent) -> gboolean>,
671 pub open: Option<unsafe extern "C" fn(*mut GstAudioDecoder) -> gboolean>,
672 pub close: Option<unsafe extern "C" fn(*mut GstAudioDecoder) -> gboolean>,
673 pub negotiate: Option<unsafe extern "C" fn(*mut GstAudioDecoder) -> gboolean>,
674 pub decide_allocation:
675 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstQuery) -> gboolean>,
676 pub propose_allocation:
677 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstQuery) -> gboolean>,
678 pub sink_query:
679 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstQuery) -> gboolean>,
680 pub src_query:
681 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstQuery) -> gboolean>,
682 pub getcaps:
683 Option<unsafe extern "C" fn(*mut GstAudioDecoder, *mut gst::GstCaps) -> *mut gst::GstCaps>,
684 pub transform_meta: Option<
685 unsafe extern "C" fn(
686 *mut GstAudioDecoder,
687 *mut gst::GstBuffer,
688 *mut gst::GstMeta,
689 *mut gst::GstBuffer,
690 ) -> gboolean,
691 >,
692 pub _gst_reserved: [gpointer; 16],
693}
694
695impl ::std::fmt::Debug for GstAudioDecoderClass {
696 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
697 f.debug_struct(&format!("GstAudioDecoderClass @ {self:p}"))
698 .field("element_class", &self.element_class)
699 .field("start", &self.start)
700 .field("stop", &self.stop)
701 .field("set_format", &self.set_format)
702 .field("parse", &self.parse)
703 .field("handle_frame", &self.handle_frame)
704 .field("flush", &self.flush)
705 .field("pre_push", &self.pre_push)
706 .field("sink_event", &self.sink_event)
707 .field("src_event", &self.src_event)
708 .field("open", &self.open)
709 .field("close", &self.close)
710 .field("negotiate", &self.negotiate)
711 .field("decide_allocation", &self.decide_allocation)
712 .field("propose_allocation", &self.propose_allocation)
713 .field("sink_query", &self.sink_query)
714 .field("src_query", &self.src_query)
715 .field("getcaps", &self.getcaps)
716 .field("transform_meta", &self.transform_meta)
717 .finish()
718 }
719}
720
721#[repr(C)]
722#[allow(dead_code)]
723pub struct _GstAudioDecoderPrivate {
724 _data: [u8; 0],
725 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
726}
727
728pub type GstAudioDecoderPrivate = _GstAudioDecoderPrivate;
729
730#[derive(Copy, Clone)]
731#[repr(C)]
732pub struct GstAudioDownmixMeta {
733 pub meta: gst::GstMeta,
734 pub from_position: *mut GstAudioChannelPosition,
735 pub to_position: *mut GstAudioChannelPosition,
736 pub from_channels: c_int,
737 pub to_channels: c_int,
738 pub matrix: *mut *mut c_float,
739}
740
741impl ::std::fmt::Debug for GstAudioDownmixMeta {
742 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
743 f.debug_struct(&format!("GstAudioDownmixMeta @ {self:p}"))
744 .field("meta", &self.meta)
745 .field("from_position", &self.from_position)
746 .field("to_position", &self.to_position)
747 .field("from_channels", &self.from_channels)
748 .field("to_channels", &self.to_channels)
749 .field("matrix", &self.matrix)
750 .finish()
751 }
752}
753
754#[derive(Copy, Clone)]
755#[repr(C)]
756pub struct GstAudioEncoderClass {
757 pub element_class: gst::GstElementClass,
758 pub start: Option<unsafe extern "C" fn(*mut GstAudioEncoder) -> gboolean>,
759 pub stop: Option<unsafe extern "C" fn(*mut GstAudioEncoder) -> gboolean>,
760 pub set_format:
761 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut GstAudioInfo) -> gboolean>,
762 pub handle_frame: Option<
763 unsafe extern "C" fn(*mut GstAudioEncoder, *mut *mut gst::GstBuffer) -> gst::GstFlowReturn,
764 >,
765 pub flush: Option<unsafe extern "C" fn(*mut GstAudioEncoder)>,
766 pub pre_push: Option<
767 unsafe extern "C" fn(*mut GstAudioEncoder, *mut *mut gst::GstBuffer) -> gst::GstFlowReturn,
768 >,
769 pub sink_event:
770 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstEvent) -> gboolean>,
771 pub src_event:
772 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstEvent) -> gboolean>,
773 pub getcaps:
774 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstCaps) -> *mut gst::GstCaps>,
775 pub open: Option<unsafe extern "C" fn(*mut GstAudioEncoder) -> gboolean>,
776 pub close: Option<unsafe extern "C" fn(*mut GstAudioEncoder) -> gboolean>,
777 pub negotiate: Option<unsafe extern "C" fn(*mut GstAudioEncoder) -> gboolean>,
778 pub decide_allocation:
779 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstQuery) -> gboolean>,
780 pub propose_allocation:
781 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstQuery) -> gboolean>,
782 pub transform_meta: Option<
783 unsafe extern "C" fn(
784 *mut GstAudioEncoder,
785 *mut gst::GstBuffer,
786 *mut gst::GstMeta,
787 *mut gst::GstBuffer,
788 ) -> gboolean,
789 >,
790 pub sink_query:
791 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstQuery) -> gboolean>,
792 pub src_query:
793 Option<unsafe extern "C" fn(*mut GstAudioEncoder, *mut gst::GstQuery) -> gboolean>,
794 pub _gst_reserved: [gpointer; 17],
795}
796
797impl ::std::fmt::Debug for GstAudioEncoderClass {
798 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
799 f.debug_struct(&format!("GstAudioEncoderClass @ {self:p}"))
800 .field("element_class", &self.element_class)
801 .field("start", &self.start)
802 .field("stop", &self.stop)
803 .field("set_format", &self.set_format)
804 .field("handle_frame", &self.handle_frame)
805 .field("flush", &self.flush)
806 .field("pre_push", &self.pre_push)
807 .field("sink_event", &self.sink_event)
808 .field("src_event", &self.src_event)
809 .field("getcaps", &self.getcaps)
810 .field("open", &self.open)
811 .field("close", &self.close)
812 .field("negotiate", &self.negotiate)
813 .field("decide_allocation", &self.decide_allocation)
814 .field("propose_allocation", &self.propose_allocation)
815 .field("transform_meta", &self.transform_meta)
816 .field("sink_query", &self.sink_query)
817 .field("src_query", &self.src_query)
818 .finish()
819 }
820}
821
822#[repr(C)]
823#[allow(dead_code)]
824pub struct _GstAudioEncoderPrivate {
825 _data: [u8; 0],
826 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
827}
828
829pub type GstAudioEncoderPrivate = _GstAudioEncoderPrivate;
830
831#[derive(Copy, Clone)]
832#[repr(C)]
833pub struct GstAudioFilterClass {
834 pub basetransformclass: gst_base::GstBaseTransformClass,
835 pub setup: Option<unsafe extern "C" fn(*mut GstAudioFilter, *const GstAudioInfo) -> gboolean>,
836 pub _gst_reserved: [gpointer; 4],
837}
838
839impl ::std::fmt::Debug for GstAudioFilterClass {
840 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
841 f.debug_struct(&format!("GstAudioFilterClass @ {self:p}"))
842 .field("basetransformclass", &self.basetransformclass)
843 .field("setup", &self.setup)
844 .finish()
845 }
846}
847
848#[derive(Copy, Clone)]
849#[repr(C)]
850pub struct GstAudioFormatInfo {
851 pub format: GstAudioFormat,
852 pub name: *const c_char,
853 pub description: *const c_char,
854 pub flags: GstAudioFormatFlags,
855 pub endianness: c_int,
856 pub width: c_int,
857 pub depth: c_int,
858 pub silence: [u8; 8],
859 pub unpack_format: GstAudioFormat,
860 pub unpack_func: GstAudioFormatUnpack,
861 pub pack_func: GstAudioFormatPack,
862 pub _gst_reserved: [gpointer; 4],
863}
864
865impl ::std::fmt::Debug for GstAudioFormatInfo {
866 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
867 f.debug_struct(&format!("GstAudioFormatInfo @ {self:p}"))
868 .field("format", &self.format)
869 .field("name", &self.name)
870 .field("description", &self.description)
871 .field("flags", &self.flags)
872 .field("endianness", &self.endianness)
873 .field("width", &self.width)
874 .field("depth", &self.depth)
875 .field("silence", &self.silence)
876 .field("unpack_format", &self.unpack_format)
877 .field("unpack_func", &self.unpack_func)
878 .field("pack_func", &self.pack_func)
879 .finish()
880 }
881}
882
883#[derive(Copy, Clone)]
884#[repr(C)]
885pub struct GstAudioInfo {
886 pub finfo: *const GstAudioFormatInfo,
887 pub flags: GstAudioFlags,
888 pub layout: GstAudioLayout,
889 pub rate: c_int,
890 pub channels: c_int,
891 pub bpf: c_int,
892 pub position: [GstAudioChannelPosition; 64],
893 pub _gst_reserved: [gpointer; 4],
894}
895
896impl ::std::fmt::Debug for GstAudioInfo {
897 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
898 f.debug_struct(&format!("GstAudioInfo @ {self:p}"))
899 .field("finfo", &self.finfo)
900 .field("flags", &self.flags)
901 .field("layout", &self.layout)
902 .field("rate", &self.rate)
903 .field("channels", &self.channels)
904 .field("bpf", &self.bpf)
905 .finish()
906 }
907}
908
909#[derive(Copy, Clone)]
910#[repr(C)]
911pub struct GstAudioLevelMeta {
912 pub meta: gst::GstMeta,
913 pub level: u8,
914 pub voice_activity: gboolean,
915}
916
917impl ::std::fmt::Debug for GstAudioLevelMeta {
918 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
919 f.debug_struct(&format!("GstAudioLevelMeta @ {self:p}"))
920 .field("meta", &self.meta)
921 .field("level", &self.level)
922 .field("voice_activity", &self.voice_activity)
923 .finish()
924 }
925}
926
927#[derive(Copy, Clone)]
928#[repr(C)]
929pub struct GstAudioMeta {
930 pub meta: gst::GstMeta,
931 pub info: GstAudioInfo,
932 pub samples: size_t,
933 pub offsets: *mut size_t,
934 pub priv_offsets_arr: [size_t; 8],
935 pub _gst_reserved: [gpointer; 4],
936}
937
938impl ::std::fmt::Debug for GstAudioMeta {
939 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
940 f.debug_struct(&format!("GstAudioMeta @ {self:p}"))
941 .field("meta", &self.meta)
942 .field("info", &self.info)
943 .field("samples", &self.samples)
944 .field("offsets", &self.offsets)
945 .finish()
946 }
947}
948
949#[repr(C)]
950#[allow(dead_code)]
951pub struct _GstAudioQuantize {
952 _data: [u8; 0],
953 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
954}
955
956pub type GstAudioQuantize = _GstAudioQuantize;
957
958#[repr(C)]
959#[allow(dead_code)]
960pub struct _GstAudioResampler {
961 _data: [u8; 0],
962 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
963}
964
965pub type GstAudioResampler = _GstAudioResampler;
966
967#[derive(Copy, Clone)]
968#[repr(C)]
969pub struct GstAudioRingBufferClass {
970 pub parent_class: gst::GstObjectClass,
971 pub open_device: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
972 pub acquire: Option<
973 unsafe extern "C" fn(*mut GstAudioRingBuffer, *mut GstAudioRingBufferSpec) -> gboolean,
974 >,
975 pub release: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
976 pub close_device: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
977 pub start: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
978 pub pause: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
979 pub resume: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
980 pub stop: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> gboolean>,
981 pub delay: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer) -> c_uint>,
982 pub activate: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer, gboolean) -> gboolean>,
983 pub commit: Option<
984 unsafe extern "C" fn(
985 *mut GstAudioRingBuffer,
986 *mut u64,
987 *mut u8,
988 c_int,
989 c_int,
990 *mut c_int,
991 ) -> c_uint,
992 >,
993 pub clear_all: Option<unsafe extern "C" fn(*mut GstAudioRingBuffer)>,
994 pub _gst_reserved: [gpointer; 4],
995}
996
997impl ::std::fmt::Debug for GstAudioRingBufferClass {
998 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
999 f.debug_struct(&format!("GstAudioRingBufferClass @ {self:p}"))
1000 .field("parent_class", &self.parent_class)
1001 .field("open_device", &self.open_device)
1002 .field("acquire", &self.acquire)
1003 .field("release", &self.release)
1004 .field("close_device", &self.close_device)
1005 .field("start", &self.start)
1006 .field("pause", &self.pause)
1007 .field("resume", &self.resume)
1008 .field("stop", &self.stop)
1009 .field("delay", &self.delay)
1010 .field("activate", &self.activate)
1011 .field("commit", &self.commit)
1012 .field("clear_all", &self.clear_all)
1013 .finish()
1014 }
1015}
1016
1017#[repr(C)]
1018#[allow(dead_code)]
1019pub struct _GstAudioRingBufferPrivate {
1020 _data: [u8; 0],
1021 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1022}
1023
1024pub type GstAudioRingBufferPrivate = _GstAudioRingBufferPrivate;
1025
1026#[derive(Copy, Clone)]
1027#[repr(C)]
1028pub struct GstAudioRingBufferSpec {
1029 pub caps: *mut gst::GstCaps,
1030 pub type_: GstAudioRingBufferFormatType,
1031 pub info: GstAudioInfo,
1032 pub latency_time: u64,
1033 pub buffer_time: u64,
1034 pub segsize: c_int,
1035 pub segtotal: c_int,
1036 pub seglatency: c_int,
1037 pub ABI: GstAudioRingBufferSpec_ABI,
1038}
1039
1040impl ::std::fmt::Debug for GstAudioRingBufferSpec {
1041 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1042 f.debug_struct(&format!("GstAudioRingBufferSpec @ {self:p}"))
1043 .field("caps", &self.caps)
1044 .field("type_", &self.type_)
1045 .field("info", &self.info)
1046 .field("latency_time", &self.latency_time)
1047 .field("buffer_time", &self.buffer_time)
1048 .field("segsize", &self.segsize)
1049 .field("segtotal", &self.segtotal)
1050 .field("seglatency", &self.seglatency)
1051 .field("ABI", &self.ABI)
1052 .finish()
1053 }
1054}
1055
1056#[derive(Copy, Clone)]
1057#[repr(C)]
1058pub struct GstAudioRingBufferSpec_ABI_abi {
1059 pub dsd_format: GstDsdFormat,
1060}
1061
1062impl ::std::fmt::Debug for GstAudioRingBufferSpec_ABI_abi {
1063 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1064 f.debug_struct(&format!("GstAudioRingBufferSpec_ABI_abi @ {self:p}"))
1065 .field("dsd_format", &self.dsd_format)
1066 .finish()
1067 }
1068}
1069
1070#[derive(Copy, Clone)]
1071#[repr(C)]
1072pub struct GstAudioSinkClass {
1073 pub parent_class: GstAudioBaseSinkClass,
1074 pub open: Option<unsafe extern "C" fn(*mut GstAudioSink) -> gboolean>,
1075 pub prepare:
1076 Option<unsafe extern "C" fn(*mut GstAudioSink, *mut GstAudioRingBufferSpec) -> gboolean>,
1077 pub unprepare: Option<unsafe extern "C" fn(*mut GstAudioSink) -> gboolean>,
1078 pub close: Option<unsafe extern "C" fn(*mut GstAudioSink) -> gboolean>,
1079 pub write: Option<unsafe extern "C" fn(*mut GstAudioSink, gpointer, c_uint) -> c_int>,
1080 pub delay: Option<unsafe extern "C" fn(*mut GstAudioSink) -> c_uint>,
1081 pub reset: Option<unsafe extern "C" fn(*mut GstAudioSink)>,
1082 pub pause: Option<unsafe extern "C" fn(*mut GstAudioSink)>,
1083 pub resume: Option<unsafe extern "C" fn(*mut GstAudioSink)>,
1084 pub stop: Option<unsafe extern "C" fn(*mut GstAudioSink)>,
1085 pub extension: *mut GstAudioSinkClassExtension,
1086}
1087
1088impl ::std::fmt::Debug for GstAudioSinkClass {
1089 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1090 f.debug_struct(&format!("GstAudioSinkClass @ {self:p}"))
1091 .field("parent_class", &self.parent_class)
1092 .field("open", &self.open)
1093 .field("prepare", &self.prepare)
1094 .field("unprepare", &self.unprepare)
1095 .field("close", &self.close)
1096 .field("write", &self.write)
1097 .field("delay", &self.delay)
1098 .field("reset", &self.reset)
1099 .field("pause", &self.pause)
1100 .field("resume", &self.resume)
1101 .field("stop", &self.stop)
1102 .field("extension", &self.extension)
1103 .finish()
1104 }
1105}
1106
1107#[derive(Copy, Clone)]
1108#[repr(C)]
1109pub struct GstAudioSinkClassExtension {
1110 pub clear_all: Option<unsafe extern "C" fn(*mut GstAudioSink)>,
1111}
1112
1113impl ::std::fmt::Debug for GstAudioSinkClassExtension {
1114 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1115 f.debug_struct(&format!("GstAudioSinkClassExtension @ {self:p}"))
1116 .field("clear_all", &self.clear_all)
1117 .finish()
1118 }
1119}
1120
1121#[derive(Copy, Clone)]
1122#[repr(C)]
1123pub struct GstAudioSrcClass {
1124 pub parent_class: GstAudioBaseSrcClass,
1125 pub open: Option<unsafe extern "C" fn(*mut GstAudioSrc) -> gboolean>,
1126 pub prepare:
1127 Option<unsafe extern "C" fn(*mut GstAudioSrc, *mut GstAudioRingBufferSpec) -> gboolean>,
1128 pub unprepare: Option<unsafe extern "C" fn(*mut GstAudioSrc) -> gboolean>,
1129 pub close: Option<unsafe extern "C" fn(*mut GstAudioSrc) -> gboolean>,
1130 pub read: Option<
1131 unsafe extern "C" fn(*mut GstAudioSrc, gpointer, c_uint, *mut gst::GstClockTime) -> c_uint,
1132 >,
1133 pub delay: Option<unsafe extern "C" fn(*mut GstAudioSrc) -> c_uint>,
1134 pub reset: Option<unsafe extern "C" fn(*mut GstAudioSrc)>,
1135 pub _gst_reserved: [gpointer; 4],
1136}
1137
1138impl ::std::fmt::Debug for GstAudioSrcClass {
1139 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1140 f.debug_struct(&format!("GstAudioSrcClass @ {self:p}"))
1141 .field("parent_class", &self.parent_class)
1142 .field("open", &self.open)
1143 .field("prepare", &self.prepare)
1144 .field("unprepare", &self.unprepare)
1145 .field("close", &self.close)
1146 .field("read", &self.read)
1147 .field("delay", &self.delay)
1148 .field("reset", &self.reset)
1149 .finish()
1150 }
1151}
1152
1153#[repr(C)]
1154#[allow(dead_code)]
1155pub struct GstAudioStreamAlign {
1156 _data: [u8; 0],
1157 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1158}
1159
1160impl ::std::fmt::Debug for GstAudioStreamAlign {
1161 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1162 f.debug_struct(&format!("GstAudioStreamAlign @ {self:p}"))
1163 .finish()
1164 }
1165}
1166
1167#[derive(Copy, Clone)]
1168#[repr(C)]
1169pub struct GstDsdInfo {
1170 pub format: GstDsdFormat,
1171 pub rate: c_int,
1172 pub channels: c_int,
1173 pub layout: GstAudioLayout,
1174 pub reversed_bytes: gboolean,
1175 pub positions: [GstAudioChannelPosition; 64],
1176 pub flags: GstAudioFlags,
1177 pub _gst_reserved: [gpointer; 4],
1178}
1179
1180impl ::std::fmt::Debug for GstDsdInfo {
1181 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1182 f.debug_struct(&format!("GstDsdInfo @ {self:p}"))
1183 .field("format", &self.format)
1184 .field("rate", &self.rate)
1185 .field("channels", &self.channels)
1186 .field("layout", &self.layout)
1187 .field("reversed_bytes", &self.reversed_bytes)
1188 .field("flags", &self.flags)
1189 .finish()
1190 }
1191}
1192
1193#[derive(Copy, Clone)]
1194#[repr(C)]
1195pub struct GstDsdPlaneOffsetMeta {
1196 pub meta: gst::GstMeta,
1197 pub num_channels: c_int,
1198 pub num_bytes_per_channel: size_t,
1199 pub offsets: *mut size_t,
1200 pub priv_offsets_arr: [size_t; 8],
1201 pub _gst_reserved: [gpointer; 4],
1202}
1203
1204impl ::std::fmt::Debug for GstDsdPlaneOffsetMeta {
1205 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1206 f.debug_struct(&format!("GstDsdPlaneOffsetMeta @ {self:p}"))
1207 .field("meta", &self.meta)
1208 .field("num_channels", &self.num_channels)
1209 .field("num_bytes_per_channel", &self.num_bytes_per_channel)
1210 .field("offsets", &self.offsets)
1211 .finish()
1212 }
1213}
1214
1215#[derive(Copy, Clone)]
1216#[repr(C)]
1217pub struct GstStreamVolumeInterface {
1218 pub iface: gobject::GTypeInterface,
1219}
1220
1221impl ::std::fmt::Debug for GstStreamVolumeInterface {
1222 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1223 f.debug_struct(&format!("GstStreamVolumeInterface @ {self:p}"))
1224 .field("iface", &self.iface)
1225 .finish()
1226 }
1227}
1228
1229#[derive(Copy, Clone)]
1231#[repr(C)]
1232pub struct GstAudioAggregator {
1233 pub parent: gst_base::GstAggregator,
1234 pub current_caps: *mut gst::GstCaps,
1235 pub priv_: *mut GstAudioAggregatorPrivate,
1236 pub _gst_reserved: [gpointer; 4],
1237}
1238
1239impl ::std::fmt::Debug for GstAudioAggregator {
1240 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1241 f.debug_struct(&format!("GstAudioAggregator @ {self:p}"))
1242 .field("parent", &self.parent)
1243 .field("current_caps", &self.current_caps)
1244 .finish()
1245 }
1246}
1247
1248#[derive(Copy, Clone)]
1249#[repr(C)]
1250pub struct GstAudioAggregatorConvertPad {
1251 pub parent: GstAudioAggregatorPad,
1252 pub priv_: *mut GstAudioAggregatorConvertPadPrivate,
1253 pub _gst_reserved: [gpointer; 4],
1254}
1255
1256impl ::std::fmt::Debug for GstAudioAggregatorConvertPad {
1257 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1258 f.debug_struct(&format!("GstAudioAggregatorConvertPad @ {self:p}"))
1259 .finish()
1260 }
1261}
1262
1263#[derive(Copy, Clone)]
1264#[repr(C)]
1265pub struct GstAudioAggregatorPad {
1266 pub parent: gst_base::GstAggregatorPad,
1267 pub info: GstAudioInfo,
1268 pub priv_: *mut GstAudioAggregatorPadPrivate,
1269 pub _gst_reserved: [gpointer; 4],
1270}
1271
1272impl ::std::fmt::Debug for GstAudioAggregatorPad {
1273 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1274 f.debug_struct(&format!("GstAudioAggregatorPad @ {self:p}"))
1275 .field("parent", &self.parent)
1276 .field("info", &self.info)
1277 .finish()
1278 }
1279}
1280
1281#[derive(Copy, Clone)]
1282#[repr(C)]
1283pub struct GstAudioBaseSink {
1284 pub element: gst_base::GstBaseSink,
1285 pub ringbuffer: *mut GstAudioRingBuffer,
1286 pub buffer_time: u64,
1287 pub latency_time: u64,
1288 pub next_sample: u64,
1289 pub provided_clock: *mut gst::GstClock,
1290 pub eos_rendering: gboolean,
1291 pub priv_: *mut GstAudioBaseSinkPrivate,
1292 pub _gst_reserved: [gpointer; 4],
1293}
1294
1295impl ::std::fmt::Debug for GstAudioBaseSink {
1296 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1297 f.debug_struct(&format!("GstAudioBaseSink @ {self:p}"))
1298 .field("element", &self.element)
1299 .field("ringbuffer", &self.ringbuffer)
1300 .field("buffer_time", &self.buffer_time)
1301 .field("latency_time", &self.latency_time)
1302 .field("next_sample", &self.next_sample)
1303 .field("provided_clock", &self.provided_clock)
1304 .field("eos_rendering", &self.eos_rendering)
1305 .finish()
1306 }
1307}
1308
1309#[derive(Copy, Clone)]
1310#[repr(C)]
1311pub struct GstAudioBaseSrc {
1312 pub element: gst_base::GstPushSrc,
1313 pub ringbuffer: *mut GstAudioRingBuffer,
1314 pub buffer_time: gst::GstClockTime,
1315 pub latency_time: gst::GstClockTime,
1316 pub next_sample: u64,
1317 pub clock: *mut gst::GstClock,
1318 pub priv_: *mut GstAudioBaseSrcPrivate,
1319 pub _gst_reserved: [gpointer; 4],
1320}
1321
1322impl ::std::fmt::Debug for GstAudioBaseSrc {
1323 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1324 f.debug_struct(&format!("GstAudioBaseSrc @ {self:p}"))
1325 .field("element", &self.element)
1326 .field("ringbuffer", &self.ringbuffer)
1327 .field("buffer_time", &self.buffer_time)
1328 .field("latency_time", &self.latency_time)
1329 .field("next_sample", &self.next_sample)
1330 .field("clock", &self.clock)
1331 .finish()
1332 }
1333}
1334
1335#[derive(Copy, Clone)]
1336#[repr(C)]
1337pub struct GstAudioCdSrc {
1338 pub pushsrc: gst_base::GstPushSrc,
1339 pub tags: *mut gst::GstTagList,
1340 pub priv_: *mut GstAudioCdSrcPrivate,
1341 pub _gst_reserved1: [c_uint; 2],
1342 pub _gst_reserved2: [gpointer; 2],
1343}
1344
1345impl ::std::fmt::Debug for GstAudioCdSrc {
1346 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1347 f.debug_struct(&format!("GstAudioCdSrc @ {self:p}"))
1348 .field("pushsrc", &self.pushsrc)
1349 .field("tags", &self.tags)
1350 .finish()
1351 }
1352}
1353
1354#[derive(Copy, Clone)]
1355#[repr(C)]
1356pub struct GstAudioClock {
1357 pub clock: gst::GstSystemClock,
1358 pub func: GstAudioClockGetTimeFunc,
1359 pub user_data: gpointer,
1360 pub destroy_notify: glib::GDestroyNotify,
1361 pub last_time: gst::GstClockTime,
1362 pub time_offset: gst::GstClockTimeDiff,
1363 pub _gst_reserved: [gpointer; 4],
1364}
1365
1366impl ::std::fmt::Debug for GstAudioClock {
1367 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1368 f.debug_struct(&format!("GstAudioClock @ {self:p}"))
1369 .field("clock", &self.clock)
1370 .field("func", &self.func)
1371 .field("user_data", &self.user_data)
1372 .field("destroy_notify", &self.destroy_notify)
1373 .finish()
1374 }
1375}
1376
1377#[derive(Copy, Clone)]
1378#[repr(C)]
1379pub struct GstAudioDecoder {
1380 pub element: gst::GstElement,
1381 pub sinkpad: *mut gst::GstPad,
1382 pub srcpad: *mut gst::GstPad,
1383 pub stream_lock: glib::GRecMutex,
1384 pub input_segment: gst::GstSegment,
1385 pub output_segment: gst::GstSegment,
1386 pub priv_: *mut GstAudioDecoderPrivate,
1387 pub _gst_reserved: [gpointer; 20],
1388}
1389
1390impl ::std::fmt::Debug for GstAudioDecoder {
1391 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1392 f.debug_struct(&format!("GstAudioDecoder @ {self:p}"))
1393 .field("element", &self.element)
1394 .field("sinkpad", &self.sinkpad)
1395 .field("srcpad", &self.srcpad)
1396 .field("stream_lock", &self.stream_lock)
1397 .field("input_segment", &self.input_segment)
1398 .field("output_segment", &self.output_segment)
1399 .finish()
1400 }
1401}
1402
1403#[derive(Copy, Clone)]
1404#[repr(C)]
1405pub struct GstAudioEncoder {
1406 pub element: gst::GstElement,
1407 pub sinkpad: *mut gst::GstPad,
1408 pub srcpad: *mut gst::GstPad,
1409 pub stream_lock: glib::GRecMutex,
1410 pub input_segment: gst::GstSegment,
1411 pub output_segment: gst::GstSegment,
1412 pub priv_: *mut GstAudioEncoderPrivate,
1413 pub _gst_reserved: [gpointer; 20],
1414}
1415
1416impl ::std::fmt::Debug for GstAudioEncoder {
1417 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1418 f.debug_struct(&format!("GstAudioEncoder @ {self:p}"))
1419 .field("element", &self.element)
1420 .field("sinkpad", &self.sinkpad)
1421 .field("srcpad", &self.srcpad)
1422 .field("stream_lock", &self.stream_lock)
1423 .field("input_segment", &self.input_segment)
1424 .field("output_segment", &self.output_segment)
1425 .finish()
1426 }
1427}
1428
1429#[derive(Copy, Clone)]
1430#[repr(C)]
1431pub struct GstAudioFilter {
1432 pub basetransform: gst_base::GstBaseTransform,
1433 pub info: GstAudioInfo,
1434 pub _gst_reserved: [gpointer; 4],
1435}
1436
1437impl ::std::fmt::Debug for GstAudioFilter {
1438 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1439 f.debug_struct(&format!("GstAudioFilter @ {self:p}"))
1440 .field("basetransform", &self.basetransform)
1441 .field("info", &self.info)
1442 .finish()
1443 }
1444}
1445
1446#[derive(Copy, Clone)]
1447#[repr(C)]
1448pub struct GstAudioRingBuffer {
1449 pub object: gst::GstObject,
1450 pub cond: glib::GCond,
1451 pub open: gboolean,
1452 pub acquired: gboolean,
1453 pub memory: *mut u8,
1454 pub size: size_t,
1455 pub timestamps: *mut gst::GstClockTime,
1456 pub spec: GstAudioRingBufferSpec,
1457 pub samples_per_seg: c_int,
1458 pub empty_seg: *mut u8,
1459 pub state: c_int,
1460 pub segdone: c_int,
1461 pub segbase: c_int,
1462 pub waiting: c_int,
1463 pub callback: GstAudioRingBufferCallback,
1464 pub cb_data: gpointer,
1465 pub need_reorder: gboolean,
1466 pub channel_reorder_map: [c_int; 64],
1467 pub flushing: gboolean,
1468 pub may_start: c_int,
1469 pub active: gboolean,
1470 pub cb_data_notify: glib::GDestroyNotify,
1471 pub priv_: *mut GstAudioRingBufferPrivate,
1472 pub _gst_reserved: [gpointer; 2],
1473}
1474
1475impl ::std::fmt::Debug for GstAudioRingBuffer {
1476 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1477 f.debug_struct(&format!("GstAudioRingBuffer @ {self:p}"))
1478 .field("object", &self.object)
1479 .field("cond", &self.cond)
1480 .field("open", &self.open)
1481 .field("acquired", &self.acquired)
1482 .field("memory", &self.memory)
1483 .field("size", &self.size)
1484 .field("spec", &self.spec)
1485 .field("samples_per_seg", &self.samples_per_seg)
1486 .field("empty_seg", &self.empty_seg)
1487 .field("state", &self.state)
1488 .field("segdone", &self.segdone)
1489 .field("segbase", &self.segbase)
1490 .field("waiting", &self.waiting)
1491 .finish()
1492 }
1493}
1494
1495#[derive(Copy, Clone)]
1496#[repr(C)]
1497pub struct GstAudioSink {
1498 pub element: GstAudioBaseSink,
1499 pub thread: *mut glib::GThread,
1500 pub _gst_reserved: [gpointer; 4],
1501}
1502
1503impl ::std::fmt::Debug for GstAudioSink {
1504 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1505 f.debug_struct(&format!("GstAudioSink @ {self:p}"))
1506 .field("element", &self.element)
1507 .finish()
1508 }
1509}
1510
1511#[derive(Copy, Clone)]
1512#[repr(C)]
1513pub struct GstAudioSrc {
1514 pub element: GstAudioBaseSrc,
1515 pub thread: *mut glib::GThread,
1516 pub _gst_reserved: [gpointer; 4],
1517}
1518
1519impl ::std::fmt::Debug for GstAudioSrc {
1520 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1521 f.debug_struct(&format!("GstAudioSrc @ {self:p}"))
1522 .field("element", &self.element)
1523 .finish()
1524 }
1525}
1526
1527#[repr(C)]
1529#[allow(dead_code)]
1530pub struct GstStreamVolume {
1531 _data: [u8; 0],
1532 _marker: core::marker::PhantomData<(*mut u8, core::marker::PhantomPinned)>,
1533}
1534
1535impl ::std::fmt::Debug for GstStreamVolume {
1536 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
1537 write!(f, "GstStreamVolume @ {self:p}")
1538 }
1539}
1540
1541unsafe extern "C" {
1542
1543 pub fn gst_audio_base_sink_discont_reason_get_type() -> GType;
1547
1548 pub fn gst_audio_base_sink_slave_method_get_type() -> GType;
1552
1553 pub fn gst_audio_base_src_slave_method_get_type() -> GType;
1557
1558 pub fn gst_audio_cd_src_mode_get_type() -> GType;
1562
1563 pub fn gst_audio_channel_position_get_type() -> GType;
1567
1568 pub fn gst_audio_dither_method_get_type() -> GType;
1572
1573 pub fn gst_audio_format_get_type() -> GType;
1577 pub fn gst_audio_format_build_integer(
1578 sign: gboolean,
1579 endianness: c_int,
1580 width: c_int,
1581 depth: c_int,
1582 ) -> GstAudioFormat;
1583 pub fn gst_audio_format_fill_silence(
1584 info: *const GstAudioFormatInfo,
1585 dest: gpointer,
1586 length: size_t,
1587 );
1588 pub fn gst_audio_format_from_string(format: *const c_char) -> GstAudioFormat;
1589 pub fn gst_audio_format_get_info(format: GstAudioFormat) -> *const GstAudioFormatInfo;
1590 pub fn gst_audio_format_to_string(format: GstAudioFormat) -> *const c_char;
1591
1592 pub fn gst_audio_layout_get_type() -> GType;
1596
1597 pub fn gst_audio_noise_shaping_method_get_type() -> GType;
1601
1602 pub fn gst_audio_resampler_filter_interpolation_get_type() -> GType;
1606
1607 pub fn gst_audio_resampler_filter_mode_get_type() -> GType;
1611
1612 pub fn gst_audio_resampler_method_get_type() -> GType;
1616
1617 pub fn gst_audio_ring_buffer_format_type_get_type() -> GType;
1621
1622 pub fn gst_audio_ring_buffer_state_get_type() -> GType;
1626
1627 #[cfg(feature = "v1_24")]
1631 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1632 pub fn gst_dsd_format_get_type() -> GType;
1633 #[cfg(feature = "v1_24")]
1634 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1635 pub fn gst_dsd_format_from_string(str: *const c_char) -> GstDsdFormat;
1636 #[cfg(feature = "v1_24")]
1637 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1638 pub fn gst_dsd_format_get_width(format: GstDsdFormat) -> c_uint;
1639 #[cfg(feature = "v1_24")]
1640 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1641 pub fn gst_dsd_format_to_string(format: GstDsdFormat) -> *const c_char;
1642
1643 pub fn gst_audio_channel_mixer_flags_get_type() -> GType;
1647
1648 pub fn gst_audio_converter_flags_get_type() -> GType;
1652
1653 pub fn gst_audio_flags_get_type() -> GType;
1657
1658 pub fn gst_audio_format_flags_get_type() -> GType;
1662
1663 pub fn gst_audio_pack_flags_get_type() -> GType;
1667
1668 pub fn gst_audio_quantize_flags_get_type() -> GType;
1672
1673 pub fn gst_audio_resampler_flags_get_type() -> GType;
1677
1678 #[cfg(feature = "v1_16")]
1682 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1683 pub fn gst_audio_buffer_unmap(buffer: *mut GstAudioBuffer);
1684 pub fn gst_audio_buffer_clip(
1685 buffer: *mut gst::GstBuffer,
1686 segment: *const gst::GstSegment,
1687 rate: c_int,
1688 bpf: c_int,
1689 ) -> *mut gst::GstBuffer;
1690 #[cfg(feature = "v1_16")]
1691 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1692 pub fn gst_audio_buffer_map(
1693 buffer: *mut GstAudioBuffer,
1694 info: *const GstAudioInfo,
1695 gstbuffer: *mut gst::GstBuffer,
1696 flags: gst::GstMapFlags,
1697 ) -> gboolean;
1698 pub fn gst_audio_buffer_reorder_channels(
1699 buffer: *mut gst::GstBuffer,
1700 format: GstAudioFormat,
1701 channels: c_int,
1702 from: *const GstAudioChannelPosition,
1703 to: *const GstAudioChannelPosition,
1704 ) -> gboolean;
1705 #[cfg(feature = "v1_16")]
1706 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1707 pub fn gst_audio_buffer_truncate(
1708 buffer: *mut gst::GstBuffer,
1709 bpf: c_int,
1710 trim: size_t,
1711 samples: size_t,
1712 ) -> *mut gst::GstBuffer;
1713
1714 pub fn gst_audio_channel_mixer_free(mix: *mut GstAudioChannelMixer);
1718 pub fn gst_audio_channel_mixer_is_passthrough(mix: *mut GstAudioChannelMixer) -> gboolean;
1719 pub fn gst_audio_channel_mixer_samples(
1720 mix: *mut GstAudioChannelMixer,
1721 in_: *const gpointer,
1722 out: *mut gpointer,
1723 samples: c_int,
1724 );
1725 pub fn gst_audio_channel_mixer_new(
1726 flags: GstAudioChannelMixerFlags,
1727 format: GstAudioFormat,
1728 in_channels: c_int,
1729 in_position: *mut GstAudioChannelPosition,
1730 out_channels: c_int,
1731 out_position: *mut GstAudioChannelPosition,
1732 ) -> *mut GstAudioChannelMixer;
1733 pub fn gst_audio_channel_mixer_new_with_matrix(
1734 flags: GstAudioChannelMixerFlags,
1735 format: GstAudioFormat,
1736 in_channels: c_int,
1737 out_channels: c_int,
1738 matrix: *mut *mut c_float,
1739 ) -> *mut GstAudioChannelMixer;
1740
1741 pub fn gst_audio_clipping_meta_get_info() -> *const gst::GstMetaInfo;
1745
1746 pub fn gst_audio_converter_get_type() -> GType;
1750 pub fn gst_audio_converter_new(
1751 flags: GstAudioConverterFlags,
1752 in_info: *mut GstAudioInfo,
1753 out_info: *mut GstAudioInfo,
1754 config: *mut gst::GstStructure,
1755 ) -> *mut GstAudioConverter;
1756 pub fn gst_audio_converter_convert(
1757 convert: *mut GstAudioConverter,
1758 flags: GstAudioConverterFlags,
1759 in_: gpointer,
1760 in_size: size_t,
1761 out: *mut u8,
1762 out_size: *mut size_t,
1763 ) -> gboolean;
1764 pub fn gst_audio_converter_free(convert: *mut GstAudioConverter);
1765 pub fn gst_audio_converter_get_config(
1766 convert: *mut GstAudioConverter,
1767 in_rate: *mut c_int,
1768 out_rate: *mut c_int,
1769 ) -> *const gst::GstStructure;
1770 pub fn gst_audio_converter_get_in_frames(
1771 convert: *mut GstAudioConverter,
1772 out_frames: size_t,
1773 ) -> size_t;
1774 pub fn gst_audio_converter_get_max_latency(convert: *mut GstAudioConverter) -> size_t;
1775 pub fn gst_audio_converter_get_out_frames(
1776 convert: *mut GstAudioConverter,
1777 in_frames: size_t,
1778 ) -> size_t;
1779 #[cfg(feature = "v1_16")]
1780 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1781 pub fn gst_audio_converter_is_passthrough(convert: *mut GstAudioConverter) -> gboolean;
1782 pub fn gst_audio_converter_reset(convert: *mut GstAudioConverter);
1783 pub fn gst_audio_converter_samples(
1784 convert: *mut GstAudioConverter,
1785 flags: GstAudioConverterFlags,
1786 in_: *mut gpointer,
1787 in_frames: size_t,
1788 out: *mut gpointer,
1789 out_frames: size_t,
1790 ) -> gboolean;
1791 pub fn gst_audio_converter_supports_inplace(convert: *mut GstAudioConverter) -> gboolean;
1792 pub fn gst_audio_converter_update_config(
1793 convert: *mut GstAudioConverter,
1794 in_rate: c_int,
1795 out_rate: c_int,
1796 config: *mut gst::GstStructure,
1797 ) -> gboolean;
1798
1799 pub fn gst_audio_downmix_meta_get_info() -> *const gst::GstMetaInfo;
1803
1804 pub fn gst_audio_filter_class_add_pad_templates(
1808 klass: *mut GstAudioFilterClass,
1809 allowed_caps: *mut gst::GstCaps,
1810 );
1811
1812 pub fn gst_audio_format_info_get_type() -> GType;
1816 #[cfg(feature = "v1_20")]
1817 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1818 pub fn gst_audio_format_info_fill_silence(
1819 info: *const GstAudioFormatInfo,
1820 dest: gpointer,
1821 length: size_t,
1822 );
1823
1824 pub fn gst_audio_info_get_type() -> GType;
1828 pub fn gst_audio_info_new() -> *mut GstAudioInfo;
1829 #[cfg(feature = "v1_20")]
1830 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1831 pub fn gst_audio_info_new_from_caps(caps: *const gst::GstCaps) -> *mut GstAudioInfo;
1832 pub fn gst_audio_info_convert(
1833 info: *const GstAudioInfo,
1834 src_fmt: gst::GstFormat,
1835 src_val: i64,
1836 dest_fmt: gst::GstFormat,
1837 dest_val: *mut i64,
1838 ) -> gboolean;
1839 pub fn gst_audio_info_copy(info: *const GstAudioInfo) -> *mut GstAudioInfo;
1840 pub fn gst_audio_info_free(info: *mut GstAudioInfo);
1841 pub fn gst_audio_info_is_equal(
1842 info: *const GstAudioInfo,
1843 other: *const GstAudioInfo,
1844 ) -> gboolean;
1845 pub fn gst_audio_info_set_format(
1846 info: *mut GstAudioInfo,
1847 format: GstAudioFormat,
1848 rate: c_int,
1849 channels: c_int,
1850 position: *const [GstAudioChannelPosition; 64],
1851 );
1852 pub fn gst_audio_info_to_caps(info: *const GstAudioInfo) -> *mut gst::GstCaps;
1853 pub fn gst_audio_info_from_caps(info: *mut GstAudioInfo, caps: *const gst::GstCaps)
1854 -> gboolean;
1855 pub fn gst_audio_info_init(info: *mut GstAudioInfo);
1856
1857 #[cfg(feature = "v1_20")]
1861 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
1862 pub fn gst_audio_level_meta_get_info() -> *const gst::GstMetaInfo;
1863
1864 #[cfg(feature = "v1_16")]
1868 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
1869 pub fn gst_audio_meta_get_info() -> *const gst::GstMetaInfo;
1870
1871 pub fn gst_audio_quantize_free(quant: *mut GstAudioQuantize);
1875 pub fn gst_audio_quantize_reset(quant: *mut GstAudioQuantize);
1876 pub fn gst_audio_quantize_samples(
1877 quant: *mut GstAudioQuantize,
1878 in_: *const gpointer,
1879 out: *mut gpointer,
1880 samples: c_uint,
1881 );
1882 pub fn gst_audio_quantize_new(
1883 dither: GstAudioDitherMethod,
1884 ns: GstAudioNoiseShapingMethod,
1885 flags: GstAudioQuantizeFlags,
1886 format: GstAudioFormat,
1887 channels: c_uint,
1888 quantizer: c_uint,
1889 ) -> *mut GstAudioQuantize;
1890
1891 pub fn gst_audio_resampler_free(resampler: *mut GstAudioResampler);
1895 pub fn gst_audio_resampler_get_in_frames(
1896 resampler: *mut GstAudioResampler,
1897 out_frames: size_t,
1898 ) -> size_t;
1899 pub fn gst_audio_resampler_get_max_latency(resampler: *mut GstAudioResampler) -> size_t;
1900 pub fn gst_audio_resampler_get_out_frames(
1901 resampler: *mut GstAudioResampler,
1902 in_frames: size_t,
1903 ) -> size_t;
1904 pub fn gst_audio_resampler_resample(
1905 resampler: *mut GstAudioResampler,
1906 in_: *mut gpointer,
1907 in_frames: size_t,
1908 out: *mut gpointer,
1909 out_frames: size_t,
1910 );
1911 pub fn gst_audio_resampler_reset(resampler: *mut GstAudioResampler);
1912 pub fn gst_audio_resampler_update(
1913 resampler: *mut GstAudioResampler,
1914 in_rate: c_int,
1915 out_rate: c_int,
1916 options: *mut gst::GstStructure,
1917 ) -> gboolean;
1918 pub fn gst_audio_resampler_new(
1919 method: GstAudioResamplerMethod,
1920 flags: GstAudioResamplerFlags,
1921 format: GstAudioFormat,
1922 channels: c_int,
1923 in_rate: c_int,
1924 out_rate: c_int,
1925 options: *mut gst::GstStructure,
1926 ) -> *mut GstAudioResampler;
1927 pub fn gst_audio_resampler_options_set_quality(
1928 method: GstAudioResamplerMethod,
1929 quality: c_uint,
1930 in_rate: c_int,
1931 out_rate: c_int,
1932 options: *mut gst::GstStructure,
1933 );
1934
1935 pub fn gst_audio_stream_align_get_type() -> GType;
1939 pub fn gst_audio_stream_align_new(
1940 rate: c_int,
1941 alignment_threshold: gst::GstClockTime,
1942 discont_wait: gst::GstClockTime,
1943 ) -> *mut GstAudioStreamAlign;
1944 pub fn gst_audio_stream_align_copy(
1945 align: *const GstAudioStreamAlign,
1946 ) -> *mut GstAudioStreamAlign;
1947 pub fn gst_audio_stream_align_free(align: *mut GstAudioStreamAlign);
1948 pub fn gst_audio_stream_align_get_alignment_threshold(
1949 align: *const GstAudioStreamAlign,
1950 ) -> gst::GstClockTime;
1951 pub fn gst_audio_stream_align_get_discont_wait(
1952 align: *const GstAudioStreamAlign,
1953 ) -> gst::GstClockTime;
1954 pub fn gst_audio_stream_align_get_rate(align: *const GstAudioStreamAlign) -> c_int;
1955 pub fn gst_audio_stream_align_get_samples_since_discont(
1956 align: *const GstAudioStreamAlign,
1957 ) -> u64;
1958 pub fn gst_audio_stream_align_get_timestamp_at_discont(
1959 align: *const GstAudioStreamAlign,
1960 ) -> gst::GstClockTime;
1961 pub fn gst_audio_stream_align_mark_discont(align: *mut GstAudioStreamAlign);
1962 pub fn gst_audio_stream_align_process(
1963 align: *mut GstAudioStreamAlign,
1964 discont: gboolean,
1965 timestamp: gst::GstClockTime,
1966 n_samples: c_uint,
1967 out_timestamp: *mut gst::GstClockTime,
1968 out_duration: *mut gst::GstClockTime,
1969 out_sample_position: *mut u64,
1970 ) -> gboolean;
1971 pub fn gst_audio_stream_align_set_alignment_threshold(
1972 align: *mut GstAudioStreamAlign,
1973 alignment_threshold: gst::GstClockTime,
1974 );
1975 pub fn gst_audio_stream_align_set_discont_wait(
1976 align: *mut GstAudioStreamAlign,
1977 discont_wait: gst::GstClockTime,
1978 );
1979 pub fn gst_audio_stream_align_set_rate(align: *mut GstAudioStreamAlign, rate: c_int);
1980
1981 #[cfg(feature = "v1_24")]
1985 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1986 pub fn gst_dsd_info_get_type() -> GType;
1987 #[cfg(feature = "v1_24")]
1988 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1989 pub fn gst_dsd_info_new() -> *mut GstDsdInfo;
1990 #[cfg(feature = "v1_24")]
1991 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1992 pub fn gst_dsd_info_new_from_caps(caps: *const gst::GstCaps) -> *mut GstDsdInfo;
1993 #[cfg(feature = "v1_24")]
1994 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1995 pub fn gst_dsd_info_copy(info: *const GstDsdInfo) -> *mut GstDsdInfo;
1996 #[cfg(feature = "v1_24")]
1997 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
1998 pub fn gst_dsd_info_free(info: *mut GstDsdInfo);
1999 #[cfg(feature = "v1_24")]
2000 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2001 pub fn gst_dsd_info_is_equal(info: *const GstDsdInfo, other: *const GstDsdInfo) -> gboolean;
2002 #[cfg(feature = "v1_24")]
2003 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2004 pub fn gst_dsd_info_set_format(
2005 info: *mut GstDsdInfo,
2006 format: GstDsdFormat,
2007 rate: c_int,
2008 channels: c_int,
2009 positions: *const [GstAudioChannelPosition; 64],
2010 );
2011 #[cfg(feature = "v1_24")]
2012 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2013 pub fn gst_dsd_info_to_caps(info: *const GstDsdInfo) -> *mut gst::GstCaps;
2014 #[cfg(feature = "v1_24")]
2015 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2016 pub fn gst_dsd_info_from_caps(info: *mut GstDsdInfo, caps: *const gst::GstCaps) -> gboolean;
2017 #[cfg(feature = "v1_24")]
2018 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2019 pub fn gst_dsd_info_init(info: *mut GstDsdInfo);
2020
2021 #[cfg(feature = "v1_24")]
2025 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2026 pub fn gst_dsd_plane_offset_meta_get_info() -> *const gst::GstMetaInfo;
2027
2028 pub fn gst_audio_aggregator_get_type() -> GType;
2032 pub fn gst_audio_aggregator_set_sink_caps(
2033 aagg: *mut GstAudioAggregator,
2034 pad: *mut GstAudioAggregatorPad,
2035 caps: *mut gst::GstCaps,
2036 );
2037
2038 pub fn gst_audio_aggregator_convert_pad_get_type() -> GType;
2042
2043 pub fn gst_audio_aggregator_pad_get_type() -> GType;
2047
2048 pub fn gst_audio_base_sink_get_type() -> GType;
2052 pub fn gst_audio_base_sink_create_ringbuffer(
2053 sink: *mut GstAudioBaseSink,
2054 ) -> *mut GstAudioRingBuffer;
2055 pub fn gst_audio_base_sink_get_alignment_threshold(
2056 sink: *mut GstAudioBaseSink,
2057 ) -> gst::GstClockTime;
2058 pub fn gst_audio_base_sink_get_discont_wait(sink: *mut GstAudioBaseSink) -> gst::GstClockTime;
2059 pub fn gst_audio_base_sink_get_drift_tolerance(sink: *mut GstAudioBaseSink) -> i64;
2060 pub fn gst_audio_base_sink_get_provide_clock(sink: *mut GstAudioBaseSink) -> gboolean;
2061 pub fn gst_audio_base_sink_get_slave_method(
2062 sink: *mut GstAudioBaseSink,
2063 ) -> GstAudioBaseSinkSlaveMethod;
2064 pub fn gst_audio_base_sink_report_device_failure(sink: *mut GstAudioBaseSink);
2065 pub fn gst_audio_base_sink_set_alignment_threshold(
2066 sink: *mut GstAudioBaseSink,
2067 alignment_threshold: gst::GstClockTime,
2068 );
2069 pub fn gst_audio_base_sink_set_custom_slaving_callback(
2070 sink: *mut GstAudioBaseSink,
2071 callback: GstAudioBaseSinkCustomSlavingCallback,
2072 user_data: gpointer,
2073 notify: glib::GDestroyNotify,
2074 );
2075 pub fn gst_audio_base_sink_set_discont_wait(
2076 sink: *mut GstAudioBaseSink,
2077 discont_wait: gst::GstClockTime,
2078 );
2079 pub fn gst_audio_base_sink_set_drift_tolerance(
2080 sink: *mut GstAudioBaseSink,
2081 drift_tolerance: i64,
2082 );
2083 pub fn gst_audio_base_sink_set_provide_clock(sink: *mut GstAudioBaseSink, provide: gboolean);
2084 pub fn gst_audio_base_sink_set_slave_method(
2085 sink: *mut GstAudioBaseSink,
2086 method: GstAudioBaseSinkSlaveMethod,
2087 );
2088
2089 pub fn gst_audio_base_src_get_type() -> GType;
2093 pub fn gst_audio_base_src_create_ringbuffer(
2094 src: *mut GstAudioBaseSrc,
2095 ) -> *mut GstAudioRingBuffer;
2096 pub fn gst_audio_base_src_get_provide_clock(src: *mut GstAudioBaseSrc) -> gboolean;
2097 pub fn gst_audio_base_src_get_slave_method(
2098 src: *mut GstAudioBaseSrc,
2099 ) -> GstAudioBaseSrcSlaveMethod;
2100 pub fn gst_audio_base_src_set_provide_clock(src: *mut GstAudioBaseSrc, provide: gboolean);
2101 pub fn gst_audio_base_src_set_slave_method(
2102 src: *mut GstAudioBaseSrc,
2103 method: GstAudioBaseSrcSlaveMethod,
2104 );
2105
2106 pub fn gst_audio_cd_src_get_type() -> GType;
2110 pub fn gst_audio_cd_src_add_track(
2111 src: *mut GstAudioCdSrc,
2112 track: *mut GstAudioCdSrcTrack,
2113 ) -> gboolean;
2114
2115 pub fn gst_audio_clock_get_type() -> GType;
2119 pub fn gst_audio_clock_new(
2120 name: *const c_char,
2121 func: GstAudioClockGetTimeFunc,
2122 user_data: gpointer,
2123 destroy_notify: glib::GDestroyNotify,
2124 ) -> *mut gst::GstClock;
2125 pub fn gst_audio_clock_adjust(
2126 clock: *mut GstAudioClock,
2127 time: gst::GstClockTime,
2128 ) -> gst::GstClockTime;
2129 pub fn gst_audio_clock_get_time(clock: *mut GstAudioClock) -> gst::GstClockTime;
2130 pub fn gst_audio_clock_invalidate(clock: *mut GstAudioClock);
2131 pub fn gst_audio_clock_reset(clock: *mut GstAudioClock, time: gst::GstClockTime);
2132
2133 pub fn gst_audio_decoder_get_type() -> GType;
2137 pub fn gst_audio_decoder_allocate_output_buffer(
2138 dec: *mut GstAudioDecoder,
2139 size: size_t,
2140 ) -> *mut gst::GstBuffer;
2141 pub fn gst_audio_decoder_finish_frame(
2142 dec: *mut GstAudioDecoder,
2143 buf: *mut gst::GstBuffer,
2144 frames: c_int,
2145 ) -> gst::GstFlowReturn;
2146 #[cfg(feature = "v1_16")]
2147 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2148 pub fn gst_audio_decoder_finish_subframe(
2149 dec: *mut GstAudioDecoder,
2150 buf: *mut gst::GstBuffer,
2151 ) -> gst::GstFlowReturn;
2152 pub fn gst_audio_decoder_get_allocator(
2153 dec: *mut GstAudioDecoder,
2154 allocator: *mut *mut gst::GstAllocator,
2155 params: *mut gst::GstAllocationParams,
2156 );
2157 pub fn gst_audio_decoder_get_audio_info(dec: *mut GstAudioDecoder) -> *mut GstAudioInfo;
2158 pub fn gst_audio_decoder_get_delay(dec: *mut GstAudioDecoder) -> c_int;
2159 pub fn gst_audio_decoder_get_drainable(dec: *mut GstAudioDecoder) -> gboolean;
2160 pub fn gst_audio_decoder_get_estimate_rate(dec: *mut GstAudioDecoder) -> c_int;
2161 pub fn gst_audio_decoder_get_latency(
2162 dec: *mut GstAudioDecoder,
2163 min: *mut gst::GstClockTime,
2164 max: *mut gst::GstClockTime,
2165 );
2166 pub fn gst_audio_decoder_get_max_errors(dec: *mut GstAudioDecoder) -> c_int;
2167 pub fn gst_audio_decoder_get_min_latency(dec: *mut GstAudioDecoder) -> gst::GstClockTime;
2168 pub fn gst_audio_decoder_get_needs_format(dec: *mut GstAudioDecoder) -> gboolean;
2169 pub fn gst_audio_decoder_get_parse_state(
2170 dec: *mut GstAudioDecoder,
2171 sync: *mut gboolean,
2172 eos: *mut gboolean,
2173 );
2174 pub fn gst_audio_decoder_get_plc(dec: *mut GstAudioDecoder) -> gboolean;
2175 pub fn gst_audio_decoder_get_plc_aware(dec: *mut GstAudioDecoder) -> c_int;
2176 pub fn gst_audio_decoder_get_tolerance(dec: *mut GstAudioDecoder) -> gst::GstClockTime;
2177 pub fn gst_audio_decoder_merge_tags(
2178 dec: *mut GstAudioDecoder,
2179 tags: *const gst::GstTagList,
2180 mode: gst::GstTagMergeMode,
2181 );
2182 pub fn gst_audio_decoder_negotiate(dec: *mut GstAudioDecoder) -> gboolean;
2183 pub fn gst_audio_decoder_proxy_getcaps(
2184 decoder: *mut GstAudioDecoder,
2185 caps: *mut gst::GstCaps,
2186 filter: *mut gst::GstCaps,
2187 ) -> *mut gst::GstCaps;
2188 pub fn gst_audio_decoder_set_allocation_caps(
2189 dec: *mut GstAudioDecoder,
2190 allocation_caps: *mut gst::GstCaps,
2191 );
2192 pub fn gst_audio_decoder_set_drainable(dec: *mut GstAudioDecoder, enabled: gboolean);
2193 pub fn gst_audio_decoder_set_estimate_rate(dec: *mut GstAudioDecoder, enabled: gboolean);
2194 pub fn gst_audio_decoder_set_latency(
2195 dec: *mut GstAudioDecoder,
2196 min: gst::GstClockTime,
2197 max: gst::GstClockTime,
2198 );
2199 pub fn gst_audio_decoder_set_max_errors(dec: *mut GstAudioDecoder, num: c_int);
2200 pub fn gst_audio_decoder_set_min_latency(dec: *mut GstAudioDecoder, num: gst::GstClockTime);
2201 pub fn gst_audio_decoder_set_needs_format(dec: *mut GstAudioDecoder, enabled: gboolean);
2202 #[cfg(feature = "v1_16")]
2203 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2204 pub fn gst_audio_decoder_set_output_caps(
2205 dec: *mut GstAudioDecoder,
2206 caps: *mut gst::GstCaps,
2207 ) -> gboolean;
2208 pub fn gst_audio_decoder_set_output_format(
2209 dec: *mut GstAudioDecoder,
2210 info: *const GstAudioInfo,
2211 ) -> gboolean;
2212 pub fn gst_audio_decoder_set_plc(dec: *mut GstAudioDecoder, enabled: gboolean);
2213 pub fn gst_audio_decoder_set_plc_aware(dec: *mut GstAudioDecoder, plc: gboolean);
2214 pub fn gst_audio_decoder_set_tolerance(dec: *mut GstAudioDecoder, tolerance: gst::GstClockTime);
2215 pub fn gst_audio_decoder_set_use_default_pad_acceptcaps(
2216 decoder: *mut GstAudioDecoder,
2217 use_: gboolean,
2218 );
2219
2220 pub fn gst_audio_encoder_get_type() -> GType;
2224 pub fn gst_audio_encoder_allocate_output_buffer(
2225 enc: *mut GstAudioEncoder,
2226 size: size_t,
2227 ) -> *mut gst::GstBuffer;
2228 pub fn gst_audio_encoder_finish_frame(
2229 enc: *mut GstAudioEncoder,
2230 buffer: *mut gst::GstBuffer,
2231 samples: c_int,
2232 ) -> gst::GstFlowReturn;
2233 pub fn gst_audio_encoder_get_allocator(
2234 enc: *mut GstAudioEncoder,
2235 allocator: *mut *mut gst::GstAllocator,
2236 params: *mut gst::GstAllocationParams,
2237 );
2238 pub fn gst_audio_encoder_get_audio_info(enc: *mut GstAudioEncoder) -> *mut GstAudioInfo;
2239 pub fn gst_audio_encoder_get_drainable(enc: *mut GstAudioEncoder) -> gboolean;
2240 pub fn gst_audio_encoder_get_frame_max(enc: *mut GstAudioEncoder) -> c_int;
2241 pub fn gst_audio_encoder_get_frame_samples_max(enc: *mut GstAudioEncoder) -> c_int;
2242 pub fn gst_audio_encoder_get_frame_samples_min(enc: *mut GstAudioEncoder) -> c_int;
2243 pub fn gst_audio_encoder_get_hard_min(enc: *mut GstAudioEncoder) -> gboolean;
2244 pub fn gst_audio_encoder_get_hard_resync(enc: *mut GstAudioEncoder) -> gboolean;
2245 pub fn gst_audio_encoder_get_latency(
2246 enc: *mut GstAudioEncoder,
2247 min: *mut gst::GstClockTime,
2248 max: *mut gst::GstClockTime,
2249 );
2250 pub fn gst_audio_encoder_get_lookahead(enc: *mut GstAudioEncoder) -> c_int;
2251 pub fn gst_audio_encoder_get_mark_granule(enc: *mut GstAudioEncoder) -> gboolean;
2252 pub fn gst_audio_encoder_get_perfect_timestamp(enc: *mut GstAudioEncoder) -> gboolean;
2253 pub fn gst_audio_encoder_get_tolerance(enc: *mut GstAudioEncoder) -> gst::GstClockTime;
2254 pub fn gst_audio_encoder_merge_tags(
2255 enc: *mut GstAudioEncoder,
2256 tags: *const gst::GstTagList,
2257 mode: gst::GstTagMergeMode,
2258 );
2259 pub fn gst_audio_encoder_negotiate(enc: *mut GstAudioEncoder) -> gboolean;
2260 pub fn gst_audio_encoder_proxy_getcaps(
2261 enc: *mut GstAudioEncoder,
2262 caps: *mut gst::GstCaps,
2263 filter: *mut gst::GstCaps,
2264 ) -> *mut gst::GstCaps;
2265 pub fn gst_audio_encoder_set_allocation_caps(
2266 enc: *mut GstAudioEncoder,
2267 allocation_caps: *mut gst::GstCaps,
2268 );
2269 pub fn gst_audio_encoder_set_drainable(enc: *mut GstAudioEncoder, enabled: gboolean);
2270 pub fn gst_audio_encoder_set_frame_max(enc: *mut GstAudioEncoder, num: c_int);
2271 pub fn gst_audio_encoder_set_frame_samples_max(enc: *mut GstAudioEncoder, num: c_int);
2272 pub fn gst_audio_encoder_set_frame_samples_min(enc: *mut GstAudioEncoder, num: c_int);
2273 pub fn gst_audio_encoder_set_hard_min(enc: *mut GstAudioEncoder, enabled: gboolean);
2274 pub fn gst_audio_encoder_set_hard_resync(enc: *mut GstAudioEncoder, enabled: gboolean);
2275 pub fn gst_audio_encoder_set_headers(enc: *mut GstAudioEncoder, headers: *mut glib::GList);
2276 pub fn gst_audio_encoder_set_latency(
2277 enc: *mut GstAudioEncoder,
2278 min: gst::GstClockTime,
2279 max: gst::GstClockTime,
2280 );
2281 pub fn gst_audio_encoder_set_lookahead(enc: *mut GstAudioEncoder, num: c_int);
2282 pub fn gst_audio_encoder_set_mark_granule(enc: *mut GstAudioEncoder, enabled: gboolean);
2283 pub fn gst_audio_encoder_set_output_format(
2284 enc: *mut GstAudioEncoder,
2285 caps: *mut gst::GstCaps,
2286 ) -> gboolean;
2287 pub fn gst_audio_encoder_set_perfect_timestamp(enc: *mut GstAudioEncoder, enabled: gboolean);
2288 pub fn gst_audio_encoder_set_tolerance(enc: *mut GstAudioEncoder, tolerance: gst::GstClockTime);
2289
2290 pub fn gst_audio_filter_get_type() -> GType;
2294
2295 pub fn gst_audio_ring_buffer_get_type() -> GType;
2299 pub fn gst_audio_ring_buffer_debug_spec_buff(spec: *mut GstAudioRingBufferSpec);
2300 pub fn gst_audio_ring_buffer_debug_spec_caps(spec: *mut GstAudioRingBufferSpec);
2301 pub fn gst_audio_ring_buffer_parse_caps(
2302 spec: *mut GstAudioRingBufferSpec,
2303 caps: *mut gst::GstCaps,
2304 ) -> gboolean;
2305 pub fn gst_audio_ring_buffer_acquire(
2306 buf: *mut GstAudioRingBuffer,
2307 spec: *mut GstAudioRingBufferSpec,
2308 ) -> gboolean;
2309 pub fn gst_audio_ring_buffer_activate(
2310 buf: *mut GstAudioRingBuffer,
2311 active: gboolean,
2312 ) -> gboolean;
2313 pub fn gst_audio_ring_buffer_advance(buf: *mut GstAudioRingBuffer, advance: c_uint);
2314 pub fn gst_audio_ring_buffer_clear(buf: *mut GstAudioRingBuffer, segment: c_int);
2315 pub fn gst_audio_ring_buffer_clear_all(buf: *mut GstAudioRingBuffer);
2316 pub fn gst_audio_ring_buffer_close_device(buf: *mut GstAudioRingBuffer) -> gboolean;
2317 pub fn gst_audio_ring_buffer_commit(
2318 buf: *mut GstAudioRingBuffer,
2319 sample: *mut u64,
2320 data: *mut u8,
2321 in_samples: c_int,
2322 out_samples: c_int,
2323 accum: *mut c_int,
2324 ) -> c_uint;
2325 pub fn gst_audio_ring_buffer_convert(
2326 buf: *mut GstAudioRingBuffer,
2327 src_fmt: gst::GstFormat,
2328 src_val: i64,
2329 dest_fmt: gst::GstFormat,
2330 dest_val: *mut i64,
2331 ) -> gboolean;
2332 pub fn gst_audio_ring_buffer_delay(buf: *mut GstAudioRingBuffer) -> c_uint;
2333 pub fn gst_audio_ring_buffer_device_is_open(buf: *mut GstAudioRingBuffer) -> gboolean;
2334 #[cfg(feature = "v1_26")]
2335 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2336 pub fn gst_audio_ring_buffer_get_segbase(buf: *mut GstAudioRingBuffer) -> u64;
2337 #[cfg(feature = "v1_26")]
2338 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2339 pub fn gst_audio_ring_buffer_get_segdone(buf: *mut GstAudioRingBuffer) -> u64;
2340 pub fn gst_audio_ring_buffer_is_acquired(buf: *mut GstAudioRingBuffer) -> gboolean;
2341 pub fn gst_audio_ring_buffer_is_active(buf: *mut GstAudioRingBuffer) -> gboolean;
2342 pub fn gst_audio_ring_buffer_is_flushing(buf: *mut GstAudioRingBuffer) -> gboolean;
2343 pub fn gst_audio_ring_buffer_may_start(buf: *mut GstAudioRingBuffer, allowed: gboolean);
2344 pub fn gst_audio_ring_buffer_open_device(buf: *mut GstAudioRingBuffer) -> gboolean;
2345 pub fn gst_audio_ring_buffer_pause(buf: *mut GstAudioRingBuffer) -> gboolean;
2346 pub fn gst_audio_ring_buffer_prepare_read(
2347 buf: *mut GstAudioRingBuffer,
2348 segment: *mut c_int,
2349 readptr: *mut *mut u8,
2350 len: *mut c_int,
2351 ) -> gboolean;
2352 pub fn gst_audio_ring_buffer_read(
2353 buf: *mut GstAudioRingBuffer,
2354 sample: u64,
2355 data: *mut u8,
2356 len: c_uint,
2357 timestamp: *mut gst::GstClockTime,
2358 ) -> c_uint;
2359 pub fn gst_audio_ring_buffer_release(buf: *mut GstAudioRingBuffer) -> gboolean;
2360 pub fn gst_audio_ring_buffer_samples_done(buf: *mut GstAudioRingBuffer) -> u64;
2361 pub fn gst_audio_ring_buffer_set_callback(
2362 buf: *mut GstAudioRingBuffer,
2363 cb: GstAudioRingBufferCallback,
2364 user_data: gpointer,
2365 );
2366 pub fn gst_audio_ring_buffer_set_callback_full(
2367 buf: *mut GstAudioRingBuffer,
2368 cb: GstAudioRingBufferCallback,
2369 user_data: gpointer,
2370 notify: glib::GDestroyNotify,
2371 );
2372 pub fn gst_audio_ring_buffer_set_channel_positions(
2373 buf: *mut GstAudioRingBuffer,
2374 position: *const GstAudioChannelPosition,
2375 );
2376 #[cfg(feature = "v1_24")]
2377 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2378 pub fn gst_audio_ring_buffer_set_errored(buf: *mut GstAudioRingBuffer);
2379 pub fn gst_audio_ring_buffer_set_flushing(buf: *mut GstAudioRingBuffer, flushing: gboolean);
2380 pub fn gst_audio_ring_buffer_set_sample(buf: *mut GstAudioRingBuffer, sample: u64);
2381 #[cfg(feature = "v1_26")]
2382 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2383 pub fn gst_audio_ring_buffer_set_segdone(buf: *mut GstAudioRingBuffer, segdone: u64);
2384 pub fn gst_audio_ring_buffer_set_timestamp(
2385 buf: *mut GstAudioRingBuffer,
2386 readseg: c_int,
2387 timestamp: gst::GstClockTime,
2388 );
2389 pub fn gst_audio_ring_buffer_start(buf: *mut GstAudioRingBuffer) -> gboolean;
2390 pub fn gst_audio_ring_buffer_stop(buf: *mut GstAudioRingBuffer) -> gboolean;
2391
2392 pub fn gst_audio_sink_get_type() -> GType;
2396
2397 pub fn gst_audio_src_get_type() -> GType;
2401
2402 pub fn gst_stream_volume_get_type() -> GType;
2406 pub fn gst_stream_volume_convert_volume(
2407 from: GstStreamVolumeFormat,
2408 to: GstStreamVolumeFormat,
2409 val: c_double,
2410 ) -> c_double;
2411 pub fn gst_stream_volume_get_mute(volume: *mut GstStreamVolume) -> gboolean;
2412 pub fn gst_stream_volume_get_volume(
2413 volume: *mut GstStreamVolume,
2414 format: GstStreamVolumeFormat,
2415 ) -> c_double;
2416 pub fn gst_stream_volume_set_mute(volume: *mut GstStreamVolume, mute: gboolean);
2417 pub fn gst_stream_volume_set_volume(
2418 volume: *mut GstStreamVolume,
2419 format: GstStreamVolumeFormat,
2420 val: c_double,
2421 );
2422
2423 pub fn gst_audio_channel_get_fallback_mask(channels: c_int) -> u64;
2427 pub fn gst_audio_channel_positions_from_mask(
2428 channels: c_int,
2429 channel_mask: u64,
2430 position: *mut GstAudioChannelPosition,
2431 ) -> gboolean;
2432 pub fn gst_audio_channel_positions_to_mask(
2433 position: *const GstAudioChannelPosition,
2434 channels: c_int,
2435 force_order: gboolean,
2436 channel_mask: *mut u64,
2437 ) -> gboolean;
2438 pub fn gst_audio_channel_positions_to_string(
2439 position: *const GstAudioChannelPosition,
2440 channels: c_int,
2441 ) -> *mut c_char;
2442 pub fn gst_audio_channel_positions_to_valid_order(
2443 position: *mut GstAudioChannelPosition,
2444 channels: c_int,
2445 ) -> gboolean;
2446 pub fn gst_audio_check_valid_channel_positions(
2447 position: *const GstAudioChannelPosition,
2448 channels: c_int,
2449 force_order: gboolean,
2450 ) -> gboolean;
2451 pub fn gst_audio_clipping_meta_api_get_type() -> GType;
2452 pub fn gst_audio_downmix_meta_api_get_type() -> GType;
2453 #[cfg(feature = "v1_18")]
2454 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2455 pub fn gst_audio_formats_raw(len: *mut c_uint) -> *const GstAudioFormat;
2456 pub fn gst_audio_get_channel_reorder_map(
2457 channels: c_int,
2458 from: *const GstAudioChannelPosition,
2459 to: *const GstAudioChannelPosition,
2460 reorder_map: *mut c_int,
2461 ) -> gboolean;
2462 pub fn gst_audio_iec61937_frame_size(spec: *const GstAudioRingBufferSpec) -> c_uint;
2463 pub fn gst_audio_iec61937_payload(
2464 src: *const u8,
2465 src_n: c_uint,
2466 dst: *mut u8,
2467 dst_n: c_uint,
2468 spec: *const GstAudioRingBufferSpec,
2469 endianness: c_int,
2470 ) -> gboolean;
2471 #[cfg(feature = "v1_20")]
2472 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2473 pub fn gst_audio_level_meta_api_get_type() -> GType;
2474 #[cfg(feature = "v1_18")]
2475 #[cfg_attr(docsrs, doc(cfg(feature = "v1_18")))]
2476 pub fn gst_audio_make_raw_caps(
2477 formats: *const GstAudioFormat,
2478 len: c_uint,
2479 layout: GstAudioLayout,
2480 ) -> *mut gst::GstCaps;
2481 #[cfg(feature = "v1_16")]
2482 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2483 pub fn gst_audio_meta_api_get_type() -> GType;
2484 pub fn gst_audio_reorder_channels(
2485 data: gpointer,
2486 size: size_t,
2487 format: GstAudioFormat,
2488 channels: c_int,
2489 from: *const GstAudioChannelPosition,
2490 to: *const GstAudioChannelPosition,
2491 ) -> gboolean;
2492 #[cfg(feature = "v1_26")]
2493 #[cfg_attr(docsrs, doc(cfg(feature = "v1_26")))]
2494 pub fn gst_audio_reorder_channels_with_reorder_map(
2495 data: gpointer,
2496 size: size_t,
2497 bps: c_int,
2498 channels: c_int,
2499 reorder_map: *const c_int,
2500 );
2501 pub fn gst_buffer_add_audio_clipping_meta(
2502 buffer: *mut gst::GstBuffer,
2503 format: gst::GstFormat,
2504 start: u64,
2505 end: u64,
2506 ) -> *mut GstAudioClippingMeta;
2507 pub fn gst_buffer_add_audio_downmix_meta(
2508 buffer: *mut gst::GstBuffer,
2509 from_position: *const GstAudioChannelPosition,
2510 from_channels: c_int,
2511 to_position: *const GstAudioChannelPosition,
2512 to_channels: c_int,
2513 matrix: *mut *const c_float,
2514 ) -> *mut GstAudioDownmixMeta;
2515 #[cfg(feature = "v1_20")]
2516 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2517 pub fn gst_buffer_add_audio_level_meta(
2518 buffer: *mut gst::GstBuffer,
2519 level: u8,
2520 voice_activity: gboolean,
2521 ) -> *mut GstAudioLevelMeta;
2522 #[cfg(feature = "v1_16")]
2523 #[cfg_attr(docsrs, doc(cfg(feature = "v1_16")))]
2524 pub fn gst_buffer_add_audio_meta(
2525 buffer: *mut gst::GstBuffer,
2526 info: *const GstAudioInfo,
2527 samples: size_t,
2528 offsets: *mut size_t,
2529 ) -> *mut GstAudioMeta;
2530 #[cfg(feature = "v1_24")]
2531 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2532 pub fn gst_buffer_add_dsd_plane_offset_meta(
2533 buffer: *mut gst::GstBuffer,
2534 num_channels: c_int,
2535 num_bytes_per_channel: size_t,
2536 offsets: *mut size_t,
2537 ) -> *mut GstDsdPlaneOffsetMeta;
2538 pub fn gst_buffer_get_audio_downmix_meta_for_channels(
2539 buffer: *mut gst::GstBuffer,
2540 to_position: *const GstAudioChannelPosition,
2541 to_channels: c_int,
2542 ) -> *mut GstAudioDownmixMeta;
2543 #[cfg(feature = "v1_20")]
2544 #[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
2545 pub fn gst_buffer_get_audio_level_meta(buffer: *mut gst::GstBuffer) -> *mut GstAudioLevelMeta;
2546 #[cfg(feature = "v1_24")]
2547 #[cfg_attr(docsrs, doc(cfg(feature = "v1_24")))]
2548 pub fn gst_dsd_convert(
2549 input_data: *const u8,
2550 output_data: *mut u8,
2551 input_format: GstDsdFormat,
2552 output_format: GstDsdFormat,
2553 input_layout: GstAudioLayout,
2554 output_layout: GstAudioLayout,
2555 input_plane_offsets: *const size_t,
2556 output_plane_offsets: *const size_t,
2557 num_dsd_bytes: size_t,
2558 num_channels: c_int,
2559 reverse_byte_bits: gboolean,
2560 );
2561 pub fn gst_dsd_plane_offset_meta_api_get_type() -> GType;
2562
2563}