1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-core-foundation")]
use objc2_core_foundation::*;
#[cfg(feature = "objc2-core-media")]
use objc2_core_media::*;
use objc2_foundation::*;
use crate::*;
extern_class!(
/// An AVAssetVariant represents a bit rate variant. Each asset contains a collection of variants that represent a combination of audio, video, text, closed captions, and subtitles for a particular bit rate. Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariant?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariant;
);
unsafe impl Send for AVAssetVariant {}
unsafe impl Sync for AVAssetVariant {}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariant {}
);
impl AVAssetVariant {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
/// If it is not declared, the value will be negative.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(peakBitRate))]
#[unsafe(method_family = none)]
pub unsafe fn peakBitRate(&self) -> c_double;
/// If it is not declared, the value will be negative.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(averageBitRate))]
#[unsafe(method_family = none)]
pub unsafe fn averageBitRate(&self) -> c_double;
/// Provides variant's video rendition attributes. If no video attributes are declared, it will be nil.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(videoAttributes))]
#[unsafe(method_family = none)]
pub unsafe fn videoAttributes(&self) -> Option<Retained<AVAssetVariantVideoAttributes>>;
/// Provides variant's audio rendition attributes. If no audio attributes are declared, it will be nil.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(audioAttributes))]
#[unsafe(method_family = none)]
pub unsafe fn audioAttributes(&self) -> Option<Retained<AVAssetVariantAudioAttributes>>;
/// Provides URL to media playlist corresponding to variant
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(URL))]
#[unsafe(method_family = none)]
pub unsafe fn URL(&self) -> Retained<NSURL>;
);
}
extern_class!(
/// Video attributes for an asset variant.
///
/// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariantvideoattributes?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariantVideoAttributes;
);
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariantVideoAttributes {}
);
impl AVAssetVariantVideoAttributes {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
#[cfg(feature = "AVMediaFormat")]
/// Provides the video range of the variant. If it is not declared, it will be AVVideoRangeSDR.
#[unsafe(method(videoRange))]
#[unsafe(method_family = none)]
pub unsafe fn videoRange(&self) -> Retained<AVVideoRange>;
/// Provides an array of video sample codec types present in the variant's renditions if any are declared. Each value in the array is a NSNumber representation of CMVideoCodecType.
#[unsafe(method(codecTypes))]
#[unsafe(method_family = none)]
pub unsafe fn codecTypes(&self) -> Retained<NSArray<NSNumber>>;
#[cfg(feature = "objc2-core-foundation")]
/// If it is not declared, it will be CGSizeZero.
#[unsafe(method(presentationSize))]
#[unsafe(method_family = none)]
pub unsafe fn presentationSize(&self) -> CGSize;
/// If it is not declared, the value will be negative.
#[unsafe(method(nominalFrameRate))]
#[unsafe(method_family = none)]
pub unsafe fn nominalFrameRate(&self) -> c_double;
/// Describes the video layout attributes.
///
/// videoLayoutAttributes' count may be greater than one if this variant contains a collection of differing video layout media attributes over time.
#[unsafe(method(videoLayoutAttributes))]
#[unsafe(method_family = none)]
pub unsafe fn videoLayoutAttributes(
&self,
) -> Retained<NSArray<AVAssetVariantVideoLayoutAttributes>>;
);
}
extern_class!(
/// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariantvideolayoutattributes?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariantVideoLayoutAttributes;
);
unsafe impl Send for AVAssetVariantVideoLayoutAttributes {}
unsafe impl Sync for AVAssetVariantVideoLayoutAttributes {}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariantVideoLayoutAttributes {}
);
impl AVAssetVariantVideoLayoutAttributes {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
#[cfg(feature = "objc2-core-media")]
/// Describes the stereo components. If not declared, the value will be `kCMStereoViewComponent_None`. In case of monoscopic content, the value will be `kCMStereoViewComponent_None` and incase of stereoscopic content, the value will be `(kCMStereoViewComponent_LeftEye | kCMStereoViewComponent_RightEye)`.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(stereoViewComponents))]
#[unsafe(method_family = none)]
pub unsafe fn stereoViewComponents(&self) -> CMStereoViewComponents;
#[cfg(feature = "objc2-core-media")]
/// Describes the video projection.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(projectionType))]
#[unsafe(method_family = none)]
pub unsafe fn projectionType(&self) -> CMProjectionType;
);
}
extern_class!(
/// Audio attributes for an asset variant.
///
/// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariantaudioattributes?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariantAudioAttributes;
);
unsafe impl Send for AVAssetVariantAudioAttributes {}
unsafe impl Sync for AVAssetVariantAudioAttributes {}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariantAudioAttributes {}
);
impl AVAssetVariantAudioAttributes {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
/// Provides an array of audio formats present in the variant's renditions if any are declared. Each value in the array is a NSNumber representation of AudioFormatID.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(formatIDs))]
#[unsafe(method_family = none)]
pub unsafe fn formatIDs(&self) -> Retained<NSArray<NSNumber>>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Provides attributes for a specific audio media selection option. If no rendition specific attributes are declared, it will be nil.
///
/// - Parameter mediaSelectionOption: The option to return rendition specific information for.
#[unsafe(method(renditionSpecificAttributesForMediaOption:))]
#[unsafe(method_family = none)]
pub unsafe fn renditionSpecificAttributesForMediaOption(
&self,
media_selection_option: &AVMediaSelectionOption,
) -> Option<Retained<AVAssetVariantAudioRenditionSpecificAttributes>>;
);
}
extern_class!(
/// Audio rendition attributes for an asset variant.
///
/// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariantaudiorenditionspecificattributes?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariantAudioRenditionSpecificAttributes;
);
unsafe impl Send for AVAssetVariantAudioRenditionSpecificAttributes {}
unsafe impl Sync for AVAssetVariantAudioRenditionSpecificAttributes {}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariantAudioRenditionSpecificAttributes {}
);
impl AVAssetVariantAudioRenditionSpecificAttributes {
extern_methods!(
/// If it is not declared, the value will be negative.
///
/// A channel count greater than two indicates that the variant offers a rich multichannel authoring.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(channelCount))]
#[unsafe(method_family = none)]
pub unsafe fn channelCount(&self) -> NSInteger;
/// Indicates that the variant is best suited for delivery to headphones.
///
/// A binaural variant may originate from a direct binaural recording or from the processing of a multichannel audio source.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(isBinaural))]
#[unsafe(method_family = none)]
pub unsafe fn isBinaural(&self) -> bool;
/// Indicates that this variant contains virtualized or otherwise pre-processed audio content that is suitable for a variety of purposes.
///
/// If a variant audio redition is immersive it is eligible for rendering either to headphones or speakers.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(isImmersive))]
#[unsafe(method_family = none)]
pub unsafe fn isImmersive(&self) -> bool;
/// Indicates that this variant is declared as a downmix derivative of other media of greater channel count.
///
/// If one or more multichannel variants are also provided, the dowmix is assumed to be compatible in its internal timing and other attributes with those variants. Typically this is because it has been derived from the same source. A downmix can be used as a suitable substitute for a multichannel variant under some conditions.
///
/// This property is not atomic.
///
/// # Safety
///
/// This might not be thread-safe.
#[unsafe(method(isDownmix))]
#[unsafe(method_family = none)]
pub unsafe fn isDownmix(&self) -> bool;
);
}
/// Methods declared on superclass `NSObject`.
impl AVAssetVariantAudioRenditionSpecificAttributes {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
);
}
extern_class!(
/// The qualifier of an asset variant.
///
/// Subclasses of this type that are used from Swift must fulfill the requirements of a Sendable type.
///
/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassetvariantqualifier?language=objc)
#[unsafe(super(NSObject))]
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct AVAssetVariantQualifier;
);
unsafe impl Send for AVAssetVariantQualifier {}
unsafe impl Sync for AVAssetVariantQualifier {}
extern_conformance!(
unsafe impl NSCopying for AVAssetVariantQualifier {}
);
unsafe impl CopyingHelper for AVAssetVariantQualifier {
type Result = Self;
}
extern_conformance!(
unsafe impl NSObjectProtocol for AVAssetVariantQualifier {}
);
impl AVAssetVariantQualifier {
extern_methods!(
#[unsafe(method(init))]
#[unsafe(method_family = init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[unsafe(method(new))]
#[unsafe(method_family = new)]
pub unsafe fn new() -> Retained<Self>;
/// Returns a qualifer for a predicate.
///
/// - Parameter predicate: The variant predicate. Must be a valid, non-nil NSPredicate.
#[unsafe(method(assetVariantQualifierWithPredicate:))]
#[unsafe(method_family = none)]
pub unsafe fn assetVariantQualifierWithPredicate(predicate: &NSPredicate)
-> Retained<Self>;
/// Returns a qualifer for a particular asset variant.
///
/// - Parameter variant: A variant obtained from the -[AVAsset variants] or -[AVAssetDownloadConfiguration playableVariants]. Must be a valid, non-nil AVAssetVariant.
#[unsafe(method(assetVariantQualifierWithVariant:))]
#[unsafe(method_family = none)]
pub unsafe fn assetVariantQualifierWithVariant(variant: &AVAssetVariant) -> Retained<Self>;
/// Returns a qualifer for finding variant with minimum value in the input key path.
///
/// - Parameter keyPath: AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize. Must be a valid, non-nil NSString.
#[unsafe(method(assetVariantQualifierForMinimumValueInKeyPath:))]
#[unsafe(method_family = none)]
pub unsafe fn assetVariantQualifierForMinimumValueInKeyPath(
key_path: &NSString,
) -> Retained<Self>;
/// Returns a qualifer for finding variant with maximum value in the input key path
///
/// - Parameter keyPath: AVAssetVariant keyPath. Allowed keyPath values are peakBitRate, averageBitRate, videoAttributes.presentationSize. Must be a valid, non-nil NSString.
#[unsafe(method(assetVariantQualifierForMaximumValueInKeyPath:))]
#[unsafe(method_family = none)]
pub unsafe fn assetVariantQualifierForMaximumValueInKeyPath(
key_path: &NSString,
) -> Retained<Self>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Creates a NSPredicate for audio channel count which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter channelCount: The RHS value for the channel count in the predicate equation.
/// - Parameter mediaSelectionOption: The audio media selection option under consideration.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForChannelCount:mediaSelectionOption:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForChannelCount_mediaSelectionOption_operatorType(
channel_count: NSInteger,
media_selection_option: Option<&AVMediaSelectionOption>,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Creates a NSPredicate for binaural which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter isBinaural: The RHS value for the value of isBinauralAudio in the predicate equation.
/// - Parameter mediaSelectionOption: The audio media selection option under consideration.
#[unsafe(method(predicateForBinauralAudio:mediaSelectionOption:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForBinauralAudio_mediaSelectionOption(
is_binaural_audio: bool,
media_selection_option: Option<&AVMediaSelectionOption>,
) -> Retained<NSPredicate>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Creates a NSPredicate for immersive audio which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter isImmersiveAudio: The RHS value for the value of isImmersiveAudio in the predicate equation.
/// - Parameter mediaSelectionOption: The audio media selection option under consideration.
#[unsafe(method(predicateForImmersiveAudio:mediaSelectionOption:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForImmersiveAudio_mediaSelectionOption(
is_immersive_audio: bool,
media_selection_option: Option<&AVMediaSelectionOption>,
) -> Retained<NSPredicate>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Creates a NSPredicate for immersive audio which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter isDownmixAudio: The RHS value for the value of isDownmixAudio in the predicate equation.
/// - Parameter mediaSelectionOption: The audio media selection option under consideration.
#[unsafe(method(predicateForDownmixAudio:mediaSelectionOption:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForDownmixAudio_mediaSelectionOption(
is_downmix_audio: bool,
media_selection_option: Option<&AVMediaSelectionOption>,
) -> Retained<NSPredicate>;
#[cfg(feature = "objc2-core-foundation")]
/// Creates a NSPredicate for presentation size width which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter width: The RHS value for the presentation size width in the predicate equation.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForPresentationWidth:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForPresentationWidth_operatorType(
width: CGFloat,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
#[cfg(feature = "objc2-core-foundation")]
/// Creates a NSPredicate for presentation size height which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter height: The RHS value for the presentation size height in the predicate equation.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForPresentationHeight:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForPresentationHeight_operatorType(
height: CGFloat,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
#[cfg(feature = "AVMediaSelectionGroup")]
/// Creates a NSPredicate for audio sample rate which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter sampleRate: The RHS value for the sample rate in the predicate equation.
/// - Parameter mediaSelectionOption: The audio media selection option under consideration.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForAudioSampleRate:mediaSelectionOption:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForAudioSampleRate_mediaSelectionOption_operatorType(
sample_rate: c_double,
media_selection_option: Option<&AVMediaSelectionOption>,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
/// Creates a NSPredicate for audio channel count which can be used with other NSPredicates to express variant preferences.
///
/// Predicate will be evaluated on the media selection option selected for the asset.
/// Media selection options for primary assets may be specified in the AVAssetDownloadConfiguration mediaSelections property.
/// Media selection options for interstitial assets may be circumscribed by -[AVAssetDownloadConfiguration setInterstitialMediaSelectionCriteria: forMediaCharacteristic:].
///
/// - Parameter channelCount: The RHS value for the channel count in the predicate equation.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForChannelCount:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForChannelCount_operatorType(
channel_count: NSInteger,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
/// Creates a NSPredicate for binaural which can be used with other NSPredicates to express variant preferences.
///
/// - Parameter isBinaural: The RHS value for the value of isBinauralAudio in the predicate equation.
#[unsafe(method(predicateForBinauralAudio:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForBinauralAudio(is_binaural_audio: bool) -> Retained<NSPredicate>;
/// Creates a NSPredicate for immersive audio which can be used with other NSPredicates to express variant preferences.
///
/// Predicate will be evaluated on the media selection option selected for the asset.
/// Media selection options for primary assets may be specified in the AVAssetDownloadConfiguration mediaSelections property.
/// Media selection options for interstitial assets may be circumscribed by -[AVAssetDownloadConfiguration setInterstitialMediaSelectionCriteria: forMediaCharacteristic:].
///
/// - Parameter isImmersiveAudio: The RHS value for the value of isImmersiveAudio in the predicate equation.
#[unsafe(method(predicateForImmersiveAudio:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForImmersiveAudio(is_immersive_audio: bool)
-> Retained<NSPredicate>;
/// Creates a NSPredicate for immersive audio which can be used with other NSPredicates to express variant preferences.
///
/// Predicate will be evaluated on the media selection option selected for the asset.
/// Media selection options for primary assets may be specified in the AVAssetDownloadConfiguration mediaSelections property.
/// Media selection options for interstitial assets may be circumscribed by -[AVAssetDownloadConfiguration setInterstitialMediaSelectionCriteria: forMediaCharacteristic:].
///
/// - Parameter isDownmixAudio: The RHS value for the value of isDownmixAudio in the predicate equation.
#[unsafe(method(predicateForDownmixAudio:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForDownmixAudio(is_downmix_audio: bool) -> Retained<NSPredicate>;
/// Creates a NSPredicate for audio sample rate which can be used with other NSPredicates to express variant preferences.
///
/// Predicate will be evaluated on the media selection option selected for the asset.
/// Media selection options for primary assets may be specified in the AVAssetDownloadConfiguration mediaSelections property.
/// Media selection options for interstitial assets may be circumscribed by -[AVAssetDownloadConfiguration setInterstitialMediaSelectionCriteria: forMediaCharacteristic:].
///
/// - Parameter sampleRate: The RHS value for the sample rate in the predicate equation.
/// - Parameter operatorType: The valid values are NSLessThanPredicateOperatorType, NSLessThanOrEqualToPredicateOperatorType, NSGreaterThanPredicateOperatorType, NSGreaterThanOrEqualToPredicateOperatorType, NSEqualToPredicateOperatorType and NSNotEqualToPredicateOperatorType.
#[unsafe(method(predicateForAudioSampleRate:operatorType:))]
#[unsafe(method_family = none)]
pub unsafe fn predicateForAudioSampleRate_operatorType(
sample_rate: c_double,
operator_type: NSPredicateOperatorType,
) -> Retained<NSPredicate>;
);
}