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}