diff --git a/src/AudioToolbox/AudioType.cs b/src/AudioToolbox/AudioType.cs
index 7e435c37da9d..37fbc4ffad3e 100644
--- a/src/AudioToolbox/AudioType.cs
+++ b/src/AudioToolbox/AudioType.cs
@@ -48,8 +48,14 @@ public enum AudioFormatType : uint { // UInt32 in AudioStreamBasicDescription --
LinearPCM = 0x6c70636d,
/// AC-3 codec.
AC3 = 0x61632d33,
+#if !XAMCORE_5_0
/// CAC-3 codec.
+ [Obsolete ("Use 'AC3_60958' instead.")]
+ [EditorBrowsable (EditorBrowsableState.Never)]
CAC3 = 0x63616333,
+#endif
+ /// The AC-3 codec, packaged to be compliant with an IEC 60958-compliant digital audio interface.
+ AC3_60958 = 0x63616333, // 'cac3'
/// Apple's IMA 4:1 ADPCM codec.
AppleIMA4 = 0x696d6134,
/// MPEG-4 AAC codec.
@@ -140,6 +146,8 @@ public enum AudioFormatType : uint { // UInt32 in AudioStreamBasicDescription --
[SupportedOSPlatform ("tvos18.0")]
[SupportedOSPlatform ("maccatalyst18.0")]
Apac = 0x61706163, // 'apac'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
/// Flags describing the stream in the .
diff --git a/src/CoreMedia/CMEnums.cs b/src/CoreMedia/CMEnums.cs
index 22817a0fd282..9fd4ce847e5b 100644
--- a/src/CoreMedia/CMEnums.cs
+++ b/src/CoreMedia/CMEnums.cs
@@ -8,6 +8,8 @@
// Copyright 2012-2014 Xamarin Inc
//
+using AudioToolbox;
+
#nullable enable
namespace CoreMedia {
@@ -47,6 +49,8 @@ public enum CMClosedCaptionFormatType : uint {
CEA708 = 0x63373038, // 'c708',
/// To be added.
ATSC = 0x61746363, // 'atcc'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// FourCharCode -> CMFormatDescription.h
@@ -61,6 +65,10 @@ public enum CMMuxedStreamType : uint {
MPEG2Program = 0x6D703270, // 'mp2p',
/// To be added.
DV = 0x64762020, // 'dv '
+ [iOS (17, 0), MacCatalyst (17, 0), TV (17, 0), Mac (14, 0)]
+ EmbeddedDeviceScreenRecording = 0x69737220, // 'isr '
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// FourCharCode -> CMFormatDescription.h
@@ -71,6 +79,8 @@ public enum CMSubtitleFormatType : uint {
Text3G = 0x74783367, // 'tx3g'
/// To be added.
WebVTT = 0x77767474, // 'wvtt'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// FourCharCode -> CMFormatDescription.h
@@ -85,6 +95,8 @@ public enum CMMetadataFormatType : uint {
Boxed = 0x6d656278, // 'mebx'
/// To be added.
Emsg = 0x656d7367, // 'emsg'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// FourCharCode -> CMFormatDescription.h
@@ -99,6 +111,8 @@ public enum CMTimeCodeFormatType : uint {
Counter32 = 0x636E3332, // 'cn32',
/// To be added.
Counter64 = 0x636E3634, // 'cn64'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// uint32_t -> CMTime.h
@@ -175,6 +189,7 @@ public enum CMVideoCodecType : uint {
DvcProHD1080p30 = 0x64766833,
/// Indicates Panasonic DVCPro-HD 1080p25 content.
DvcProHD1080p25 = 0x64766832,
+ AppleProRes4444XQ = 0x61703478, // 'ap4x'
/// To be added.
AppleProRes4444 = 0x61703468,
/// To be added.
@@ -185,14 +200,21 @@ public enum CMVideoCodecType : uint {
AppleProRes422LT = 0x61706373,
/// To be added.
AppleProRes422Proxy = 0x6170636f,
+ AppleProResRaw = 0x6170726e, // 'aprn'
+ AppleProResRawHQ = 0x61707268, // 'aprh'
/// To be added.
Hevc = 0x68766331,
+ HevcWithAlpha = 0x6d757861, // 'muxa'
[iOS (14, 5)]
[TV (14, 5)]
[MacCatalyst (14, 5)]
DolbyVisionHevc = 0x64766831,
DisparityHevc = 0x64697368,
DepthHevc = 0x64657068,
+ /// Indicates AV1 content.
+ AV1 = 0x61763031, // 'av01'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
// UInt32 enum => CMFormatDescription.h
@@ -202,35 +224,37 @@ public enum CMPixelFormat : uint {
/// To be added.
AlphaRedGreenBlue32bits = 32,
/// To be added.
- BlueGreenRedAlpha32bits = 1111970369,
+ BlueGreenRedAlpha32bits = 1111970369, // 'BGRA'
/// To be added.
RedGreenBlue24bits = 24,
/// To be added.
BigEndian555_16bits = 16,
/// To be added.
- BigEndian565_16bits = 1110783541,
+ BigEndian565_16bits = 1110783541, // 'B565'
/// To be added.
- LittleEndian555_16bits = 1278555445,
+ LittleEndian555_16bits = 1278555445, // 'L555'
/// To be added.
- LittleEndian565_16bits = 1278555701,
+ LittleEndian565_16bits = 1278555701, // 'L565'
/// To be added.
- LittleEndian5551_16bits = 892679473,
+ LittleEndian5551_16bits = 892679473, // '5551'
/// To be added.
- YpCbCr422_8bits = 846624121,
+ YpCbCr422_8bits = 846624121, // '2vuy'
/// To be added.
- YpCbCr422yuvs_8bits = 2037741171,
+ YpCbCr422yuvs_8bits = 2037741171, // 'yuvs'
/// To be added.
- YpCbCr444_8bits = 1983066168,
+ YpCbCr444_8bits = 1983066168, // 'v308'
/// To be added.
- YpCbCrA4444_8bits = 1983131704,
+ YpCbCrA4444_8bits = 1983131704, // 'v408'
/// To be added.
- YpCbCr422_16bits = 1983000886,
+ YpCbCr422_16bits = 1983000886, // 'v216'
/// To be added.
- YpCbCr422_10bits = 1983000880,
+ YpCbCr422_10bits = 1983000880, // 'v210'
/// To be added.
- YpCbCr444_10bits = 1983131952,
+ YpCbCr444_10bits = 1983131952, // 'v410'
/// To be added.
IndexedGrayWhiteIsZero_8bits = 40,
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
}
/// Enumerates attachment propagation policies.
@@ -398,4 +422,249 @@ public enum CMSyncError : int {
/// To be added.
RateMustBeNonZero = -12755,
}
+
+ [MacCatalyst (13, 1)]
+ public enum CMAudioCodecType : uint {
+ AacLCProtected = 0x70616163, // 'paac'
+ AacAudibleProtected = 0x61616163, // 'aaac'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
+ }
+
+ [MacCatalyst (13, 1)]
+ public enum CMTextFormatType : uint {
+ QTText = 0x74657874, // 'text'
+ Text3G = 0x74783367, // 'tx3g'
+
+ // any new entries here might need new entries in the CMMediaSubType enum as well
+ }
+
+ // The entries from this enum is from the Swift struct CMFormatDescription.MediaSubType (https://developer.apple.com/documentation/coremedia/cmformatdescription/mediasubtype-swift.struct)
+ // The easiest way to get a list of all the names is to look in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/swift/CoreMedia.swiftmodule/arm64e-apple-ios.swiftinterface
+ // Then the values are looked up manually using the corresponding Objective-C constant (this involves a lot of searching and guessing)
+ /// This enum contains most values that can be returned from .
+ [MacCatalyst (13, 1)]
+ public enum CMMediaSubType : uint {
+ /// This has the same value as .
+ LinearPcm = (uint) AudioFormatType.LinearPCM,
+ /// This has the same value as .
+ Ac3 = (uint) AudioFormatType.AC3,
+ /// This has the same value as .
+ Iec60958Ac3 = (uint) AudioFormatType.AC3_60958,
+ /// This has the same value as .
+ AppleIma4 = (uint) AudioFormatType.AppleIMA4,
+ /// This has the same value as .
+ Mpeg4Aac = (uint) AudioFormatType.MPEG4AAC,
+ /// This has the same value as .
+ Mpeg4Celp = (uint) AudioFormatType.MPEG4CELP,
+ /// This has the same value as .
+ Mpeg4Hvxc = (uint) AudioFormatType.MPEG4HVXC,
+ /// This has the same value as .
+ Mpeg4TwinVQ = (uint) AudioFormatType.MPEG4TwinVQ,
+ /// This has the same value as .
+ Mace3 = (uint) AudioFormatType.MACE3,
+ /// This has the same value as .
+ Mace6 = (uint) AudioFormatType.MACE6,
+ /// This has the same value as .
+ ULaw = (uint) AudioFormatType.ULaw,
+ /// This has the same value as .
+ ALaw = (uint) AudioFormatType.ALaw,
+ /// This has the same value as .
+ QDesign = (uint) AudioFormatType.QDesign,
+ /// This has the same value as .
+ QDesign2 = (uint) AudioFormatType.QDesign2,
+ /// This has the same value as .
+ Qualcomm = (uint) AudioFormatType.QUALCOMM,
+ /// This has the same value as .
+ MpegLayer1 = (uint) AudioFormatType.MPEGLayer1,
+ /// This has the same value as .
+ MpegLayer2 = (uint) AudioFormatType.MPEGLayer2,
+ /// This has the same value as .
+ MpegLayer3 = (uint) AudioFormatType.MPEGLayer3,
+ /// This has the same value as .
+ TimeCode = (uint) AudioFormatType.TimeCode,
+ /// This has the same value as .
+ MidiStream = (uint) AudioFormatType.MIDIStream,
+ /// This has the same value as .
+ ParameterValueStream = (uint) AudioFormatType.ParameterValueStream,
+ /// This has the same value as .
+ AppleLossless = (uint) AudioFormatType.AppleLossless,
+ /// This has the same value as .
+ Mpeg4Aac_HE = (uint) AudioFormatType.MPEG4AAC_HE,
+ /// This has the same value as .
+ Mpeg4Aac_LD = (uint) AudioFormatType.MPEG4AAC_LD,
+ /// This has the same value as .
+ Mpeg4Aac_Eld = (uint) AudioFormatType.MPEG4AAC_ELD,
+ /// This has the same value as .
+ Mpeg4Aac_Eld_SBR = (uint) AudioFormatType.MPEG4AAC_ELD_SBR,
+ /// This has the same value as .
+ Mpeg4Aac_Eld_V2 = (uint) AudioFormatType.MPEG4AAC_ELD_V2,
+ /// This has the same value as .
+ Mpeg4Aac_HE_V2 = (uint) AudioFormatType.MPEG4AAC_HE_V2,
+ /// This has the same value as .
+ Mpeg4Aac_Spatial = (uint) AudioFormatType.MPEG4AAC_Spatial,
+ /// This has the same value as .
+ MpegD_USAC = (uint) AudioFormatType.MpegD_Usac,
+ /// This has the same value as .
+ Amr = (uint) AudioFormatType.AMR,
+ /// This has the same value as .
+ Amr_WB = (uint) AudioFormatType.AMRWideBand,
+ /// This has the same value as .
+ Audible = (uint) AudioFormatType.Audible,
+ /// This has the same value as .
+ ILbc = (uint) AudioFormatType.iLBC,
+ /// This has the same value as .
+ DviIntelIma = (uint) AudioFormatType.DVIIntelIMA,
+ /// This has the same value as .
+ MicrosoftGsm = (uint) AudioFormatType.MicrosoftGSM,
+ /// This has the same value as .
+ Aes3 = (uint) AudioFormatType.AES3,
+ /// This has the same value as .
+ EnhancedAC3 = (uint) AudioFormatType.EnhancedAC3,
+ /// This has the same value as .
+ Flac = (uint) AudioFormatType.Flac,
+ /// This has the same value as .
+ Opus = (uint) AudioFormatType.Opus,
+ /// This has the same value as .
+ AacLCProtected = (uint) CMAudioCodecType.AacLCProtected,
+ /// This has the same value as .
+ AacAudibleProtected = (uint) CMAudioCodecType.AacAudibleProtected,
+ /// This has the same value as .
+ PixelFormat32ARGB = (uint) CMPixelFormat.AlphaRedGreenBlue32bits,
+ /// This has the same value as .
+ PixelFormat32BGRA = (uint) CMPixelFormat.BlueGreenRedAlpha32bits,
+ /// This has the same value as .
+ PixelFormat24RGB = (uint) CMPixelFormat.RedGreenBlue24bits,
+ /// This has the same value as .
+ PixelFormat16BE555 = (uint) CMPixelFormat.BigEndian555_16bits,
+ /// This has the same value as .
+ PixelFormat16BE565 = (uint) CMPixelFormat.BigEndian565_16bits,
+ /// This has the same value as .
+ PixelFormat16LE555 = (uint) CMPixelFormat.LittleEndian555_16bits,
+ /// This has the same value as .
+ PixelFormat16LE565 = (uint) CMPixelFormat.LittleEndian565_16bits,
+ /// This has the same value as .
+ PixelFormat16LE5551 = (uint) CMPixelFormat.LittleEndian5551_16bits,
+ /// This has the same value as .
+ PixelFormat422YpCbCr8 = (uint) CMPixelFormat.YpCbCr422_8bits,
+ /// This has the same value as .
+ PixelFormat422YpCbCr8_yuvs = (uint) CMPixelFormat.YpCbCr422yuvs_8bits,
+ /// This has the same value as .
+ PixelFormat444YpCbCr8 = (uint) CMPixelFormat.YpCbCr444_8bits,
+ /// This has the same value as .
+ PixelFormat4444YpCbCrA8 = (uint) CMPixelFormat.YpCbCrA4444_8bits,
+ /// This has the same value as .
+ PixelFormat422YpCbCr16 = (uint) CMPixelFormat.YpCbCr422_16bits,
+ /// This has the same value as .
+ PixelFormat422YpCbCr10 = (uint) CMPixelFormat.YpCbCr422_10bits,
+ /// This has the same value as .
+ PixelFormat444YpCbCr10 = (uint) CMPixelFormat.YpCbCr444_10bits,
+ /// This has the same value as .
+ PixelFormat8IndexedGray_WhiteIsZero = (uint) CMPixelFormat.IndexedGrayWhiteIsZero_8bits,
+ /// This has the same value as .
+ Animation = (uint) CMVideoCodecType.Animation,
+ /// This has the same value as .
+ Cinepak = (uint) CMVideoCodecType.Cinepak,
+ /// This has the same value as .
+ Jpeg = (uint) CMVideoCodecType.JPEG,
+ /// This has the same value as .
+ Jpeg_OpenDml = (uint) CMVideoCodecType.JPEG_OpenDML,
+ /// This has the same value as .
+ SorensonVideo = (uint) CMVideoCodecType.SorensonVideo,
+ /// This has the same value as .
+ SorensonVideo3 = (uint) CMVideoCodecType.SorensonVideo3,
+ /// This has the same value as .
+ H263 = (uint) CMVideoCodecType.H263,
+ /// This has the same value as .
+ H264 = (uint) CMVideoCodecType.H264,
+ /// This has the same value as .
+ Hevc = (uint) CMVideoCodecType.Hevc,
+ /// This has the same value as .
+ HevcWithAlpha = (uint) CMVideoCodecType.HevcWithAlpha,
+ /// This has the same value as .
+ Mpeg4Video = (uint) CMVideoCodecType.Mpeg4Video,
+ /// This has the same value as .
+ Mpeg2Video = (uint) CMVideoCodecType.Mpeg2Video,
+ /// This has the same value as .
+ Mpeg1Video = (uint) CMVideoCodecType.Mpeg1Video,
+ /// This has the same value as .
+ DvcNtsc = (uint) CMVideoCodecType.DvcNtsc,
+ /// This has the same value as .
+ DvcPal = (uint) CMVideoCodecType.DvcPal,
+ /// This has the same value as .
+ DvcProPal = (uint) CMVideoCodecType.DvcProPal,
+ /// This has the same value as .
+ DvcPro50Ntsc = (uint) CMVideoCodecType.DvcPro50NTSC,
+ /// This has the same value as .
+ DvcPro50Pal = (uint) CMVideoCodecType.DvcPro50PAL,
+ /// This has the same value as .
+ DvcProHD720p60 = (uint) CMVideoCodecType.DvcProHD720p60,
+ /// This has the same value as .
+ DvcProHD720p50 = (uint) CMVideoCodecType.DvcProHD720p50,
+ /// This has the same value as .
+ DvcProHD1080i60 = (uint) CMVideoCodecType.DvcProHD1080i60,
+ /// This has the same value as .
+ DvcProHD1080i50 = (uint) CMVideoCodecType.DvcProHD1080i50,
+ /// This has the same value as .
+ DvcProHD1080p30 = (uint) CMVideoCodecType.DvcProHD1080p30,
+ /// This has the same value as .
+ DvcProHD1080p25 = (uint) CMVideoCodecType.DvcProHD1080p25,
+ /// This has the same value as .
+ ProRes4444XQ = (uint) CMVideoCodecType.AppleProRes4444XQ,
+ /// This has the same value as .
+ ProRes4444 = (uint) CMVideoCodecType.AppleProRes4444,
+ /// This has the same value as .
+ ProRes422HQ = (uint) CMVideoCodecType.AppleProRes422HQ,
+ /// This has the same value as .
+ ProRes422 = (uint) CMVideoCodecType.AppleProRes422,
+ /// This has the same value as .
+ ProRes422LT = (uint) CMVideoCodecType.AppleProRes422LT,
+ /// This has the same value as .
+ ProRes422Proxy = (uint) CMVideoCodecType.AppleProRes422Proxy,
+ /// This has the same value as .
+ ProResRAW = (uint) CMVideoCodecType.AppleProResRaw,
+ /// This has the same value as .
+ ProResRAWHQ = (uint) CMVideoCodecType.AppleProResRawHQ,
+ /// This has the same value as .
+ Mpeg1System = (uint) CMMuxedStreamType.MPEG1System,
+ /// This has the same value as .
+ Mpeg2Transport = (uint) CMMuxedStreamType.MPEG2Transport,
+ /// This has the same value as .
+ Mpeg2Program = (uint) CMMuxedStreamType.MPEG2Program,
+ /// This has the same value as .
+ Dv = (uint) CMMuxedStreamType.DV,
+ /// This has the same value as .
+ [iOS (17, 0), Mac (14, 0), TV (17, 0), MacCatalyst (17, 0)]
+ EmbeddedDeviceScreenRecording = (uint) CMMuxedStreamType.EmbeddedDeviceScreenRecording,
+ /// This has the same value as .
+ Cea608 = (uint) CMClosedCaptionFormatType.CEA608,
+ /// This has the same value as .
+ Cea708 = (uint) CMClosedCaptionFormatType.CEA708,
+ /// This has the same value as .
+ Atsc = (uint) CMClosedCaptionFormatType.ATSC,
+ /// This has the same value as .
+ Qt = (uint) CMTextFormatType.QTText,
+ /// This has the same value as .
+ Mobile3Gpp = (uint) CMSubtitleFormatType.Text3G,
+ /// This has the same value as .
+ WebVtt = (uint) CMSubtitleFormatType.WebVTT,
+ /// This has the same value as .
+ TimeCode32 = (uint) CMTimeCodeFormatType.TimeCode32,
+ /// This has the same value as .
+ TimeCode64 = (uint) CMTimeCodeFormatType.TimeCode64,
+ /// This has the same value as .
+ Counter32 = (uint) CMTimeCodeFormatType.Counter32,
+ /// This has the same value as .
+ Counter64 = (uint) CMTimeCodeFormatType.Counter64,
+ /// This has the same value as .
+ Icy = (uint) CMMetadataFormatType.ICY,
+ /// This has the same value as .
+ Id3 = (uint) CMMetadataFormatType.ID3,
+ /// This has the same value as .
+ Boxed = (uint) CMMetadataFormatType.Boxed,
+ /// This has the same value as .
+ Emsg = (uint) CMMetadataFormatType.Emsg,
+ /// This has the same value as .
+ Tbgr = (uint) CMMediaType.TaggedBufferGroup,
+ }
}
diff --git a/src/CoreMedia/CMFormatDescription.cs b/src/CoreMedia/CMFormatDescription.cs
index a366f6e70f62..4fee362d39c7 100644
--- a/src/CoreMedia/CMFormatDescription.cs
+++ b/src/CoreMedia/CMFormatDescription.cs
@@ -71,78 +71,108 @@ internal CMFormatDescription (NativeHandle handle, bool owns)
[DllImport (Constants.CoreMediaLibrary)]
extern static /* FourCharCode */ uint CMFormatDescriptionGetMediaSubType (/* CMFormatDescriptionRef */ IntPtr desc);
- /// Returns the media subtype, ideally you should use the strongly typed versions instead.
- ///
- ///
- ///
- /// Instead of using this uint value, you can use the specific
- /// strongly-typed version: AudioFormatType, SubtitleFormatType,
- /// ClosedCaptionFormatType, MuxedStreamType, VideoCodecType,
- /// MetadataFormatType or TimeCodeFormatType.
- ///
+#if XAMCORE_5_0
+ /// Returns the media subtype.
+ ///
+ ///
+ /// The type of this property, the enum , might not contain entries for all valid
+ /// media subtypes, but the value can be cast to a and then treated as a fourcc value.
+ ///
+ ///
+ /// It's also possible to use any of the other strongly-typed versions as well: , ,
+ /// , , ,
+ /// , or .
+ ///
+ ///
+ public CMMediaSubType MediaSubType {
+#else
+ /// Returns the media subtype (as a fourcc value).
+ ///
+ ///
+ /// Instead of using this untyped property, it's often easier to use any of the
+ /// strongly-typed versions instead: , ,
+ /// , , ,
+ /// , or .
+ ///
+ ///
+ /// It's also possible to cast this value to , but note
+ /// that the enum might not contain entries for all valid
+ /// values for this property.
+ ///
+ ///
public uint MediaSubType {
+#endif // XAMCORE_5_0
get {
return CMFormatDescriptionGetMediaSubType (Handle);
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public AudioFormatType AudioFormatType {
get {
return MediaType == CMMediaType.Audio ? (AudioFormatType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public CMSubtitleFormatType SubtitleFormatType {
get {
return MediaType == CMMediaType.Subtitle ? (CMSubtitleFormatType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public CMClosedCaptionFormatType ClosedCaptionFormatType {
get {
return MediaType == CMMediaType.ClosedCaption ? (CMClosedCaptionFormatType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public CMMuxedStreamType MuxedStreamType {
get {
return MediaType == CMMediaType.Muxed ? (CMMuxedStreamType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned. If is a pixel format, use instead.
public CMVideoCodecType VideoCodecType {
get {
return MediaType == CMMediaType.Video ? (CMVideoCodecType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned. If property isn't a pixel format, use instead.
+ public CVPixelFormatType PixelFormatType {
+ get {
+ return MediaType == CMMediaType.Video ? (CVPixelFormatType) MediaSubType : 0;
+ }
+ }
+
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public CMMetadataFormatType MetadataFormatType {
get {
return MediaType == CMMediaType.Metadata ? (CMMetadataFormatType) MediaSubType : 0;
}
}
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Gets the property as a .
+ /// The property as a , if this format descripton's is , otherwise 0.
+ /// Only applicable if this format descripton's is , otherwise 0 is returned.
public CMTimeCodeFormatType TimeCodeFormatType {
get {
return MediaType == CMMediaType.TimeCode ? (CMTimeCodeFormatType) MediaSubType : 0;
@@ -161,9 +191,8 @@ public CMTaggedBufferGroupFormatType TaggedBufferGroupFormatType {
[DllImport (Constants.CoreMediaLibrary)]
extern static CMMediaType CMFormatDescriptionGetMediaType (/* CMFormatDescriptionRef */ IntPtr desc);
- /// To be added.
- /// To be added.
- /// To be added.
+ /// Get the media type of this format description.
+ /// The media type of this format description.
public CMMediaType MediaType {
get {
return CMFormatDescriptionGetMediaType (Handle);
diff --git a/tests/cecil-tests/Documentation.KnownFailures.txt b/tests/cecil-tests/Documentation.KnownFailures.txt
index cd9556af6664..edead37f50df 100644
--- a/tests/cecil-tests/Documentation.KnownFailures.txt
+++ b/tests/cecil-tests/Documentation.KnownFailures.txt
@@ -2356,6 +2356,8 @@ F:CoreLocationUI.CLLocationButtonLabel.SendCurrentLocation
F:CoreLocationUI.CLLocationButtonLabel.SendMyCurrentLocation
F:CoreLocationUI.CLLocationButtonLabel.ShareCurrentLocation
F:CoreLocationUI.CLLocationButtonLabel.ShareMyCurrentLocation
+F:CoreMedia.CMAudioCodecType.AacAudibleProtected
+F:CoreMedia.CMAudioCodecType.AacLCProtected
F:CoreMedia.CMFormatDescriptionAlphaChannelMode.PremultipliedAlpha
F:CoreMedia.CMFormatDescriptionAlphaChannelMode.StraightAlpha
F:CoreMedia.CMFormatDescriptionCameraCalibrationExtrinsicOriginSource.StereoCameraSystemBaseline
@@ -2484,6 +2486,7 @@ F:CoreMedia.CMMPEG2VideoProfile.XDCAM_HD422_720p30_CBR50
F:CoreMedia.CMMPEG2VideoProfile.XDCAM_HD422_720p50_CBR50
F:CoreMedia.CMMPEG2VideoProfile.XDCAM_HD422_720p60_CBR50
F:CoreMedia.CMMPEG2VideoProfile.XF
+F:CoreMedia.CMMuxedStreamType.EmbeddedDeviceScreenRecording
F:CoreMedia.CMPackingType.None
F:CoreMedia.CMPackingType.OverUnder
F:CoreMedia.CMPackingType.SideBySide
@@ -2534,9 +2537,15 @@ F:CoreMedia.CMTaggedBufferGroupError.InternalError
F:CoreMedia.CMTaggedBufferGroupError.ParamErr
F:CoreMedia.CMTaggedBufferGroupError.Success
F:CoreMedia.CMTaggedBufferGroupFormatType.TaggedBufferGroup
+F:CoreMedia.CMTextFormatType.QTText
+F:CoreMedia.CMTextFormatType.Text3G
+F:CoreMedia.CMVideoCodecType.AppleProRes4444XQ
+F:CoreMedia.CMVideoCodecType.AppleProResRaw
+F:CoreMedia.CMVideoCodecType.AppleProResRawHQ
F:CoreMedia.CMVideoCodecType.DepthHevc
F:CoreMedia.CMVideoCodecType.DisparityHevc
F:CoreMedia.CMVideoCodecType.DolbyVisionHevc
+F:CoreMedia.CMVideoCodecType.HevcWithAlpha
F:CoreMedia.CMVideoCodecType.JPEG_XL
F:CoreMedia.CMVideoCodecType.VP9
F:CoreMidi.MidiCICategoryOptions.ProcessInquirySupported
@@ -26195,6 +26204,7 @@ T:CoreLocation.CLServiceSessionDiagnostic
T:CoreLocation.CLUpdate
T:CoreLocationUI.CLLocationButtonIcon
T:CoreLocationUI.CLLocationButtonLabel
+T:CoreMedia.CMAudioCodecType
T:CoreMedia.CMCompressionPropertyCameraCalibration
T:CoreMedia.CMCompressionPropertyCameraCalibrationKey
T:CoreMedia.CMFormatDescriptionAlphaChannelMode
@@ -26234,6 +26244,7 @@ T:CoreMedia.CMTagDataType
T:CoreMedia.CMTagError
T:CoreMedia.CMTaggedBufferGroupError
T:CoreMedia.CMTaggedBufferGroupFormatType
+T:CoreMedia.CMTextFormatType
T:CoreMedia.LensStabilizationStatus
T:CoreMidi.Midi2DeviceInfo
T:CoreMidi.Midi2DeviceManufacturer