CMSampleBuffer.inc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. { Parsed from CoreMedia.framework CMSampleBuffer.h }
  2. {$ifndef CMSAMPLEBUFFER_H}
  3. {$ifdef TYPES}
  4. const
  5. kCMSampleBufferError_AllocationFailed = -12730;
  6. kCMSampleBufferError_RequiredParameterMissing = -12731;
  7. kCMSampleBufferError_AlreadyHasDataBuffer = -12732;
  8. kCMSampleBufferError_BufferNotReady = -12733;
  9. kCMSampleBufferError_SampleIndexOutOfRange = -12734;
  10. kCMSampleBufferError_BufferHasNoSampleSizes = -12735;
  11. kCMSampleBufferError_BufferHasNoSampleTimingInfo = -12736;
  12. kCMSampleBufferError_ArrayTooSmall = -12737;
  13. kCMSampleBufferError_InvalidEntryCount = -12738;
  14. kCMSampleBufferError_CannotSubdivide = -12739;
  15. kCMSampleBufferError_SampleTimingInfoInvalid = -12740;
  16. kCMSampleBufferError_InvalidMediaTypeForOperation = -12741;
  17. kCMSampleBufferError_InvalidSampleData = -12742;
  18. kCMSampleBufferError_InvalidMediaFormat = -12743;
  19. kCMSampleBufferError_Invalidated = -12744;
  20. kCMSampleBufferError_DataFailed = -16750;
  21. kCMSampleBufferError_DataCanceled = -16751;
  22. const
  23. kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment = 1 shl 0;
  24. type
  25. CMSampleBufferRef = OpaqueType;
  26. type
  27. CMSampleTimingInfo = record
  28. duration: CMTime;
  29. presentationTimeStamp: CMTime;
  30. decodeTimeStamp: CMTime;
  31. end;
  32. type
  33. CMSampleTimingInfoPtr = ^CMSampleTimingInfo;
  34. {$endif}
  35. {$ifdef EXTERNAL_SYMBOLS}
  36. var
  37. kCMTimingInfoInvalid: CMSampleTimingInfo; cvar; external;
  38. {$endif}
  39. {$ifdef TYPES}
  40. type
  41. CMSampleBufferMakeDataReadyCallback = function (sbuf: CMSampleBufferRef; makeDataReadyRefcon: pointer): OSStatus; cdecl;
  42. {$endif}
  43. {$ifdef FUNCTIONS}
  44. function CMSampleBufferCreate(allocator: CFAllocatorRef; dataBuffer: CMBlockBufferRef; dataReady: Boolean; makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback; makeDataReadyRefcon: pointer; formatDescription: CMFormatDescriptionRef; numSamples: CMItemCount; numSampleTimingEntries: CMItemCount; sampleTimingArray: CMSampleTimingInfoPtr; numSampleSizeEntries: CMItemCount; sampleSizeArray: size_tPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  45. function CMSampleBufferCreateReady(allocator: CFAllocatorRef; dataBuffer: CMBlockBufferRef; formatDescription: CMFormatDescriptionRef; numSamples: CMItemCount; numSampleTimingEntries: CMItemCount; sampleTimingArray: CMSampleTimingInfoPtr; numSampleSizeEntries: CMItemCount; sampleSizeArray: size_tPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  46. function CMAudioSampleBufferCreateWithPacketDescriptions(allocator: CFAllocatorRef; dataBuffer: CMBlockBufferRef; dataReady: Boolean; makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback; makeDataReadyRefcon: pointer; formatDescription: CMFormatDescriptionRef; numSamples: CMItemCount; sbufPTS: CMTime; packetDescriptions: AudioStreamPacketDescriptionPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  47. function CMAudioSampleBufferCreateReadyWithPacketDescriptions(allocator: CFAllocatorRef; dataBuffer: CMBlockBufferRef; formatDescription: CMFormatDescriptionRef; numSamples: CMItemCount; sbufPTS: CMTime; packetDescriptions: AudioStreamPacketDescriptionPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  48. function CMSampleBufferCreateForImageBuffer(allocator: CFAllocatorRef; imageBuffer: CVImageBufferRef; dataReady: Boolean; makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback; makeDataReadyRefcon: pointer; formatDescription: CMVideoFormatDescriptionRef; sampleTiming: CMSampleTimingInfoPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  49. function CMSampleBufferCreateReadyWithImageBuffer(allocator: CFAllocatorRef; imageBuffer: CVImageBufferRef; formatDescription: CMVideoFormatDescriptionRef; sampleTiming: CMSampleTimingInfoPtr; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  50. function CMSampleBufferCreateCopy(allocator: CFAllocatorRef; sbuf: CMSampleBufferRef; sbufCopyOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  51. function CMSampleBufferCreateCopyWithNewTiming(allocator: CFAllocatorRef; originalSBuf: CMSampleBufferRef; numSampleTimingEntries: CMItemCount; sampleTimingArray: CMSampleTimingInfoPtr; sBufCopyOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  52. function CMSampleBufferCopySampleBufferForRange(allocator: CFAllocatorRef; sbuf: CMSampleBufferRef; sampleRange: CFRange; sBufOut: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  53. function CMSampleBufferGetTypeID: CFTypeID; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  54. function CMSampleBufferSetDataBuffer(sbuf: CMSampleBufferRef; dataBuffer: CMBlockBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  55. function CMSampleBufferGetDataBuffer(sbuf: CMSampleBufferRef): CMBlockBufferRef; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  56. function CMSampleBufferGetImageBuffer(sbuf: CMSampleBufferRef): CVImageBufferRef; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  57. function CMSampleBufferSetDataBufferFromAudioBufferList(sbuf: CMSampleBufferRef; bbufStructAllocator: CFAllocatorRef; bbufMemoryAllocator: CFAllocatorRef; flags: cuint32; bufferList: AudioBufferListPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  58. function CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(sbuf: CMSampleBufferRef; bufferListSizeNeededOut: size_tPtr; bufferListOut: AudioBufferListPtr; bufferListSize: size_t; bbufStructAllocator: CFAllocatorRef; bbufMemoryAllocator: CFAllocatorRef; flags: cuint32; blockBufferOut: CMBlockBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  59. function CMSampleBufferGetAudioStreamPacketDescriptions(sbuf: CMSampleBufferRef; packetDescriptionsSize: size_t; packetDescriptionsOut: AudioStreamPacketDescriptionPtr; packetDescriptionsSizeNeededOut: size_tPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  60. function CMSampleBufferGetAudioStreamPacketDescriptionsPtr(sbuf: CMSampleBufferRef; packetDescriptionsPtrOut: AudioStreamPacketDescriptionPtr; packetDescriptionsSizeOut: size_tPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  61. function CMSampleBufferCopyPCMDataIntoAudioBufferList(sbuf: CMSampleBufferRef; frameOffset: cint32; numFrames: cint32; bufferList: AudioBufferListPtr): OSStatus; cdecl; external; { available starting in __MAC_10_9,__IPHONE_7_0 }
  62. function CMSampleBufferSetDataReady(sbuf: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  63. function CMSampleBufferDataIsReady(sbuf: CMSampleBufferRef): Boolean; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  64. function CMSampleBufferSetDataFailed(sbuf: CMSampleBufferRef; status: OSStatus): OSStatus; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  65. function CMSampleBufferHasDataFailed(sbuf: CMSampleBufferRef; statusOut: pointer {OSStatusPtr}): Boolean; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  66. function CMSampleBufferMakeDataReady(sbuf: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  67. function CMSampleBufferTrackDataReadiness(sbuf: CMSampleBufferRef; sbufToTrack: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  68. function CMSampleBufferInvalidate(sbuf: CMSampleBufferRef): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  69. {$endif}
  70. {$ifdef TYPES}
  71. type
  72. CMSampleBufferInvalidateCallback = procedure (sbuf: CMSampleBufferRef; invalidateRefCon: cuint64); cdecl;
  73. {$endif}
  74. {$ifdef FUNCTIONS}
  75. function CMSampleBufferSetInvalidateCallback(sbuf: CMSampleBufferRef; invalidateCallback: CMSampleBufferInvalidateCallback; invalidateRefCon: cuint64): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  76. {$endif}
  77. {$if defined(__BLOCKS__)}
  78. {$ifdef TYPES}
  79. type
  80. CMSampleBufferInvalidateHandler = OpaqueCBlock;
  81. {$endif}
  82. {$ifdef FUNCTIONS}
  83. function CMSampleBufferSetInvalidateHandler(sbuf: CMSampleBufferRef; invalidateHandler: CMSampleBufferInvalidateHandler): OSStatus; cdecl; external; { available starting in __MAC_10_10,__IPHONE_8_0 }
  84. {$endif}
  85. {$endif}
  86. {$ifdef FUNCTIONS}
  87. function CMSampleBufferIsValid(sbuf: CMSampleBufferRef): Boolean; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  88. {$endif}
  89. {$ifdef EXTERNAL_SYMBOLS}
  90. var
  91. kCMSampleBufferNotification_DataBecameReady: CFStringRef { available starting in __MAC_10_7,__IPHONE_4_0 }; cvar; external;
  92. kCMSampleBufferNotification_DataFailed: CFStringRef { available starting in __MAC_10_10,__IPHONE_8_0 }; cvar; external;
  93. kCMSampleBufferNotificationParameter_OSStatus: CFStringRef { available starting in __MAC_10_10,__IPHONE_8_0 }; cvar; external;
  94. kCMSampleBufferConduitNotification_InhibitOutputUntil: CFStringRef; cvar; external;
  95. kCMSampleBufferConduitNotificationParameter_ResumeTag: CFStringRef; cvar; external;
  96. kCMSampleBufferConduitNotification_ResetOutput: CFStringRef { available starting in __MAC_10_7,__IPHONE_4_0 }; cvar; external;
  97. kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged: CFStringRef; cvar; external;
  98. kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange: CFStringRef; cvar; external;
  99. kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS: CFStringRef; cvar; external;
  100. kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS: CFStringRef; cvar; external;
  101. kCMSampleBufferConsumerNotification_BufferConsumed: CFStringRef; cvar; external;
  102. {$endif}
  103. {$ifdef FUNCTIONS}
  104. function CMSampleBufferGetNumSamples(sbuf: CMSampleBufferRef): CMItemCount; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  105. function CMSampleBufferGetDuration(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  106. function CMSampleBufferGetPresentationTimeStamp(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  107. function CMSampleBufferGetDecodeTimeStamp(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  108. function CMSampleBufferGetOutputDuration(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  109. function CMSampleBufferGetOutputPresentationTimeStamp(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  110. function CMSampleBufferSetOutputPresentationTimeStamp(sbuf: CMSampleBufferRef; outputPresentationTimeStamp: CMTime): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  111. function CMSampleBufferGetOutputDecodeTimeStamp(sbuf: CMSampleBufferRef): CMTime; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  112. function CMSampleBufferGetSampleTimingInfoArray(sbuf: CMSampleBufferRef; timingArrayEntries: CMItemCount; timingArrayOut: CMSampleTimingInfoPtr; timingArrayEntriesNeededOut: CMItemCountPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  113. function CMSampleBufferGetOutputSampleTimingInfoArray(sbuf: CMSampleBufferRef; timingArrayEntries: CMItemCount; timingArrayOut: CMSampleTimingInfoPtr; timingArrayEntriesNeededOut: CMItemCountPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  114. function CMSampleBufferGetSampleTimingInfo(sbuf: CMSampleBufferRef; sampleIndex: CMItemIndex; timingInfoOut: CMSampleTimingInfoPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  115. function CMSampleBufferGetSampleSizeArray(sbuf: CMSampleBufferRef; sizeArrayEntries: CMItemCount; sizeArrayOut: size_tPtr; sizeArrayEntriesNeededOut: CMItemCountPtr): OSStatus; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  116. function CMSampleBufferGetSampleSize(sbuf: CMSampleBufferRef; sampleIndex: CMItemIndex): size_t; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  117. function CMSampleBufferGetTotalSampleSize(sbuf: CMSampleBufferRef): size_t; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  118. function CMSampleBufferGetFormatDescription(sbuf: CMSampleBufferRef): CMFormatDescriptionRef; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  119. function CMSampleBufferGetSampleAttachmentsArray(sbuf: CMSampleBufferRef; createIfNecessary: Boolean): CFArrayRef; cdecl; external; { available starting in __MAC_10_7,__IPHONE_4_0 }
  120. {$endif}
  121. {$ifdef EXTERNAL_SYMBOLS}
  122. var
  123. kCMSampleAttachmentKey_NotSync: CFStringRef; cvar; external;
  124. kCMSampleAttachmentKey_PartialSync: CFStringRef; cvar; external;
  125. kCMSampleAttachmentKey_HasRedundantCoding: CFStringRef; cvar; external;
  126. kCMSampleAttachmentKey_IsDependedOnByOthers: CFStringRef; cvar; external;
  127. kCMSampleAttachmentKey_DependsOnOthers: CFStringRef; cvar; external;
  128. kCMSampleAttachmentKey_EarlierDisplayTimesAllowed: CFStringRef; cvar; external;
  129. kCMSampleAttachmentKey_DisplayImmediately: CFStringRef; cvar; external;
  130. kCMSampleAttachmentKey_DoNotDisplay: CFStringRef; cvar; external;
  131. kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding: CFStringRef; cvar; external;
  132. kCMSampleBufferAttachmentKey_DrainAfterDecoding: CFStringRef; cvar; external;
  133. kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed: CFStringRef; cvar; external;
  134. kCMSampleBufferAttachmentKey_ResumeOutput: CFStringRef; cvar; external;
  135. kCMSampleBufferAttachmentKey_TransitionID: CFStringRef { available starting in __MAC_10_7,__IPHONE_4_0 }; cvar; external;
  136. kCMSampleBufferAttachmentKey_TrimDurationAtStart: CFStringRef; cvar; external;
  137. kCMSampleBufferAttachmentKey_TrimDurationAtEnd: CFStringRef; cvar; external;
  138. kCMSampleBufferAttachmentKey_SpeedMultiplier: CFStringRef; cvar; external;
  139. kCMSampleBufferAttachmentKey_Reverse: CFStringRef; cvar; external;
  140. kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence: CFStringRef; cvar; external;
  141. kCMSampleBufferAttachmentKey_EmptyMedia: CFStringRef; cvar; external;
  142. kCMSampleBufferAttachmentKey_PermanentEmptyMedia: CFStringRef; cvar; external;
  143. kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately: CFStringRef { available starting in __MAC_10_7,__IPHONE_4_0 }; cvar; external;
  144. kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration: CFStringRef; cvar; external;
  145. kCMSampleBufferAttachmentKey_SampleReferenceURL: CFStringRef; cvar; external;
  146. kCMSampleBufferAttachmentKey_SampleReferenceByteOffset: CFStringRef; cvar; external;
  147. kCMSampleBufferAttachmentKey_GradualDecoderRefresh: CFStringRef; cvar; external;
  148. kCMSampleBufferAttachmentKey_DroppedFrameReason: CFStringRef; cvar; external;
  149. kCMSampleBufferDroppedFrameReason_FrameWasLate: CFStringRef { available starting in __MAC_NA,__IPHONE_6_0 }; cvar; external;
  150. kCMSampleBufferDroppedFrameReason_OutOfBuffers: CFStringRef { available starting in __MAC_NA,__IPHONE_6_0 }; cvar; external;
  151. kCMSampleBufferDroppedFrameReason_Discontinuity: CFStringRef { available starting in __MAC_NA,__IPHONE_6_0 }; cvar; external;
  152. kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo: CFStringRef; cvar; external;
  153. kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch: CFStringRef { available starting in __MAC_NA,__IPHONE_7_0 }; cvar; external;
  154. kCMSampleBufferAttachmentKey_ForceKeyFrame: CFStringRef { available starting in __MAC_10_10,__IPHONE_8_0 }; cvar; external;
  155. {$endif}
  156. {$endif}