objc2_av_foundation/generated/
AVMediaFormat.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use objc2_foundation::*;
4
5use crate::*;
6
7/// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatype?language=objc)
8// NS_TYPED_EXTENSIBLE_ENUM
9pub type AVMediaType = NSString;
10
11extern "C" {
12    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypevideo?language=objc)
13    pub static AVMediaTypeVideo: Option<&'static AVMediaType>;
14}
15
16extern "C" {
17    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypeaudio?language=objc)
18    pub static AVMediaTypeAudio: Option<&'static AVMediaType>;
19}
20
21extern "C" {
22    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypetext?language=objc)
23    pub static AVMediaTypeText: Option<&'static AVMediaType>;
24}
25
26extern "C" {
27    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypeclosedcaption?language=objc)
28    pub static AVMediaTypeClosedCaption: Option<&'static AVMediaType>;
29}
30
31extern "C" {
32    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypesubtitle?language=objc)
33    pub static AVMediaTypeSubtitle: Option<&'static AVMediaType>;
34}
35
36extern "C" {
37    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypetimecode?language=objc)
38    pub static AVMediaTypeTimecode: Option<&'static AVMediaType>;
39}
40
41extern "C" {
42    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypemetadata?language=objc)
43    pub static AVMediaTypeMetadata: Option<&'static AVMediaType>;
44}
45
46extern "C" {
47    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypemuxed?language=objc)
48    pub static AVMediaTypeMuxed: Option<&'static AVMediaType>;
49}
50
51extern "C" {
52    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypehaptic?language=objc)
53    pub static AVMediaTypeHaptic: Option<&'static AVMediaType>;
54}
55
56/// Indicates that the video range as SDR
57///
58/// Indicates that the video range as HLG
59///
60/// Indicates that the video range as PQ
61///
62/// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avvideorange?language=objc)
63// NS_TYPED_ENUM
64pub type AVVideoRange = NSString;
65
66extern "C" {
67    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avvideorangesdr?language=objc)
68    pub static AVVideoRangeSDR: Option<&'static AVVideoRange>;
69}
70
71extern "C" {
72    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avvideorangehlg?language=objc)
73    pub static AVVideoRangeHLG: Option<&'static AVVideoRange>;
74}
75
76extern "C" {
77    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avvideorangepq?language=objc)
78    pub static AVVideoRangePQ: Option<&'static AVVideoRange>;
79}
80
81extern "C" {
82    /// mediaType of AVCaptureInputPorts that provide AVMetadataObjects.
83    ///
84    /// Prior to iOS 9.0, camera AVCaptureDeviceInputs provide metadata (detected faces and barcodes) to an
85    /// AVCaptureMetadataOutput through an AVCaptureInputPort whose mediaType is AVMediaTypeMetadata.  The
86    /// AVCaptureMetadataOutput presents metadata to the client as an array of AVMetadataObjects, which are
87    /// defined by Apple and not externally subclassable.  Starting in iOS 9.0, clients may record arbitrary
88    /// metadata to a movie file using the AVCaptureMovieFileOutput.  The movie file output consumes metadata
89    /// in a different format than the AVCaptureMetadataOutput, namely it accepts CMSampleBuffers of type
90    /// 'meta'.  Starting in iOS 9.0, two types of AVCaptureInput can produce suitable metadata for the
91    /// movie file output.
92    ///
93    /// <ul>
94    /// <li>
95    /// The camera AVCaptureDeviceInput now presents an additional AVCaptureInputPort for recording detected
96    /// faces to a movie file. When linked on or after iOS 9, ports that deliver AVCaptureMetadataObjects have a
97    /// mediaType of AVMediaTypeMetadataObject rather than AVMediaTypeMetadata.  Input ports that deliver CMSampleBuffer
98    /// metadata have a mediaType of AVMediaTypeMetadata.
99    /// </li>
100    ///
101    /// <li>
102    /// New to iOS 9 is the AVCaptureMetadataInput, which allows clients to record arbitrary metadata to a movie
103    /// file.  Clients package metadata as an AVTimedMetadataGroup, the AVCaptureMetadataInput presents a port of mediaType
104    /// AVMediaTypeMetadata, and when connected to a movie file output, transforms the timed metadata group's AVMetadataItems
105    /// into CMSampleBuffers which can be written to the movie file.
106    /// </li>
107    /// </ul>
108    ///
109    /// When linked on or after iOS 9, AVCaptureInputPorts with a mediaType of AVMediaTypeMetadata are handled
110    /// specially by the AVCaptureSession. When inputs and outputs are added to the session, the session does
111    /// not form connections implicitly between eligible AVCaptureOutputs and input ports of type AVMediaTypeMetadata.
112    /// If clients want to record a particular kind of metadata to a movie, they must manually form connections
113    /// between a AVMediaTypeMetadata port and the movie file output using AVCaptureSession's -addConnection API.
114    ///
115    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypemetadataobject?language=objc)
116    pub static AVMediaTypeMetadataObject: Option<&'static AVMediaType>;
117}
118
119extern "C" {
120    /// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypedepthdata?language=objc)
121    pub static AVMediaTypeDepthData: Option<&'static AVMediaType>;
122}
123
124extern "C" {
125    /// This media type is used only to identify the track type. An Auxiliary Picture track is not intended to be displayed; as such, the track_in_movie flag in TrackHeaderBox of these tracks will be 0.
126    /// A track with this media type contain video samples the media type of the format description of which is AVMediaTypeVideo.
127    ///
128    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediatypeauxiliarypicture?language=objc)
129    pub static AVMediaTypeAuxiliaryPicture: Option<&'static AVMediaType>;
130}
131
132/// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristic?language=objc)
133// NS_TYPED_EXTENSIBLE_ENUM
134pub type AVMediaCharacteristic = NSString;
135
136extern "C" {
137    /// A media characteristic that indicates that a track or media selection option includes visual content.
138    ///
139    /// AVMediaTypeVideo, AVMediaTypeSubtitle, AVMediaTypeClosedCaption are examples of media types with the characteristic AVMediaCharacteristicVisual.
140    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
141    ///
142    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicvisual?language=objc)
143    pub static AVMediaCharacteristicVisual: Option<&'static AVMediaCharacteristic>;
144}
145
146extern "C" {
147    /// A media characteristic that indicates that a track or media selection option includes audible content.
148    ///
149    /// AVMediaTypeAudio is a media type with the characteristic AVMediaCharacteristicAudible.
150    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
151    ///
152    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicaudible?language=objc)
153    pub static AVMediaCharacteristicAudible: Option<&'static AVMediaCharacteristic>;
154}
155
156extern "C" {
157    /// A media characteristic that indicates that a track or media selection option includes legible content.
158    ///
159    /// AVMediaTypeSubtitle and AVMediaTypeClosedCaption are examples of media types with the characteristic AVMediaCharacteristicLegible.
160    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
161    ///
162    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiclegible?language=objc)
163    pub static AVMediaCharacteristicLegible: Option<&'static AVMediaCharacteristic>;
164}
165
166extern "C" {
167    /// A media characteristic that indicates that a track or media selection option includes content that's frame-based.
168    ///
169    /// Frame-based content typically comprises discrete media samples that, once rendered, can remain current for indefinite periods of time without additional processing in support of "time-stretching". Further, any dependencies between samples are always explicitly signalled, so that the operations required to render any single sample can readily be performed on demand. AVMediaTypeVideo is the most common type of frame-based media. AVMediaTypeAudio is the most common counterexample.
170    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
171    ///
172    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicframebased?language=objc)
173    pub static AVMediaCharacteristicFrameBased: Option<&'static AVMediaCharacteristic>;
174}
175
176extern "C" {
177    /// A media characteristic that indicates that a track uses a wide gamut color space and therefore may make use of colors that cannot be accurately represented otherwise.
178    ///
179    /// A wide color space such as AVVideo*_P3_D65 contains additional dynamic range that may benefit from special treatment when compositing. Care should be taken to avoid clamping. Non-wide spaces include AVVideo*_ITU_R_709_2 and AVVideo*_SMPTE_C.
180    ///
181    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicuseswidegamutcolorspace?language=objc)
182    pub static AVMediaCharacteristicUsesWideGamutColorSpace: Option<&'static AVMediaCharacteristic>;
183}
184
185extern "C" {
186    /// A media characteristic that indicates that a track contains HDR video.
187    ///
188    /// HDR video contains extended dynamic range that requires explicit support when compositing.
189    /// The value of this characteristic is
190    /// @
191    /// “public.contains-hdr-video".
192    /// Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
193    ///
194    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiccontainshdrvideo?language=objc)
195    pub static AVMediaCharacteristicContainsHDRVideo: Option<&'static AVMediaCharacteristic>;
196}
197
198extern "C" {
199    /// A media characteristic that indicates that a track contains an alpha channel.
200    ///
201    /// To determine whether alpha is straight or pre-multiplied, look for the format description extension with key kCMFormatDescriptionExtension_AlphaChannelMode.
202    ///
203    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiccontainsalphachannel?language=objc)
204    pub static AVMediaCharacteristicContainsAlphaChannel: Option<&'static AVMediaCharacteristic>;
205}
206
207extern "C" {
208    /// A media characteristic that indicates that a track or media selection option includes content that's marked by the content author as intrinsic to the presentation of the asset.
209    ///
210    /// Example: an option that presents the main program audio for the presentation, regardless of locale, would typically have this characteristic.
211    /// The value of this characteristic is
212    /// "
213    /// public.main-program-content".
214    /// Note for content authors: the presence of this characteristic for a media option is inferred; any option that does not have the characteristic AVMediaCharacteristicIsAuxiliaryContent is considered to have the characteristic AVMediaCharacteristicIsMainProgramContent.
215    ///
216    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
217    ///
218    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicismainprogramcontent?language=objc)
219    pub static AVMediaCharacteristicIsMainProgramContent: Option<&'static AVMediaCharacteristic>;
220}
221
222extern "C" {
223    /// A media characteristic that indicates that a track or media selection option includes content that's marked by the content author as auxiliary to the presentation of the asset.
224    ///
225    /// The value of this characteristic is
226    /// "
227    /// public.auxiliary-content".
228    /// Example: an option that presents audio media containing commentary on the presentation would typically have this characteristic.
229    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicIsAuxiliaryContent if it's explicitly tagged with that characteristic or if, as a member of an alternate track group, its associated track is excluded from autoselection.
230    /// See the discussion of the tagging of tracks with media characteristics below.
231    ///
232    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
233    ///
234    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicisauxiliarycontent?language=objc)
235    pub static AVMediaCharacteristicIsAuxiliaryContent: Option<&'static AVMediaCharacteristic>;
236}
237
238extern "C" {
239    /// A media characteristic that indicates that a track or media selection option includes content that's marked by the content author as original to the principal production of the media, as opposed to supplementary or derivative content created by means of language translation or by other means.
240    ///
241    /// The value of this characteristic is
242    /// "
243    /// public.original-content".
244    /// Example: an option that presents audio media with dialog in the principal language of the production may be tagged with this characteristic; audio media containing dialog dubbed in a language other than the principal language of the production typically would not be tagged with this characteristic.
245    /// Note for content authors: for QuickTime movie and .m4v files and for HTTP Live Streaming, a media option is considered to have the characteristic AVMediaCharacteristicIsOriginalContent only if it's explicitly tagged with the characteristic.
246    /// See the discussion of the tagging of tracks with media characteristics below.
247    ///
248    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
249    ///
250    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicisoriginalcontent?language=objc)
251    pub static AVMediaCharacteristicIsOriginalContent: Option<&'static AVMediaCharacteristic>;
252}
253
254extern "C" {
255    /// A media characteristic that indicates that a track or media selection option presents only forced subtitles.
256    ///
257    /// Media options with forced-only subtitles are typically selected when 1) the user has not selected a legible option with an accessibility characteristic or an auxiliary purpose and 2) its locale matches the locale of the selected audible media selection option.
258    /// The value of this characteristic is
259    /// "
260    /// public.subtitles.forced-only".
261    /// Note for content authors: the presence of this characteristic for a legible media option may be inferred from the format description of the associated track that presents the subtitle media, if the format description carries sufficient information to indicate the presence or absence of forced and non-forced subtitles. If the format description does not carry this information, the legible media option can be explicitly tagged with the characteristic.
262    ///
263    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
264    ///
265    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiccontainsonlyforcedsubtitles?language=objc)
266    pub static AVMediaCharacteristicContainsOnlyForcedSubtitles:
267        Option<&'static AVMediaCharacteristic>;
268}
269
270extern "C" {
271    /// A media characteristic that indicates that a track or media selection option includes legible content in the language of its specified locale that:
272    /// - transcribes spoken dialog and
273    /// - identifies speakers whenever other visual cues are insufficient for a viewer to determine who is speaking.
274    ///
275    /// Legible tracks provided for accessibility purposes are typically tagged both with this characteristic as well as with AVMediaCharacteristicDescribesMusicAndSoundForAccessibility.
276    ///
277    /// A legible track provided for accessibility purposes that's associated with an audio track that has no spoken dialog can be tagged with this characteristic, because it trivially meets these requirements.
278    ///
279    /// The value of this characteristic is
280    /// "
281    /// public.accessibility.transcribes-spoken-dialog".
282    ///
283    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicTranscribesSpokenDialogForAccessibility only if it's explicitly tagged with that characteristic.
284    /// See the discussion of the tagging of tracks with media characteristics below.
285    ///
286    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
287    ///
288    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristictranscribesspokendialogforaccessibility?language=objc)
289    pub static AVMediaCharacteristicTranscribesSpokenDialogForAccessibility:
290        Option<&'static AVMediaCharacteristic>;
291}
292
293extern "C" {
294    /// A media characteristic that indicates that a track or media selection option includes legible content in the language of its specified locale that:
295    /// - describes music and
296    /// - describes sound other than spoken dialog, such as sound effects and significant silences, occurring in program audio.
297    ///
298    /// Legible tracks provided for accessibility purposes are typically tagged both with this characteristic as well as with AVMediaCharacteristicTranscribesSpokenDialogForAccessibility.
299    ///
300    /// A legible track provided for accessibility purposes that's associated with an audio track without music and without sound other than spoken dialog -- lacking even significant silences -- can be tagged with this characteristic, because it trivially meets these requirements.
301    ///
302    /// The value of this characteristic is
303    /// "
304    /// public.accessibility.describes-music-and-sound".
305    ///
306    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicDescribesMusicAndSoundForAccessibility only if it's explicitly tagged with that characteristic.
307    /// See the discussion of the tagging of tracks with media characteristics below.
308    ///
309    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
310    ///
311    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicdescribesmusicandsoundforaccessibility?language=objc)
312    pub static AVMediaCharacteristicDescribesMusicAndSoundForAccessibility:
313        Option<&'static AVMediaCharacteristic>;
314}
315
316extern "C" {
317    /// A media characteristic that indicates that a track or media selection option includes audio that has been prepared or otherwise processed to heighten the intelligibility of speech.
318    ///
319    /// The value of this characteristic is
320    /// "
321    /// public.accessibility.enhances-speech-intelligibility".
322    ///
323    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicEnhancesSpeechIntelligibility only if it's explicitly tagged with that characteristic.
324    /// See the discussion of the tagging of tracks with media characteristics below.
325    ///
326    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
327    ///
328    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicenhancesspeechintelligibility?language=objc)
329    pub static AVMediaCharacteristicEnhancesSpeechIntelligibility:
330        Option<&'static AVMediaCharacteristic>;
331}
332
333extern "C" {
334    /// A media characteristic that indicates that a track or media selection option provides legible content in the language of its specified locale that has been edited for ease of reading.
335    ///
336    /// The value of this characteristic is
337    /// "
338    /// public.easy-to-read".
339    ///
340    /// Closed caption tracks that carry "easy reader" captions (per the CEA-608 specification) should be tagged with this characteristic. Subtitle tracks can also be tagged with this characteristic, where appropriate.
341    ///
342    /// Note for content authors: for QuickTime movie and .m4v files a track is considered to have the characteristic AVMediaCharacteristicEasyToRead only if it's explicitly tagged with that characteristic.
343    /// See the discussion of the tagging of tracks with media characteristics below.
344    ///
345    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
346    ///
347    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiceasytoread?language=objc)
348    pub static AVMediaCharacteristicEasyToRead: Option<&'static AVMediaCharacteristic>;
349}
350
351extern "C" {
352    /// A media characteristic that indicates that a track or media selection option provides descriptions of the visual portion of the presentation that are sufficient to comprehend essential information that it depicts, such as action and setting.
353    ///
354    /// See -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
355    /// The value of this characteristic is
356    /// "
357    /// public.accessibility.describes-video".
358    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicDescribesVideoForAccessibility only if it's explicitly tagged with that characteristic.
359    /// See the discussion of the tagging of tracks with media characteristics below.
360    ///
361    /// Also see -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
362    ///
363    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicdescribesvideoforaccessibility?language=objc)
364    pub static AVMediaCharacteristicDescribesVideoForAccessibility:
365        Option<&'static AVMediaCharacteristic>;
366}
367
368extern "C" {
369    /// A media characteristic that indicates that a track or media selection option contains a language or dialect translation of originally or previously produced content, intended to be used as a substitute for that content by users who prefer its designated language.
370    ///
371    /// See -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
372    /// The value of this characteristic is
373    /// "
374    /// public.translation".
375    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicLanguageTranslation only if it's explicitly tagged with that characteristic.
376    /// See the discussion of the tagging of tracks with media characteristics below.
377    ///
378    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiclanguagetranslation?language=objc)
379    pub static AVMediaCharacteristicLanguageTranslation: Option<&'static AVMediaCharacteristic>;
380}
381
382extern "C" {
383    /// A media characteristic that indicates that a track or media selection option contains a language or dialect translation of originally or previously produced content, created by substituting most or all of the dialog in a previous mix of audio content with dialog spoken in its designated language.
384    ///
385    /// Tracks to which this characteristic is assigned should typically also be assigned the characteristic AVMediaCharacteristicLanguageTranslation.
386    /// See -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
387    /// The value of this characteristic is
388    /// "
389    /// public.translation.dubbed".
390    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicDubbedTranslation only if it's explicitly tagged with that characteristic.
391    /// See the discussion of the tagging of tracks with media characteristics below.
392    ///
393    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicdubbedtranslation?language=objc)
394    pub static AVMediaCharacteristicDubbedTranslation: Option<&'static AVMediaCharacteristic>;
395}
396
397extern "C" {
398    /// A media characteristic that indicates that a track or media selection option contains a language translation of originally or previously produced content, created by adding, in its designated language, a verbal interpretation of dialog and translations of other important information to a new mix of the audio content.
399    ///
400    /// Tracks to which this characteristic is assigned should typically also be assigned the characteristic AVMediaCharacteristicLanguageTranslation.
401    /// See -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
402    /// The value of this characteristic is
403    /// "
404    /// public.translation.voice-over".
405    /// Note for content authors: for QuickTime movie and .m4v files a media option is considered to have the characteristic AVMediaCharacteristicVoiceOverTranslation only if it's explicitly tagged with that characteristic.
406    /// See the discussion of the tagging of tracks with media characteristics below.
407    ///
408    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicvoiceovertranslation?language=objc)
409    pub static AVMediaCharacteristicVoiceOverTranslation: Option<&'static AVMediaCharacteristic>;
410}
411
412extern "C" {
413    /// A media characteristic that indicates that a track or media selection option includes haptic content that's marked by the content author as providing minimal tactile stimulation.
414    ///
415    /// Example: an option that presents low strength haptics feedback when user is actively attending the device, would typically have this characteristic.
416    /// See -[AVAssetTrack hasMediaCharacteristic:] and -[AVMediaSelectionOption hasMediaCharacteristic:].
417    /// The value of this characteristic is
418    /// "
419    /// public.haptics.minimal".
420    /// Note for content authors: for QuickTime movie and MPEG-4 files a track is considered to have the characteristic AVMediaCharacteristicTactileMinimal only if it's explicitly tagged with that characteristic.
421    /// See the discussion of the tagging of tracks with media characteristics below.
422    ///
423    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristictactileminimal?language=objc)
424    pub static AVMediaCharacteristicTactileMinimal: Option<&'static AVMediaCharacteristic>;
425}
426
427extern "C" {
428    /// A media characteristic that indicates that a track contains stereoscopic video captured in a multiview compression format.
429    ///
430    /// Stereoscopic video contains two views with one view for the left eye and one view for the right eye. Multiview video contains more than one view (not necessarily stereoscopic) in the same compressed video sample. The combination of stereoscopic and multiview indicates that multiview carriage is used to carry at least two stereoscopic views. It does not imply that there might not be more than two views. Access to the two stereo views may require opt-in to retrieve both views. Accessing only one of the left or right stereoscopic views as a fallback for playback or compositing where stereoscopic rendering is not supported may itself not be supported.
431    /// The value of this characteristic is
432    /// @
433    /// “public.contains-stereo-multiview-video".
434    /// Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
435    ///
436    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiccontainsstereomultiviewvideo?language=objc)
437    pub static AVMediaCharacteristicContainsStereoMultiviewVideo:
438        Option<&'static AVMediaCharacteristic>;
439}
440
441extern "C" {
442    /// A media characteristic that indicates that the stereoscopic video track carries additional information related to the stereoscopic video.
443    ///
444    /// This is not an indication that the encoded video carries stereoscopic views. It instead indicates that it carries additional information that may influence the interpretation of those views and contribute to a better experience.
445    /// The value of this characteristic is
446    /// @
447    /// “com.apple.quicktime.video.stereo-metadata".
448    /// Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
449    ///
450    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristiccarriesvideostereometadata?language=objc)
451    pub static AVMediaCharacteristicCarriesVideoStereoMetadata:
452        Option<&'static AVMediaCharacteristic>;
453}
454
455extern "C" {
456    /// A media characteristic that indicates the video track carries information related to the horizontal field of view.
457    ///
458    /// This media characteristic is currently synthesized if the CMVideoFormatDescription includes a kCMFormatDescriptionExtension_HorizontalFieldOfView extension. This is not an indication that the field of view is expanded beyond or more narrow than typical horizontal fields of view.
459    /// The value of this characteristic is
460    /// @
461    /// “public.indicates-horizontal-field-of-view".
462    /// Note for content authors: the presence of this characteristic is strictly inferred from the format description of the associated track.
463    ///
464    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avmediacharacteristicindicateshorizontalfieldofview?language=objc)
465    pub static AVMediaCharacteristicIndicatesHorizontalFieldOfView:
466        Option<&'static AVMediaCharacteristic>;
467}
468
469/// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletype?language=objc)
470// NS_TYPED_EXTENSIBLE_ENUM
471pub type AVFileType = NSString;
472
473extern "C" {
474    /// A UTI for the QuickTime movie file format.
475    ///
476    /// The value of this UTI is
477    /// "
478    /// com.apple.quicktime-movie".
479    /// Files are identified with the .mov and .qt extensions.
480    ///
481    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypequicktimemovie?language=objc)
482    pub static AVFileTypeQuickTimeMovie: Option<&'static AVFileType>;
483}
484
485extern "C" {
486    /// A UTI for the MPEG-4 file format.
487    ///
488    /// The value of this UTI is
489    /// "
490    /// public.mpeg-4".
491    /// Files are identified with the .mp4 extension.
492    ///
493    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypempeg4?language=objc)
494    pub static AVFileTypeMPEG4: Option<&'static AVFileType>;
495}
496
497extern "C" {
498    /// The value of this UTI is
499    /// "
500    /// com.apple.m4v-video".
501    /// Files are identified with the .m4v extension.
502    ///
503    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeapplem4v?language=objc)
504    pub static AVFileTypeAppleM4V: Option<&'static AVFileType>;
505}
506
507extern "C" {
508    /// The value of this UTI is
509    /// "
510    /// com.apple.m4a-audio".
511    /// Files are identified with the .m4a extension.
512    ///
513    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeapplem4a?language=objc)
514    pub static AVFileTypeAppleM4A: Option<&'static AVFileType>;
515}
516
517extern "C" {
518    /// A UTI for the 3GPP file format.
519    ///
520    /// The value of this UTI is
521    /// "
522    /// public.3gpp".
523    /// Files are identified with the .3gp, .3gpp, and .sdv extensions.
524    ///
525    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletype3gpp?language=objc)
526    pub static AVFileType3GPP: Option<&'static AVFileType>;
527}
528
529extern "C" {
530    /// A UTI for the 3GPP file format.
531    ///
532    /// The value of this UTI is
533    /// "
534    /// public.3gpp2".
535    /// Files are identified with the .3g2, .3gp2 extensions.
536    ///
537    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletype3gpp2?language=objc)
538    pub static AVFileType3GPP2: Option<&'static AVFileType>;
539}
540
541extern "C" {
542    /// A UTI for the CoreAudio file format.
543    ///
544    /// The value of this UTI is
545    /// "
546    /// com.apple.coreaudio-format".
547    /// Files are identified with the .caf extension.
548    ///
549    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypecoreaudioformat?language=objc)
550    pub static AVFileTypeCoreAudioFormat: Option<&'static AVFileType>;
551}
552
553extern "C" {
554    /// A UTI for the WAVE audio file format.
555    ///
556    /// The value of this UTI is
557    /// "
558    /// com.microsoft.waveform-audio".
559    /// Files are identified with the .wav, .wave, and .bwf extensions.
560    ///
561    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypewave?language=objc)
562    pub static AVFileTypeWAVE: Option<&'static AVFileType>;
563}
564
565extern "C" {
566    /// A UTI for the AIFF audio file format.
567    ///
568    /// The value of this UTI is
569    /// "
570    /// public.aiff-audio".
571    /// Files are identified with the .aif and .aiff extensions.
572    ///
573    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeaiff?language=objc)
574    pub static AVFileTypeAIFF: Option<&'static AVFileType>;
575}
576
577extern "C" {
578    /// A UTI for the AIFC audio file format.
579    ///
580    /// The value of this UTI is
581    /// "
582    /// public.aifc-audio".
583    /// Files are identified with the .aifc and .cdda extensions.
584    ///
585    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeaifc?language=objc)
586    pub static AVFileTypeAIFC: Option<&'static AVFileType>;
587}
588
589extern "C" {
590    /// A UTI for the adaptive multi-rate audio file format.
591    ///
592    /// The value of this UTI is
593    /// "
594    /// org.3gpp.adaptive-multi-rate-audio".
595    /// Files are identified with the .amr extension.
596    ///
597    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeamr?language=objc)
598    pub static AVFileTypeAMR: Option<&'static AVFileType>;
599}
600
601extern "C" {
602    /// A UTI for the MPEG layer 3 audio file format.
603    ///
604    /// The value of this UTI is
605    /// "
606    /// public.mp3".
607    /// Files are identified with the .mp3 extension.
608    ///
609    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypempeglayer3?language=objc)
610    pub static AVFileTypeMPEGLayer3: Option<&'static AVFileType>;
611}
612
613extern "C" {
614    /// A UTI for the Sun/NeXT audio file format.
615    ///
616    /// The value of this UTI is
617    /// "
618    /// public.au-audio".
619    /// Files are identified with the .au and .snd extensions.
620    ///
621    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypesunau?language=objc)
622    pub static AVFileTypeSunAU: Option<&'static AVFileType>;
623}
624
625extern "C" {
626    /// A UTI for the AC-3 audio file format.
627    ///
628    /// The value of this UTI is
629    /// "
630    /// public.ac3-audio".
631    /// Files are identified with the .ac3 extension.
632    ///
633    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeac3?language=objc)
634    pub static AVFileTypeAC3: Option<&'static AVFileType>;
635}
636
637extern "C" {
638    /// A UTI for the enhanced AC-3 audio file format.
639    ///
640    /// The value of this UTI is
641    /// "
642    /// public.enhanced-ac3-audio".
643    /// Files are identified with the .eac3 extension.
644    ///
645    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeenhancedac3?language=objc)
646    pub static AVFileTypeEnhancedAC3: Option<&'static AVFileType>;
647}
648
649extern "C" {
650    /// A UTI for the JPEG (JFIF) format.
651    ///
652    /// The value of this UTI is
653    /// "
654    /// public.jpeg".
655    /// Files are identified with the .jpg or .jpeg extension.
656    ///
657    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypejpeg?language=objc)
658    pub static AVFileTypeJPEG: Option<&'static AVFileType>;
659}
660
661extern "C" {
662    /// A UTI for the Adobe digital negative file format.
663    ///
664    /// The value of this UTI is
665    /// "
666    /// com.adobe.raw-image".
667    /// Files are identified with the .dng extension.
668    ///
669    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypedng?language=objc)
670    pub static AVFileTypeDNG: Option<&'static AVFileType>;
671}
672
673extern "C" {
674    /// A UTI for the high efficiency image file format containing HEVC compressed images.
675    ///
676    /// The value of this UTI is
677    /// "
678    /// public.heic".
679    /// Files are identified with the .heic extension.
680    ///
681    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeheic?language=objc)
682    pub static AVFileTypeHEIC: Option<&'static AVFileType>;
683}
684
685extern "C" {
686    /// A UTI for the high efficiency image file format containing H.264 compressed images.
687    ///
688    /// The value of this UTI is
689    /// "
690    /// public.avci".
691    /// Files are identified with the .avci extension.
692    ///
693    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeavci?language=objc)
694    pub static AVFileTypeAVCI: Option<&'static AVFileType>;
695}
696
697extern "C" {
698    /// A UTI for the high efficiency image file format containing images compressed with any codec.
699    ///
700    /// The value of this UTI is
701    /// "
702    /// public.heif".
703    /// Files are identified with the .heif extension.
704    ///
705    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeheif?language=objc)
706    pub static AVFileTypeHEIF: Option<&'static AVFileType>;
707}
708
709extern "C" {
710    /// A UTI for the tagged image file format.
711    ///
712    /// The value of this UTI is
713    /// "
714    /// public.tiff".
715    /// Files are identified with the .tiff or .tif extension.
716    ///
717    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypetiff?language=objc)
718    pub static AVFileTypeTIFF: Option<&'static AVFileType>;
719}
720
721extern "C" {
722    /// A UTI for the Apple iTT caption file format
723    ///
724    /// The value of this UTI is
725    /// "
726    /// com.apple.itunes-timed-text".
727    /// Files are identified with the .itt extension.
728    ///
729    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeappleitt?language=objc)
730    pub static AVFileTypeAppleiTT: Option<&'static AVFileType>;
731}
732
733extern "C" {
734    /// A UTI for the Scenarist closed caption file format
735    ///
736    /// The value of this UTI is
737    /// "
738    /// com.scenarist.closed-caption".
739    /// Files are identified with the .scc extension.
740    ///
741    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypescc?language=objc)
742    pub static AVFileTypeSCC: Option<&'static AVFileType>;
743}
744
745extern "C" {
746    /// A UTI for the Apple Haptics Audio Pattern file format.
747    ///
748    /// The value of this UTI is
749    /// "
750    /// public.haptics-content".
751    /// Files are identified with the .ahap extension.
752    ///
753    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeahap?language=objc)
754    pub static AVFileTypeAHAP: Option<&'static AVFileType>;
755}
756
757extern "C" {
758    /// A UTI for streaming key delivery content keys
759    ///
760    /// The value of this UTI is
761    /// "
762    /// com.apple.streamingkeydelivery.contentkey".
763    ///
764    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avstreamingkeydeliverycontentkeytype?language=objc)
765    pub static AVStreamingKeyDeliveryContentKeyType: Option<&'static NSString>;
766}
767
768extern "C" {
769    /// A UTI for persistent streaming key delivery content keys
770    ///
771    /// The value of this UTI is
772    /// "
773    /// com.apple.streamingkeydelivery.persistentcontentkey".
774    ///
775    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avstreamingkeydeliverypersistentcontentkeytype?language=objc)
776    pub static AVStreamingKeyDeliveryPersistentContentKeyType: Option<&'static NSString>;
777}
778
779/// [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeprofile?language=objc)
780// NS_TYPED_ENUM
781pub type AVFileTypeProfile = NSString;
782
783extern "C" {
784    /// Apple HTTP Live Streaming profile
785    ///
786    /// The profile that is suitable for Apple HTTP Live Streaming.
787    ///
788    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeprofilempeg4applehls?language=objc)
789    pub static AVFileTypeProfileMPEG4AppleHLS: Option<&'static AVFileTypeProfile>;
790}
791
792extern "C" {
793    /// CMAF compliant profile
794    ///
795    /// The profile that is compliance with CMAF format.
796    ///
797    /// See also [Apple's documentation](https://developer.apple.com/documentation/avfoundation/avfiletypeprofilempeg4cmafcompliant?language=objc)
798    pub static AVFileTypeProfileMPEG4CMAFCompliant: Option<&'static AVFileTypeProfile>;
799}