objc2_av_foundation/generated/
AVAssetVariant.rs

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