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")]
43unsafe impl AVAsynchronousKeyValueLoading for AVAssetTrack {}
44
45unsafe impl NSCopying for AVAssetTrack {}
46
47unsafe impl CopyingHelper for AVAssetTrack {
48 type Result = Self;
49}
50
51unsafe impl NSObjectProtocol for AVAssetTrack {}
52
53impl AVAssetTrack {
54 extern_methods!(
55 #[unsafe(method(init))]
56 #[unsafe(method_family = init)]
57 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
58
59 #[unsafe(method(new))]
60 #[unsafe(method_family = new)]
61 pub unsafe fn new() -> Retained<Self>;
62
63 #[cfg(feature = "AVAsset")]
64 #[unsafe(method(asset))]
65 #[unsafe(method_family = none)]
66 pub unsafe fn asset(&self) -> Option<Retained<AVAsset>>;
67
68 #[cfg(feature = "objc2-core-media")]
69 #[unsafe(method(trackID))]
70 #[unsafe(method_family = none)]
71 pub unsafe fn trackID(&self) -> CMPersistentTrackID;
72 );
73}
74
75/// AVAssetTrackBasicPropertiesAndCharacteristics.
76impl AVAssetTrack {
77 extern_methods!(
78 #[cfg(feature = "AVMediaFormat")]
79 #[unsafe(method(mediaType))]
80 #[unsafe(method_family = none)]
81 pub unsafe fn mediaType(&self) -> Retained<AVMediaType>;
82
83 #[unsafe(method(formatDescriptions))]
84 #[unsafe(method_family = none)]
85 pub unsafe fn formatDescriptions(&self) -> Retained<NSArray>;
86
87 #[unsafe(method(isPlayable))]
88 #[unsafe(method_family = none)]
89 pub unsafe fn isPlayable(&self) -> bool;
90
91 #[unsafe(method(isDecodable))]
92 #[unsafe(method_family = none)]
93 pub unsafe fn isDecodable(&self) -> bool;
94
95 #[unsafe(method(isEnabled))]
96 #[unsafe(method_family = none)]
97 pub unsafe fn isEnabled(&self) -> bool;
98
99 #[unsafe(method(isSelfContained))]
100 #[unsafe(method_family = none)]
101 pub unsafe fn isSelfContained(&self) -> bool;
102
103 #[unsafe(method(totalSampleDataLength))]
104 #[unsafe(method_family = none)]
105 pub unsafe fn totalSampleDataLength(&self) -> c_longlong;
106
107 #[cfg(feature = "AVMediaFormat")]
108 /// Reports whether the track references media with the specified media characteristic.
109 ///
110 /// Parameter `mediaCharacteristic`: The media characteristic of interest, e.g. AVMediaCharacteristicVisual, AVMediaCharacteristicAudible, AVMediaCharacteristicLegible, etc.,
111 /// as defined above.
112 ///
113 /// Returns: YES if the track references media with the specified characteristic, otherwise NO.
114 #[unsafe(method(hasMediaCharacteristic:))]
115 #[unsafe(method_family = none)]
116 pub unsafe fn hasMediaCharacteristic(
117 &self,
118 media_characteristic: &AVMediaCharacteristic,
119 ) -> bool;
120 );
121}
122
123/// AVAssetTrackTemporalProperties.
124impl AVAssetTrack {
125 extern_methods!(
126 #[cfg(feature = "objc2-core-media")]
127 #[unsafe(method(timeRange))]
128 #[unsafe(method_family = none)]
129 pub unsafe fn timeRange(&self) -> CMTimeRange;
130
131 #[cfg(feature = "objc2-core-media")]
132 #[unsafe(method(naturalTimeScale))]
133 #[unsafe(method_family = none)]
134 pub unsafe fn naturalTimeScale(&self) -> CMTimeScale;
135
136 #[unsafe(method(estimatedDataRate))]
137 #[unsafe(method_family = none)]
138 pub unsafe fn estimatedDataRate(&self) -> c_float;
139 );
140}
141
142/// AVAssetTrackLanguageProperties.
143impl AVAssetTrack {
144 extern_methods!(
145 #[unsafe(method(languageCode))]
146 #[unsafe(method_family = none)]
147 pub unsafe fn languageCode(&self) -> Option<Retained<NSString>>;
148
149 #[unsafe(method(extendedLanguageTag))]
150 #[unsafe(method_family = none)]
151 pub unsafe fn extendedLanguageTag(&self) -> Option<Retained<NSString>>;
152 );
153}
154
155/// AVAssetTrackPropertiesForVisualCharacteristic.
156impl AVAssetTrack {
157 extern_methods!(
158 #[cfg(feature = "objc2-core-foundation")]
159 #[unsafe(method(naturalSize))]
160 #[unsafe(method_family = none)]
161 pub unsafe fn naturalSize(&self) -> CGSize;
162
163 #[cfg(feature = "objc2-core-foundation")]
164 #[unsafe(method(preferredTransform))]
165 #[unsafe(method_family = none)]
166 pub unsafe fn preferredTransform(&self) -> CGAffineTransform;
167 );
168}
169
170/// AVAssetTrackPropertiesForAudibleCharacteristic.
171impl AVAssetTrack {
172 extern_methods!(
173 #[unsafe(method(preferredVolume))]
174 #[unsafe(method_family = none)]
175 pub unsafe fn preferredVolume(&self) -> c_float;
176
177 #[unsafe(method(hasAudioSampleDependencies))]
178 #[unsafe(method_family = none)]
179 pub unsafe fn hasAudioSampleDependencies(&self) -> bool;
180 );
181}
182
183/// AVAssetTrackPropertiesForFrameBasedCharacteristic.
184impl AVAssetTrack {
185 extern_methods!(
186 /// For tracks that carry a full frame per media sample, indicates the frame rate of the track in units of frames per second.
187 ///
188 /// 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.
189 #[unsafe(method(nominalFrameRate))]
190 #[unsafe(method_family = none)]
191 pub unsafe fn nominalFrameRate(&self) -> c_float;
192
193 #[cfg(feature = "objc2-core-media")]
194 #[unsafe(method(minFrameDuration))]
195 #[unsafe(method_family = none)]
196 pub unsafe fn minFrameDuration(&self) -> CMTime;
197
198 /// Indicates whether samples in the track may have different values for their presentation and decode timestamps.
199 #[unsafe(method(requiresFrameReordering))]
200 #[unsafe(method_family = none)]
201 pub unsafe fn requiresFrameReordering(&self) -> bool;
202 );
203}
204
205/// AVAssetTrackSegments.
206impl AVAssetTrack {
207 extern_methods!(
208 #[cfg(feature = "AVAssetTrackSegment")]
209 #[unsafe(method(segments))]
210 #[unsafe(method_family = none)]
211 pub unsafe fn segments(&self) -> Retained<NSArray<AVAssetTrackSegment>>;
212
213 #[cfg(all(feature = "AVAssetTrackSegment", feature = "objc2-core-media"))]
214 /// 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.
215 ///
216 /// Parameter `trackTime`: The trackTime for which an AVAssetTrackSegment is requested.
217 ///
218 /// Returns: An AVAssetTrackSegment.
219 ///
220 /// 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.
221 #[deprecated = "Use loadSegmentForTrackTime:completionHandler: instead"]
222 #[unsafe(method(segmentForTrackTime:))]
223 #[unsafe(method_family = none)]
224 pub unsafe fn segmentForTrackTime(
225 &self,
226 track_time: CMTime,
227 ) -> Option<Retained<AVAssetTrackSegment>>;
228
229 #[cfg(all(
230 feature = "AVAssetTrackSegment",
231 feature = "block2",
232 feature = "objc2-core-media"
233 ))]
234 /// 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.
235 ///
236 /// Parameter `trackTime`: The trackTime for which an AVAssetTrackSegment is requested.
237 ///
238 /// Parameter `completionHandler`: A block that is invoked when loading is complete, vending an AVAssetTrackSegment or an error.
239 ///
240 /// 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.
241 #[unsafe(method(loadSegmentForTrackTime:completionHandler:))]
242 #[unsafe(method_family = none)]
243 pub unsafe fn loadSegmentForTrackTime_completionHandler(
244 &self,
245 track_time: CMTime,
246 completion_handler: &block2::Block<dyn Fn(*mut AVAssetTrackSegment, *mut NSError)>,
247 );
248
249 #[cfg(feature = "objc2-core-media")]
250 /// Maps the specified trackTime through the appropriate time mapping and returns the resulting sample presentation time.
251 ///
252 /// Parameter `trackTime`: The trackTime for which a sample presentation time is requested.
253 ///
254 /// Returns: A CMTime; will be invalid if the trackTime is out of range
255 #[deprecated = "Use loadSamplePresentationTimeForTrackTime:completionHandler: instead"]
256 #[unsafe(method(samplePresentationTimeForTrackTime:))]
257 #[unsafe(method_family = none)]
258 pub unsafe fn samplePresentationTimeForTrackTime(&self, track_time: CMTime) -> CMTime;
259
260 #[cfg(all(feature = "block2", feature = "objc2-core-media"))]
261 /// Maps the specified trackTime through the appropriate time mapping and loads the resulting sample presentation time.
262 ///
263 /// Parameter `trackTime`: The trackTime for which a sample presentation time is requested.
264 ///
265 /// 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.
266 #[unsafe(method(loadSamplePresentationTimeForTrackTime:completionHandler:))]
267 #[unsafe(method_family = none)]
268 pub unsafe fn loadSamplePresentationTimeForTrackTime_completionHandler(
269 &self,
270 track_time: CMTime,
271 completion_handler: &block2::Block<dyn Fn(CMTime, *mut NSError)>,
272 );
273 );
274}
275
276/// AVAssetTrackMetadataReading.
277impl AVAssetTrack {
278 extern_methods!(
279 #[cfg(feature = "AVMetadataItem")]
280 #[unsafe(method(commonMetadata))]
281 #[unsafe(method_family = none)]
282 pub unsafe fn commonMetadata(&self) -> Retained<NSArray<AVMetadataItem>>;
283
284 #[cfg(feature = "AVMetadataItem")]
285 #[unsafe(method(metadata))]
286 #[unsafe(method_family = none)]
287 pub unsafe fn metadata(&self) -> Retained<NSArray<AVMetadataItem>>;
288
289 #[cfg(feature = "AVMetadataFormat")]
290 #[unsafe(method(availableMetadataFormats))]
291 #[unsafe(method_family = none)]
292 pub unsafe fn availableMetadataFormats(&self) -> Retained<NSArray<AVMetadataFormat>>;
293
294 #[cfg(all(feature = "AVMetadataFormat", feature = "AVMetadataItem"))]
295 /// Provides an NSArray of AVMetadataItems, one for each metadata item in the container of the specified format.
296 ///
297 /// Parameter `format`: The metadata format for which items are requested.
298 ///
299 /// Returns: An NSArray containing AVMetadataItems.
300 ///
301 /// Becomes callable without blocking when the key
302 /// "
303 /// availableMetadataFormats" has been loaded
304 #[deprecated = "Use loadMetadataForFormat:completionHandler: instead"]
305 #[unsafe(method(metadataForFormat:))]
306 #[unsafe(method_family = none)]
307 pub unsafe fn metadataForFormat(
308 &self,
309 format: &AVMetadataFormat,
310 ) -> Retained<NSArray<AVMetadataItem>>;
311
312 #[cfg(all(
313 feature = "AVMetadataFormat",
314 feature = "AVMetadataItem",
315 feature = "block2"
316 ))]
317 /// Loads an NSArray of AVMetadataItems, one for each metadata item in the container of the specified format.
318 ///
319 /// Parameter `format`: The metadata format for which items are requested.
320 ///
321 /// 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.
322 #[unsafe(method(loadMetadataForFormat:completionHandler:))]
323 #[unsafe(method_family = none)]
324 pub unsafe fn loadMetadataForFormat_completionHandler(
325 &self,
326 format: &AVMetadataFormat,
327 completion_handler: &block2::Block<dyn Fn(*mut NSArray<AVMetadataItem>, *mut NSError)>,
328 );
329 );
330}
331
332/// The type of a track association.
333///
334/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtype?language=objc)
335// NS_TYPED_ENUM
336pub type AVTrackAssociationType = NSString;
337
338extern "C" {
339 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeaudiofallback?language=objc)
340 pub static AVTrackAssociationTypeAudioFallback: &'static AVTrackAssociationType;
341}
342
343extern "C" {
344 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypechapterlist?language=objc)
345 pub static AVTrackAssociationTypeChapterList: &'static AVTrackAssociationType;
346}
347
348extern "C" {
349 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeforcedsubtitlesonly?language=objc)
350 pub static AVTrackAssociationTypeForcedSubtitlesOnly: &'static AVTrackAssociationType;
351}
352
353extern "C" {
354 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypeselectionfollower?language=objc)
355 pub static AVTrackAssociationTypeSelectionFollower: &'static AVTrackAssociationType;
356}
357
358extern "C" {
359 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypetimecode?language=objc)
360 pub static AVTrackAssociationTypeTimecode: &'static AVTrackAssociationType;
361}
362
363extern "C" {
364 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avtrackassociationtypemetadatareferent?language=objc)
365 pub static AVTrackAssociationTypeMetadataReferent: &'static AVTrackAssociationType;
366}
367
368/// AVAssetTrackTrackAssociations.
369impl AVAssetTrack {
370 extern_methods!(
371 #[unsafe(method(availableTrackAssociationTypes))]
372 #[unsafe(method_family = none)]
373 pub unsafe fn availableTrackAssociationTypes(
374 &self,
375 ) -> Retained<NSArray<AVTrackAssociationType>>;
376
377 /// Provides an NSArray of AVAssetTracks, one for each track associated with the receiver with the specified type of track association.
378 ///
379 /// Parameter `trackAssociationType`: The type of track association for which associated tracks are requested.
380 ///
381 /// Returns: An NSArray containing AVAssetTracks; may be empty if there is no associated tracks of the specified type.
382 ///
383 /// Becomes callable without blocking when the key
384 /// "
385 /// availableTrackAssociationTypes" has been loaded.
386 #[deprecated = "Use loadAssociatedTracksOfType:completionHandler: instead"]
387 #[unsafe(method(associatedTracksOfType:))]
388 #[unsafe(method_family = none)]
389 pub unsafe fn associatedTracksOfType(
390 &self,
391 track_association_type: &AVTrackAssociationType,
392 ) -> Retained<NSArray<AVAssetTrack>>;
393
394 #[cfg(feature = "block2")]
395 /// Provides an NSArray of AVAssetTracks, one for each track associated with the receiver with the specified type of track association.
396 ///
397 /// Parameter `trackAssociationType`: The type of track association for which associated tracks are requested.
398 ///
399 /// 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.
400 /// `
401 #[unsafe(method(loadAssociatedTracksOfType:completionHandler:))]
402 #[unsafe(method_family = none)]
403 pub unsafe fn loadAssociatedTracksOfType_completionHandler(
404 &self,
405 track_association_type: &AVTrackAssociationType,
406 completion_handler: &block2::Block<dyn Fn(*mut NSArray<AVAssetTrack>, *mut NSError)>,
407 );
408 );
409}
410
411/// AVAssetTrackSampleCursorProvision.
412impl AVAssetTrack {
413 extern_methods!(
414 #[unsafe(method(canProvideSampleCursors))]
415 #[unsafe(method_family = none)]
416 pub unsafe fn canProvideSampleCursors(&self) -> bool;
417
418 #[cfg(all(feature = "AVSampleCursor", feature = "objc2-core-media"))]
419 /// Creates an instance of AVSampleCursor and positions it at or near the specified presentation timestamp.
420 ///
421 /// Parameter `presentationTimeStamp`: The desired initial presentation timestamp of the returned AVSampleCursor.
422 ///
423 /// Returns: An instance of AVSampleCursor.
424 ///
425 /// 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.
426 /// 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.
427 /// This method will return nil if there are no samples in the track.
428 #[unsafe(method(makeSampleCursorWithPresentationTimeStamp:))]
429 #[unsafe(method_family = none)]
430 pub unsafe fn makeSampleCursorWithPresentationTimeStamp(
431 &self,
432 presentation_time_stamp: CMTime,
433 ) -> Option<Retained<AVSampleCursor>>;
434
435 #[cfg(feature = "AVSampleCursor")]
436 /// Creates an instance of AVSampleCursor and positions it at the receiver's first media sample in decode order.
437 ///
438 /// Returns: An instance of AVSampleCursor.
439 ///
440 /// This method will return nil if there are no samples in the track.
441 #[unsafe(method(makeSampleCursorAtFirstSampleInDecodeOrder))]
442 #[unsafe(method_family = none)]
443 pub unsafe fn makeSampleCursorAtFirstSampleInDecodeOrder(
444 &self,
445 ) -> Option<Retained<AVSampleCursor>>;
446
447 #[cfg(feature = "AVSampleCursor")]
448 /// Creates an instance of AVSampleCursor and positions it at the receiver's last media sample in decode order.
449 ///
450 /// Returns: An instance of AVSampleCursor.
451 ///
452 /// This method will return nil if there are no samples in the track.
453 #[unsafe(method(makeSampleCursorAtLastSampleInDecodeOrder))]
454 #[unsafe(method_family = none)]
455 pub unsafe fn makeSampleCursorAtLastSampleInDecodeOrder(
456 &self,
457 ) -> Option<Retained<AVSampleCursor>>;
458 );
459}
460
461extern "C" {
462 /// 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
463 /// "
464 /// timeRange" has reached AVKeyValueStatusLoaded.
465 ///
466 /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracktimerangedidchangenotification?language=objc)
467 pub static AVAssetTrackTimeRangeDidChangeNotification: &'static NSString;
468}
469
470extern "C" {
471 /// 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
472 /// "
473 /// segments" has reached AVKeyValueStatusLoaded.
474 ///
475 /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracksegmentsdidchangenotification?language=objc)
476 pub static AVAssetTrackSegmentsDidChangeNotification: &'static NSString;
477}
478
479extern "C" {
480 /// Posted when the collection of track associations of an AVAssetTrack changes, but only for changes that occur after the status of the value of
481 /// "
482 /// availableTrackAssociationTypes" has reached AVKeyValueStatusLoaded.
483 ///
484 /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avassettracktrackassociationsdidchangenotification?language=objc)
485 pub static AVAssetTrackTrackAssociationsDidChangeNotification: &'static NSString;
486}
487
488extern_class!(
489 /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfragmentedassettrack?language=objc)
490 #[unsafe(super(AVAssetTrack, NSObject))]
491 #[derive(Debug, PartialEq, Eq, Hash)]
492 pub struct AVFragmentedAssetTrack;
493);
494
495unsafe impl Send for AVFragmentedAssetTrack {}
496
497unsafe impl Sync for AVFragmentedAssetTrack {}
498
499#[cfg(feature = "AVAsynchronousKeyValueLoading")]
500unsafe impl AVAsynchronousKeyValueLoading for AVFragmentedAssetTrack {}
501
502unsafe impl NSCopying for AVFragmentedAssetTrack {}
503
504unsafe impl CopyingHelper for AVFragmentedAssetTrack {
505 type Result = Self;
506}
507
508unsafe impl NSObjectProtocol for AVFragmentedAssetTrack {}
509
510impl AVFragmentedAssetTrack {
511 extern_methods!();
512}
513
514/// Methods declared on superclass `AVAssetTrack`.
515impl AVFragmentedAssetTrack {
516 extern_methods!(
517 #[unsafe(method(init))]
518 #[unsafe(method_family = init)]
519 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
520
521 #[unsafe(method(new))]
522 #[unsafe(method_family = new)]
523 pub unsafe fn new() -> Retained<Self>;
524 );
525}