use core::ptr::NonNull;
use objc2_core_foundation::*;
use crate::*;
pub const kCMFormatDescriptionBridgeError_InvalidParameter: OSStatus = -12712;
pub const kCMFormatDescriptionBridgeError_AllocationFailed: OSStatus = -12713;
pub const kCMFormatDescriptionBridgeError_InvalidSerializedSampleDescription: OSStatus = -12714;
pub const kCMFormatDescriptionBridgeError_InvalidFormatDescription: OSStatus = -12715;
pub const kCMFormatDescriptionBridgeError_IncompatibleFormatDescription: OSStatus = -12716;
pub const kCMFormatDescriptionBridgeError_UnsupportedSampleDescriptionFlavor: OSStatus = -12717;
pub const kCMFormatDescriptionBridgeError_InvalidSlice: OSStatus = -12719;
pub type CMImageDescriptionFlavor = CFString;
extern "C" {
pub static kCMImageDescriptionFlavor_QuickTimeMovie: &'static CMImageDescriptionFlavor;
}
extern "C" {
pub static kCMImageDescriptionFlavor_ISOFamily: &'static CMImageDescriptionFlavor;
}
extern "C" {
pub static kCMImageDescriptionFlavor_3GPFamily: &'static CMImageDescriptionFlavor;
}
extern "C" {
pub static kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions:
&'static CMImageDescriptionFlavor;
}
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionData(
allocator: Option<&CFAllocator>,
image_description_data: NonNull<u8>,
size: usize,
string_encoding: CFStringEncoding,
flavor: Option<&CMImageDescriptionFlavor>,
format_description_out: NonNull<*const CMVideoFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
image_description_block_buffer: &CMBlockBuffer,
string_encoding: CFStringEncoding,
flavor: Option<&CMImageDescriptionFlavor>,
format_description_out: NonNull<*const CMVideoFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMVideoFormatDescriptionCopyAsBigEndianImageDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
video_format_description: &CMVideoFormatDescription,
string_encoding: CFStringEncoding,
flavor: Option<&CMImageDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapBigEndianImageDescriptionToHost(
image_description_data: NonNull<u8>,
image_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianImageDescriptionToBig(
image_description_data: NonNull<u8>,
image_description_size: usize,
) -> OSStatus;
}
pub type CMSoundDescriptionFlavor = CFString;
extern "C" {
pub static kCMSoundDescriptionFlavor_QuickTimeMovie: &'static CMSoundDescriptionFlavor;
}
extern "C" {
pub static kCMSoundDescriptionFlavor_QuickTimeMovieV2: &'static CMSoundDescriptionFlavor;
}
extern "C" {
pub static kCMSoundDescriptionFlavor_ISOFamily: &'static CMSoundDescriptionFlavor;
}
extern "C" {
pub static kCMSoundDescriptionFlavor_3GPFamily: &'static CMSoundDescriptionFlavor;
}
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData(
allocator: Option<&CFAllocator>,
sound_description_data: NonNull<u8>,
size: usize,
flavor: Option<&CMSoundDescriptionFlavor>,
format_description_out: NonNull<*const CMAudioFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
sound_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMSoundDescriptionFlavor>,
format_description_out: NonNull<*const CMAudioFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
audio_format_description: &CMAudioFormatDescription,
flavor: Option<&CMSoundDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
#[cfg(feature = "CMBlockBuffer")]
#[inline]
pub unsafe extern "C-unwind" fn CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout(
sound_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMSoundDescriptionFlavor>,
) -> bool {
extern "C-unwind" {
fn CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout(
sound_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMSoundDescriptionFlavor>,
) -> Boolean;
}
let ret = unsafe {
CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout(
sound_description_block_buffer,
flavor,
)
};
ret != 0
}
extern "C-unwind" {
pub fn CMSwapBigEndianSoundDescriptionToHost(
sound_description_data: NonNull<u8>,
sound_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianSoundDescriptionToBig(
sound_description_data: NonNull<u8>,
sound_description_size: usize,
) -> OSStatus;
}
pub type CMTextDescriptionFlavor = CFString;
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMTextFormatDescriptionCreateFromBigEndianTextDescriptionData(
allocator: Option<&CFAllocator>,
text_description_data: NonNull<u8>,
size: usize,
flavor: Option<&CMTextDescriptionFlavor>,
media_type: CMMediaType,
format_description_out: NonNull<*const CMTextFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMTextFormatDescriptionCreateFromBigEndianTextDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
text_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMTextDescriptionFlavor>,
media_type: CMMediaType,
format_description_out: NonNull<*const CMTextFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMTextFormatDescriptionCopyAsBigEndianTextDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
text_format_description: &CMTextFormatDescription,
flavor: Option<&CMTextDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapBigEndianTextDescriptionToHost(
text_description_data: NonNull<u8>,
text_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianTextDescriptionToBig(
text_description_data: NonNull<u8>,
text_description_size: usize,
) -> OSStatus;
}
pub type CMClosedCaptionDescriptionFlavor = CFString;
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionData(
allocator: Option<&CFAllocator>,
closed_caption_description_data: NonNull<u8>,
size: usize,
flavor: Option<&CMClosedCaptionDescriptionFlavor>,
format_description_out: NonNull<*const CMClosedCaptionFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
closed_caption_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMClosedCaptionDescriptionFlavor>,
format_description_out: NonNull<*const CMClosedCaptionFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMClosedCaptionFormatDescriptionCopyAsBigEndianClosedCaptionDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
closed_caption_format_description: &CMClosedCaptionFormatDescription,
flavor: Option<&CMClosedCaptionDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapBigEndianClosedCaptionDescriptionToHost(
closed_caption_description_data: NonNull<u8>,
closed_caption_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianClosedCaptionDescriptionToBig(
closed_caption_description_data: NonNull<u8>,
closed_caption_description_size: usize,
) -> OSStatus;
}
pub type CMTimeCodeDescriptionFlavor = CFString;
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionData(
allocator: Option<&CFAllocator>,
time_code_description_data: NonNull<u8>,
size: usize,
flavor: Option<&CMTimeCodeDescriptionFlavor>,
format_description_out: NonNull<*const CMTimeCodeFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
time_code_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMTimeCodeDescriptionFlavor>,
format_description_out: NonNull<*const CMTimeCodeFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMTimeCodeFormatDescriptionCopyAsBigEndianTimeCodeDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
time_code_format_description: &CMTimeCodeFormatDescription,
flavor: Option<&CMTimeCodeDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapBigEndianTimeCodeDescriptionToHost(
time_code_description_data: NonNull<u8>,
time_code_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianTimeCodeDescriptionToBig(
time_code_description_data: NonNull<u8>,
time_code_description_size: usize,
) -> OSStatus;
}
pub type CMMetadataDescriptionFlavor = CFString;
extern "C-unwind" {
#[cfg(feature = "CMFormatDescription")]
pub fn CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionData(
allocator: Option<&CFAllocator>,
metadata_description_data: NonNull<u8>,
size: usize,
flavor: Option<&CMMetadataDescriptionFlavor>,
format_description_out: NonNull<*const CMMetadataFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
metadata_description_block_buffer: &CMBlockBuffer,
flavor: Option<&CMMetadataDescriptionFlavor>,
format_description_out: NonNull<*const CMMetadataFormatDescription>,
) -> OSStatus;
}
extern "C-unwind" {
#[cfg(all(feature = "CMBlockBuffer", feature = "CMFormatDescription"))]
pub fn CMMetadataFormatDescriptionCopyAsBigEndianMetadataDescriptionBlockBuffer(
allocator: Option<&CFAllocator>,
metadata_format_description: &CMMetadataFormatDescription,
flavor: Option<&CMMetadataDescriptionFlavor>,
block_buffer_out: NonNull<*mut CMBlockBuffer>,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapBigEndianMetadataDescriptionToHost(
metadata_description_data: NonNull<u8>,
metadata_description_size: usize,
) -> OSStatus;
}
extern "C-unwind" {
pub fn CMSwapHostEndianMetadataDescriptionToBig(
metadata_description_data: NonNull<u8>,
metadata_description_size: usize,
) -> OSStatus;
}