objc2_av_foundation/generated/
AVAssetTrack.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 AVAsset is an abstract class that defines AVFoundation's model for timed audiovisual media.
16    ///
17    /// Each asset contains a collection of tracks that are intended to be presented or processed together, each of a uniform media type, including but not limited to audio, video, text, closed captions, and subtitles.
18    ///
19    ///
20    /// AVAssets are often instantiated via its concrete subclass AVURLAsset with NSURLs that refer to audiovisual media resources, such as streams (including HTTP live streams), QuickTime movie files, MP3 files, and files of other types.
21    ///
22    /// They can also be instantiated using other concrete subclasses that extend the basic model for audiovisual media in useful ways, as AVComposition does for temporal editing.
23    ///
24    /// Properties of assets as a whole are defined by AVAsset. Additionally, references to instances of AVAssetTracks representing tracks of the collection can be obtained, so that each of these can be examined independently.
25    ///
26    /// Because of the nature of timed audiovisual media, upon successful initialization of an AVAsset some or all of the values for its keys may not be immediately available. The value of any key can be requested at any time, and AVAsset will always return its value synchronously, although it may have to block the calling thread in order to do so.
27    ///
28    /// In order to avoid blocking, clients can register their interest in particular keys and to become notified when their values become available. For further details, see AVAsynchronousKeyValueLoading.h. For clients who want to examine a subset of the tracks, metadata, and other parts of the asset, asynchronous methods like -loadTracksWithMediaType:completionHandler: can be used to load this information without blocking. When using these asynchronous methods, it is not necessary to load the associated property beforehand. Swift clients can also use the load(:) method to load properties in a type safe manner.
29    ///
30    /// On platforms other than macOS, it is particularly important to avoid blocking.  To preserve responsiveness, a synchronous request that blocks for too long (eg, a property request on an asset on a slow HTTP server) may lead to media services being reset.
31    ///
32    /// To play an instance of AVAsset, initialize an instance of AVPlayerItem with it, use the AVPlayerItem to set up its presentation state (such as whether only a limited timeRange of the asset should be played, etc.), and provide the AVPlayerItem to an AVPlayer according to whether the items is to be played by itself or together with a collection of other items. Full details available in AVPlayerItem.h and AVPlayer.h.
33    ///
34    /// AVAssets can also be inserted into AVMutableCompositions in order to assemble audiovisual constructs from one or more source assets.
35    ///
36    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettrack?language=objc)
37    #[unsafe(super(NSObject))]
38    #[derive(Debug, PartialEq, Eq, Hash)]
39    pub struct AVAssetTrack;
40);
41
42#[cfg(feature = "AVAsynchronousKeyValueLoading")]
43extern_conformance!(
44    unsafe impl AVAsynchronousKeyValueLoading for AVAssetTrack {}
45);
46
47extern_conformance!(
48    unsafe impl NSCopying for AVAssetTrack {}
49);
50
51unsafe impl CopyingHelper for AVAssetTrack {
52    type Result = Self;
53}
54
55extern_conformance!(
56    unsafe impl NSObjectProtocol for AVAssetTrack {}
57);
58
59impl AVAssetTrack {
60    extern_methods!(
61        #[unsafe(method(init))]
62        #[unsafe(method_family = init)]
63        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
64
65        #[unsafe(method(new))]
66        #[unsafe(method_family = new)]
67        pub unsafe fn new() -> Retained<Self>;
68
69        #[cfg(feature = "AVAsset")]
70        #[unsafe(method(asset))]
71        #[unsafe(method_family = none)]
72        pub unsafe fn asset(&self) -> Option<Retained<AVAsset>>;
73
74        #[cfg(feature = "objc2-core-media")]
75        #[unsafe(method(trackID))]
76        #[unsafe(method_family = none)]
77        pub unsafe fn trackID(&self) -> CMPersistentTrackID;
78    );
79}
80
81/// AVAssetTrackBasicPropertiesAndCharacteristics.
82impl AVAssetTrack {
83    extern_methods!(
84        #[cfg(feature = "AVMediaFormat")]
85        #[unsafe(method(mediaType))]
86        #[unsafe(method_family = none)]
87        pub unsafe fn mediaType(&self) -> Retained<AVMediaType>;
88
89        #[unsafe(method(formatDescriptions))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn formatDescriptions(&self) -> Retained<NSArray>;
92
93        #[unsafe(method(isPlayable))]
94        #[unsafe(method_family = none)]
95        pub unsafe fn isPlayable(&self) -> bool;
96
97        #[unsafe(method(isDecodable))]
98        #[unsafe(method_family = none)]
99        pub unsafe fn isDecodable(&self) -> bool;
100
101        #[unsafe(method(isEnabled))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn isEnabled(&self) -> bool;
104
105        #[unsafe(method(isSelfContained))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn isSelfContained(&self) -> bool;
108
109        #[unsafe(method(totalSampleDataLength))]
110        #[unsafe(method_family = none)]
111        pub unsafe fn totalSampleDataLength(&self) -> c_longlong;
112
113        #[cfg(feature = "AVMediaFormat")]
114        /// Reports whether the track references media with the specified media characteristic.
115        ///
116        /// Parameter `mediaCharacteristic`: The media characteristic of interest, e.g. AVMediaCharacteristicVisual, AVMediaCharacteristicAudible, AVMediaCharacteristicLegible, etc.,
117        /// as defined above.
118        ///
119        /// Returns: YES if the track references media with the specified characteristic, otherwise NO.
120        #[unsafe(method(hasMediaCharacteristic:))]
121        #[unsafe(method_family = none)]
122        pub unsafe fn hasMediaCharacteristic(
123            &self,
124            media_characteristic: &AVMediaCharacteristic,
125        ) -> bool;
126    );
127}
128
129/// AVAssetTrackTemporalProperties.
130impl AVAssetTrack {
131    extern_methods!(
132        #[cfg(feature = "objc2-core-media")]
133        #[unsafe(method(timeRange))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn timeRange(&self) -> CMTimeRange;
136
137        #[cfg(feature = "objc2-core-media")]
138        #[unsafe(method(naturalTimeScale))]
139        #[unsafe(method_family = none)]
140        pub unsafe fn naturalTimeScale(&self) -> CMTimeScale;
141
142        #[unsafe(method(estimatedDataRate))]
143        #[unsafe(method_family = none)]
144        pub unsafe fn estimatedDataRate(&self) -> c_float;
145    );
146}
147
148/// AVAssetTrackLanguageProperties.
149impl AVAssetTrack {
150    extern_methods!(
151        #[unsafe(method(languageCode))]
152        #[unsafe(method_family = none)]
153        pub unsafe fn languageCode(&self) -> Option<Retained<NSString>>;
154
155        #[unsafe(method(extendedLanguageTag))]
156        #[unsafe(method_family = none)]
157        pub unsafe fn extendedLanguageTag(&self) -> Option<Retained<NSString>>;
158    );
159}
160
161/// AVAssetTrackPropertiesForVisualCharacteristic.
162impl AVAssetTrack {
163    extern_methods!(
164        #[cfg(feature = "objc2-core-foundation")]
165        #[unsafe(method(naturalSize))]
166        #[unsafe(method_family = none)]
167        pub unsafe fn naturalSize(&self) -> CGSize;
168
169        #[cfg(feature = "objc2-core-foundation")]
170        #[unsafe(method(preferredTransform))]
171        #[unsafe(method_family = none)]
172        pub unsafe fn preferredTransform(&self) -> CGAffineTransform;
173    );
174}
175
176/// AVAssetTrackPropertiesForAudibleCharacteristic.
177impl AVAssetTrack {
178    extern_methods!(
179        #[unsafe(method(preferredVolume))]
180        #[unsafe(method_family = none)]
181        pub unsafe fn preferredVolume(&self) -> c_float;
182
183        #[unsafe(method(hasAudioSampleDependencies))]
184        #[unsafe(method_family = none)]
185        pub unsafe fn hasAudioSampleDependencies(&self) -> bool;
186    );
187}
188
189/// AVAssetTrackPropertiesForFrameBasedCharacteristic.
190impl AVAssetTrack {
191    extern_methods!(
192        /// For tracks that carry a full frame per media sample, indicates the frame rate of the track in units of frames per second.
193        ///
194        /// For field-based video tracks that carry one field per media sample, the value of this property is the field rate, not the frame rate.
195        #[unsafe(method(nominalFrameRate))]
196        #[unsafe(method_family = none)]
197        pub unsafe fn nominalFrameRate(&self) -> c_float;
198
199        #[cfg(feature = "objc2-core-media")]
200        #[unsafe(method(minFrameDuration))]
201        #[unsafe(method_family = none)]
202        pub unsafe fn minFrameDuration(&self) -> CMTime;
203
204        /// Indicates whether samples in the track may have different values for their presentation and decode timestamps.
205        #[unsafe(method(requiresFrameReordering))]
206        #[unsafe(method_family = none)]
207        pub unsafe fn requiresFrameReordering(&self) -> bool;
208    );
209}
210
211/// AVAssetTrackSegments.
212impl AVAssetTrack {
213    extern_methods!(
214        #[cfg(feature = "AVAssetTrackSegment")]
215        #[unsafe(method(segments))]
216        #[unsafe(method_family = none)]
217        pub unsafe fn segments(&self) -> Retained<NSArray<AVAssetTrackSegment>>;
218
219        #[cfg(all(feature = "AVAssetTrackSegment", feature = "objc2-core-media"))]
220        /// Supplies the AVAssetTrackSegment from the segments array with a target timeRange that either contains the specified track time or is the closest to it among the target timeRanges of the track's segments.
221        ///
222        /// Parameter `trackTime`: The trackTime for which an AVAssetTrackSegment is requested.
223        ///
224        /// Returns: An AVAssetTrackSegment.
225        ///
226        /// If the trackTime does not map to a sample presentation time (e.g. it's outside the track's timeRange), the segment closest in time to the specified trackTime is returned.
227        #[deprecated = "Use loadSegmentForTrackTime:completionHandler: instead"]
228        #[unsafe(method(segmentForTrackTime:))]
229        #[unsafe(method_family = none)]
230        pub unsafe fn segmentForTrackTime(
231            &self,
232            track_time: CMTime,
233        ) -> Option<Retained<AVAssetTrackSegment>>;
234
235        #[cfg(all(
236            feature = "AVAssetTrackSegment",
237            feature = "block2",
238            feature = "objc2-core-media"
239        ))]
240        /// Loads the AVAssetTrackSegment from the segments array with a target timeRange that either contains the specified track time or is the closest to it among the target timeRanges of the track's segments.
241        ///
242        /// Parameter `trackTime`: The trackTime for which an AVAssetTrackSegment is requested.
243        ///
244        /// Parameter `completionHandler`: A block that is invoked when loading is complete, vending an AVAssetTrackSegment or an error.
245        ///
246        /// If the trackTime does not map to a sample presentation time (e.g. it's outside the track's timeRange), the segment closest in time to the specified trackTime is returned.
247        #[unsafe(method(loadSegmentForTrackTime:completionHandler:))]
248        #[unsafe(method_family = none)]
249        pub unsafe fn loadSegmentForTrackTime_completionHandler(
250            &self,
251            track_time: CMTime,
252            completion_handler: &block2::DynBlock<dyn Fn(*mut AVAssetTrackSegment, *mut NSError)>,
253        );
254
255        #[cfg(feature = "objc2-core-media")]
256        /// Maps the specified trackTime through the appropriate time mapping and returns the resulting sample presentation time.
257        ///
258        /// Parameter `trackTime`: The trackTime for which a sample presentation time is requested.
259        ///
260        /// Returns: A CMTime; will be invalid if the trackTime is out of range
261        #[deprecated = "Use loadSamplePresentationTimeForTrackTime:completionHandler: instead"]
262        #[unsafe(method(samplePresentationTimeForTrackTime:))]
263        #[unsafe(method_family = none)]
264        pub unsafe fn samplePresentationTimeForTrackTime(&self, track_time: CMTime) -> CMTime;
265
266        #[cfg(all(feature = "block2", feature = "objc2-core-media"))]
267        /// Maps the specified trackTime through the appropriate time mapping and loads the resulting sample presentation time.
268        ///
269        /// Parameter `trackTime`: The trackTime for which a sample presentation time is requested.
270        ///
271        /// Parameter `completionHandler`: A block that is invoked when loading is complete, vending a CMTime (which will be invalid if the trackTime is out of range) or an error.
272        #[unsafe(method(loadSamplePresentationTimeForTrackTime:completionHandler:))]
273        #[unsafe(method_family = none)]
274        pub unsafe fn loadSamplePresentationTimeForTrackTime_completionHandler(
275            &self,
276            track_time: CMTime,
277            completion_handler: &block2::DynBlock<dyn Fn(CMTime, *mut NSError)>,
278        );
279    );
280}
281
282/// AVAssetTrackMetadataReading.
283impl AVAssetTrack {
284    extern_methods!(
285        #[cfg(feature = "AVMetadataItem")]
286        #[unsafe(method(commonMetadata))]
287        #[unsafe(method_family = none)]
288        pub unsafe fn commonMetadata(&self) -> Retained<NSArray<AVMetadataItem>>;
289
290        #[cfg(feature = "AVMetadataItem")]
291        #[unsafe(method(metadata))]
292        #[unsafe(method_family = none)]
293        pub unsafe fn metadata(&self) -> Retained<NSArray<AVMetadataItem>>;
294
295        #[cfg(feature = "AVMetadataFormat")]
296        #[unsafe(method(availableMetadataFormats))]
297        #[unsafe(method_family = none)]
298        pub unsafe fn availableMetadataFormats(&self) -> Retained<NSArray<AVMetadataFormat>>;
299
300        #[cfg(all(feature = "AVMetadataFormat", feature = "AVMetadataItem"))]
301        /// Provides an NSArray of AVMetadataItems, one for each metadata item in the container of the specified format.
302        ///
303        /// Parameter `format`: The metadata format for which items are requested.
304        ///
305        /// Returns: An NSArray containing AVMetadataItems.
306        ///
307        /// Becomes callable without blocking when the key
308        /// "
309        /// availableMetadataFormats" has been loaded
310        #[deprecated = "Use loadMetadataForFormat:completionHandler: instead"]
311        #[unsafe(method(metadataForFormat:))]
312        #[unsafe(method_family = none)]
313        pub unsafe fn metadataForFormat(
314            &self,
315            format: &AVMetadataFormat,
316        ) -> Retained<NSArray<AVMetadataItem>>;
317
318        #[cfg(all(
319            feature = "AVMetadataFormat",
320            feature = "AVMetadataItem",
321            feature = "block2"
322        ))]
323        /// Loads an NSArray of AVMetadataItems, one for each metadata item in the container of the specified format.
324        ///
325        /// Parameter `format`: The metadata format for which items are requested.
326        ///
327        /// Parameter `completionHandler`: A block that is invoked when loading is complete, vending the array of metadata items (which may be empty if there is no metadata of the specified format) or an error.
328        #[unsafe(method(loadMetadataForFormat:completionHandler:))]
329        #[unsafe(method_family = none)]
330        pub unsafe fn loadMetadataForFormat_completionHandler(
331            &self,
332            format: &AVMetadataFormat,
333            completion_handler: &block2::DynBlock<
334                dyn Fn(*mut NSArray<AVMetadataItem>, *mut NSError),
335            >,
336        );
337    );
338}
339
340/// The type of a track association.
341///
342/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtype?language=objc)
343// NS_TYPED_ENUM
344pub type AVTrackAssociationType = NSString;
345
346extern "C" {
347    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeaudiofallback?language=objc)
348    pub static AVTrackAssociationTypeAudioFallback: &'static AVTrackAssociationType;
349}
350
351extern "C" {
352    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypechapterlist?language=objc)
353    pub static AVTrackAssociationTypeChapterList: &'static AVTrackAssociationType;
354}
355
356extern "C" {
357    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeforcedsubtitlesonly?language=objc)
358    pub static AVTrackAssociationTypeForcedSubtitlesOnly: &'static AVTrackAssociationType;
359}
360
361extern "C" {
362    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeselectionfollower?language=objc)
363    pub static AVTrackAssociationTypeSelectionFollower: &'static AVTrackAssociationType;
364}
365
366extern "C" {
367    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypetimecode?language=objc)
368    pub static AVTrackAssociationTypeTimecode: &'static AVTrackAssociationType;
369}
370
371extern "C" {
372    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypemetadatareferent?language=objc)
373    pub static AVTrackAssociationTypeMetadataReferent: &'static AVTrackAssociationType;
374}
375
376/// AVAssetTrackTrackAssociations.
377impl AVAssetTrack {
378    extern_methods!(
379        #[unsafe(method(availableTrackAssociationTypes))]
380        #[unsafe(method_family = none)]
381        pub unsafe fn availableTrackAssociationTypes(
382            &self,
383        ) -> Retained<NSArray<AVTrackAssociationType>>;
384
385        /// Provides an NSArray of AVAssetTracks, one for each track associated with the receiver with the specified type of track association.
386        ///
387        /// Parameter `trackAssociationType`: The type of track association for which associated tracks are requested.
388        ///
389        /// Returns: An NSArray containing AVAssetTracks; may be empty if there is no associated tracks of the specified type.
390        ///
391        /// Becomes callable without blocking when the key
392        /// "
393        /// availableTrackAssociationTypes" has been loaded.
394        #[deprecated = "Use loadAssociatedTracksOfType:completionHandler: instead"]
395        #[unsafe(method(associatedTracksOfType:))]
396        #[unsafe(method_family = none)]
397        pub unsafe fn associatedTracksOfType(
398            &self,
399            track_association_type: &AVTrackAssociationType,
400        ) -> Retained<NSArray<AVAssetTrack>>;
401
402        #[cfg(feature = "block2")]
403        /// Provides an NSArray of AVAssetTracks, one for each track associated with the receiver with the specified type of track association.
404        ///
405        /// Parameter `trackAssociationType`: The type of track association for which associated tracks are requested.
406        ///
407        /// Parameter `completionHandler`: A block that is invoked when loading is comlete, vending an array of tracks (which may be empty if there is no associated tracks of the specified type) or an error.
408        /// `
409        #[unsafe(method(loadAssociatedTracksOfType:completionHandler:))]
410        #[unsafe(method_family = none)]
411        pub unsafe fn loadAssociatedTracksOfType_completionHandler(
412            &self,
413            track_association_type: &AVTrackAssociationType,
414            completion_handler: &block2::DynBlock<dyn Fn(*mut NSArray<AVAssetTrack>, *mut NSError)>,
415        );
416    );
417}
418
419/// AVAssetTrackSampleCursorProvision.
420impl AVAssetTrack {
421    extern_methods!(
422        #[unsafe(method(canProvideSampleCursors))]
423        #[unsafe(method_family = none)]
424        pub unsafe fn canProvideSampleCursors(&self) -> bool;
425
426        #[cfg(all(feature = "AVSampleCursor", feature = "objc2-core-media"))]
427        /// Creates an instance of AVSampleCursor and positions it at or near the specified presentation timestamp.
428        ///
429        /// Parameter `presentationTimeStamp`: The desired initial presentation timestamp of the returned AVSampleCursor.
430        ///
431        /// Returns: An instance of AVSampleCursor.
432        ///
433        /// If the receiver's asset has a value of YES for providesPreciseDurationAndTiming, the sample cursor will be accurately positioned at the receiver's last media sample with presentation timestamp less than or equal to the desired timestamp, or, if there are no such samples, the first sample in presentation order.
434        /// If the receiver's asset has a value of NO for providesPreciseDurationAndTiming, and it is prohibitively expensive to locate the precise sample at the desired timestamp, the sample cursor may be approximately positioned.
435        /// This method will return nil if there are no samples in the track.
436        #[unsafe(method(makeSampleCursorWithPresentationTimeStamp:))]
437        #[unsafe(method_family = none)]
438        pub unsafe fn makeSampleCursorWithPresentationTimeStamp(
439            &self,
440            presentation_time_stamp: CMTime,
441        ) -> Option<Retained<AVSampleCursor>>;
442
443        #[cfg(feature = "AVSampleCursor")]
444        /// Creates an instance of AVSampleCursor and positions it at the receiver's first media sample in decode order.
445        ///
446        /// Returns: An instance of AVSampleCursor.
447        ///
448        /// This method will return nil if there are no samples in the track.
449        #[unsafe(method(makeSampleCursorAtFirstSampleInDecodeOrder))]
450        #[unsafe(method_family = none)]
451        pub unsafe fn makeSampleCursorAtFirstSampleInDecodeOrder(
452            &self,
453        ) -> Option<Retained<AVSampleCursor>>;
454
455        #[cfg(feature = "AVSampleCursor")]
456        /// Creates an instance of AVSampleCursor and positions it at the receiver's last media sample in decode order.
457        ///
458        /// Returns: An instance of AVSampleCursor.
459        ///
460        /// This method will return nil if there are no samples in the track.
461        #[unsafe(method(makeSampleCursorAtLastSampleInDecodeOrder))]
462        #[unsafe(method_family = none)]
463        pub unsafe fn makeSampleCursorAtLastSampleInDecodeOrder(
464            &self,
465        ) -> Option<Retained<AVSampleCursor>>;
466    );
467}
468
469extern "C" {
470    /// Posted when the timeRange of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of
471    /// "
472    /// timeRange" has reached AVKeyValueStatusLoaded.
473    ///
474    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracktimerangedidchangenotification?language=objc)
475    pub static AVAssetTrackTimeRangeDidChangeNotification: &'static NSString;
476}
477
478extern "C" {
479    /// Posted when the array of segments of an AVFragmentedAssetTrack changes while the associated instance of AVFragmentedAsset is being minded by an AVFragmentedAssetMinder, but only for changes that occur after the status of the value of
480    /// "
481    /// segments" has reached AVKeyValueStatusLoaded.
482    ///
483    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracksegmentsdidchangenotification?language=objc)
484    pub static AVAssetTrackSegmentsDidChangeNotification: &'static NSString;
485}
486
487extern "C" {
488    /// Posted when the collection of track associations of an AVAssetTrack changes, but only for changes that occur after the status of the value of
489    /// "
490    /// availableTrackAssociationTypes" has reached AVKeyValueStatusLoaded.
491    ///
492    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracktrackassociationsdidchangenotification?language=objc)
493    pub static AVAssetTrackTrackAssociationsDidChangeNotification: &'static NSString;
494}
495
496extern_class!(
497    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfragmentedassettrack?language=objc)
498    #[unsafe(super(AVAssetTrack, NSObject))]
499    #[derive(Debug, PartialEq, Eq, Hash)]
500    pub struct AVFragmentedAssetTrack;
501);
502
503unsafe impl Send for AVFragmentedAssetTrack {}
504
505unsafe impl Sync for AVFragmentedAssetTrack {}
506
507#[cfg(feature = "AVAsynchronousKeyValueLoading")]
508extern_conformance!(
509    unsafe impl AVAsynchronousKeyValueLoading for AVFragmentedAssetTrack {}
510);
511
512extern_conformance!(
513    unsafe impl NSCopying for AVFragmentedAssetTrack {}
514);
515
516unsafe impl CopyingHelper for AVFragmentedAssetTrack {
517    type Result = Self;
518}
519
520extern_conformance!(
521    unsafe impl NSObjectProtocol for AVFragmentedAssetTrack {}
522);
523
524impl AVFragmentedAssetTrack {
525    extern_methods!();
526}
527
528/// Methods declared on superclass `AVAssetTrack`.
529impl AVFragmentedAssetTrack {
530    extern_methods!(
531        #[unsafe(method(init))]
532        #[unsafe(method_family = init)]
533        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
534
535        #[unsafe(method(new))]
536        #[unsafe(method_family = new)]
537        pub unsafe fn new() -> Retained<Self>;
538    );
539}