Class CoreMedia


  • public final class CoreMedia
    extends java.lang.Object
    • Field Detail

      • CMTIMEBASE_USE_SOURCE_TERMINOLOGY

        public static final double CMTIMEBASE_USE_SOURCE_TERMINOLOGY
        See Also:
        Constant Field Values
    • Method Detail

      • CMTimeMake

        public static CMTime CMTimeMake​(long value,
                                        int timescale)
        [@function] CMTimeMake Make a valid CMTime with value and timescale. Epoch is implied to be 0.
        Returns:
        The resulting CMTime. API-Since: 4.0
      • CMTimeMakeWithEpoch

        public static CMTime CMTimeMakeWithEpoch​(long value,
                                                 int timescale,
                                                 long epoch)
        [@function] CMTimeMakeWithEpoch Make a valid CMTime with value, scale and epoch.
        Returns:
        The resulting CMTime. API-Since: 4.0
      • CMTimeMakeWithSeconds

        public static CMTime CMTimeMakeWithSeconds​(double seconds,
                                                   int preferredTimescale)
        [@function] CMTimeMakeWithSeconds Make a CMTime from a Float64 number of seconds, and a preferred timescale. The epoch of the result will be zero. If preferredTimescale is <= 0, the result will be an invalid CMTime. If the preferred timescale will cause an overflow, the timescale will be halved repeatedly until the overflow goes away, or the timescale is 1. If it still overflows at that point, the result will be +/- infinity. The kCMTimeFlags_HasBeenRounded flag will be set if the result, when converted back to seconds, is not exactly equal to the original seconds value.
        Returns:
        The resulting CMTime. API-Since: 4.0
      • CMTimeGetSeconds

        public static double CMTimeGetSeconds​(CMTime time)
        [@function] CMTimeGetSeconds Converts a CMTime to seconds. If the CMTime is invalid or indefinite, NAN is returned. If the CMTime is infinite, +/- __inf() is returned. If the CMTime is numeric, epoch is ignored, and time.value / time.timescale is returned. The division is done in Float64, so the fraction is not lost in the returned result.
        Returns:
        The resulting Float64 number of seconds. API-Since: 4.0
      • CMTimeConvertScale

        public static CMTime CMTimeConvertScale​(CMTime time,
                                                int newTimescale,
                                                int method)
        [@function] CMTimeConvertScale Returns a new CMTime containing the source CMTime converted to a new timescale (rounding as requested). If the value needs to be rounded, the kCMTimeFlags_HasBeenRounded flag will be set. See definition of CMTimeRoundingMethod for a discussion of the various rounding methods available. If the source time is non-numeric (ie. infinite, indefinite, invalid), the result will be similarly non-numeric.
        Returns:
        The converted result CMTime. API-Since: 4.0
      • CMTimeAdd

        public static CMTime CMTimeAdd​(CMTime lhs,
                                       CMTime rhs)
        [@function] CMTimeAdd Returns the sum of two CMTimes. If the operands both have the same timescale, the timescale of the result will be the same as the operands' timescale. If the operands have different timescales, the timescale of the result will be the least common multiple of the operands' timescales. If that LCM timescale is greater than kCMTimeMaxTimescale, the result timescale will be kCMTimeMaxTimescale, and default rounding will be applied when converting the result to this timescale. If the result value overflows, the result timescale will be repeatedly halved until the result value no longer overflows. Again, default rounding will be applied when converting the result to this timescale. If the result value still overflows when timescale == 1, then the result will be either positive or negative infinity, depending on the direction of the overflow. If any rounding occurs for any reason, the result's kCMTimeFlags_HasBeenRounded flag will be set. This flag will also be set if either of the operands has kCMTimeFlags_HasBeenRounded set. If either of the operands is invalid, the result will be invalid. If the operands are valid, but just one operand is infinite, the result will be similarly infinite. If the operands are valid, and both are infinite, the results will be as follows:
          +infinity + +infinity == +infinity
        • -infinity + -infinity == -infinity
        • +infinity + -infinity == invalid
        • -infinity + +infinity == invalid
        If the operands are valid, not infinite, and either or both is indefinite, the result will be indefinite. If the two operands are numeric (ie. valid, not infinite, not indefinite), but have different nonzero epochs, the result will be invalid. If they have the same nonzero epoch, the result will have epoch zero (a duration). Times in different epochs cannot be added or subtracted, because epoch length is unknown. Times in epoch zero are considered to be durations and can be added to times in other epochs. Times in different epochs can be compared, however, because numerically greater epochs always occur after numerically lesser epochs.
        Returns:
        The sum of the two CMTimes (lhs + rhs). API-Since: 4.0
      • CMTimeSubtract

        public static CMTime CMTimeSubtract​(CMTime lhs,
                                            CMTime rhs)
        [@function] CMTimeSubtract Returns the difference of two CMTimes. If the operands both have the same timescale, the timescale of the result will be the same as the operands' timescale. If the operands have different timescales, the timescale of the result will be the least common multiple of the operands' timescales. If that LCM timescale is greater than kCMTimeMaxTimescale, the result timescale will be kCMTimeMaxTimescale, and default rounding will be applied when converting the result to this timescale. If the result value overflows, the result timescale will be repeatedly halved until the result value no longer overflows. Again, default rounding will be applied when converting the result to this timescale. If the result value still overflows when timescale == 1, then the result will be either positive or negative infinity, depending on the direction of the overflow. If any rounding occurs for any reason, the result's kCMTimeFlags_HasBeenRounded flag will be set. This flag will also be set if either of the operands has kCMTimeFlags_HasBeenRounded set. If either of the operands is invalid, the result will be invalid. If the operands are valid, but just one operand is infinite, the result will be similarly infinite. If the operands are valid, and both are infinite, the results will be as follows:
          +infinity - +infinity == invalid
        • -infinity - -infinity == invalid
        • +infinity - -infinity == +infinity
        • -infinity - +infinity == -infinity
        If the operands are valid, not infinite, and either or both is indefinite, the result will be indefinite. If the two operands are numeric (ie. valid, not infinite, not indefinite), but have different nonzero epochs, the result will be invalid. If they have the same nonzero epoch, the result will have epoch zero (a duration). Times in different epochs cannot be added or subtracted, because epoch length is unknown. Times in epoch zero are considered to be durations and can be subtracted from times in other epochs. Times in different epochs can be compared, however, because numerically greater epochs always occur after numerically lesser epochs.
        Returns:
        The difference of the two CMTimes (lhs - rhs). API-Since: 4.0
      • CMTimeMultiply

        public static CMTime CMTimeMultiply​(CMTime time,
                                            int multiplier)
        [@function] CMTimeMultiply Returns the product of a CMTime and a 32-bit integer. The result will have the same timescale as the CMTime operand. If the result value overflows, the result timescale will be repeatedly halved until the result value no longer overflows. Again, default rounding will be applied when converting the result to this timescale. If the result value still overflows when timescale == 1, then the result will be either positive or negative infinity, depending on the direction of the overflow. If any rounding occurs for any reason, the result's kCMTimeFlags_HasBeenRounded flag will be set. This flag will also be set if the CMTime operand has kCMTimeFlags_HasBeenRounded set. If the CMTime operand is invalid, the result will be invalid. If the CMTime operand is valid, but infinite, the result will be infinite, and of an appropriate sign, given the signs of both operands. If the CMTime operand is valid, but indefinite, the result will be indefinite.
        Returns:
        The product of the CMTime and the 32-bit integer. API-Since: 4.0
      • CMTimeMultiplyByFloat64

        public static CMTime CMTimeMultiplyByFloat64​(CMTime time,
                                                     double multiplier)
        [@function] CMTimeMultiplyByFloat64 Returns the product of a CMTime and a 64-bit float. The result will initially have the same timescale as the CMTime operand. If the result timescale is less than 65536, it will be repeatedly doubled until it is at least 65536. If the result value overflows, the result timescale will be repeatedly halved until the result value no longer overflows. Again, default rounding will be applied when converting the result to this timescale. If the result value still overflows when timescale == 1, then the result will be either positive or negative infinity, depending on the direction of the overflow. If any rounding occurs for any reason, the result's kCMTimeFlags_HasBeenRounded flag will be set. This flag will also be set if the CMTime operand has kCMTimeFlags_HasBeenRounded set. If the CMTime operand is invalid, the result will be invalid. If the CMTime operand is valid, but infinite, the result will be infinite, and of an appropriate sign, given the signs of both operands. If the CMTime operand is valid, but indefinite, the result will be indefinite.
        Returns:
        The product of the CMTime and the 64-bit float. API-Since: 4.0
      • CMTimeMultiplyByRatio

        public static CMTime CMTimeMultiplyByRatio​(CMTime time,
                                                   int multiplier,
                                                   int divisor)
        [@function] CMTimeMultiplyByRatio Returns the result of multiplying a CMTime by an integer, then dividing by another integer. The exact rational value will be preserved, if possible without overflow. If an overflow would occur, a new timescale will be chosen so as to minimize the rounding error. Default rounding will be applied when converting the result to this timescale. If the result value still overflows when timescale == 1, then the result will be either positive or negative infinity, depending on the direction of the overflow. If any rounding occurs for any reason, the result's kCMTimeFlags_HasBeenRounded flag will be set. This flag will also be set if the CMTime operand has kCMTimeFlags_HasBeenRounded set. If the denominator, and either the time or the numerator, are zero, the result will be kCMTimeInvalid. If only the denominator is zero, the result will be either kCMTimePositiveInfinity or kCMTimeNegativeInfinity, depending on the signs of the other arguments. If time is invalid, the result will be invalid. If time is infinite, the result will be similarly infinite. If time is indefinite, the result will be indefinite.
        Returns:
        (time * multiplier) / divisor API-Since: 7.1
      • CMTimeCompare

        public static int CMTimeCompare​(CMTime time1,
                                        CMTime time2)
        [@function] CMTimeCompare Returns the numerical relationship (-1 = less than, 1 = greater than, 0 = equal) of two CMTimes. If the two CMTimes are numeric (ie. not invalid, infinite, or indefinite), and have different epochs, it is considered that times in numerically larger epochs are always greater than times in numerically smaller epochs. Since this routine will be used to sort lists by time, it needs to give all values (even invalid and indefinite ones) a strict ordering to guarantee that sort algorithms terminate safely. The order chosen is somewhat arbitrary: -infinity < all finite values < indefinite < +infinity < invalid Invalid CMTimes are considered to be equal to other invalid CMTimes, and greater than any other CMTime. Positive infinity is considered to be less than any invalid CMTime, equal to itself, and greater than any other CMTime. An indefinite CMTime is considered to be less than any invalid CMTime, less than positive infinity, equal to itself, and greater than any other CMTime. Negative infinity is considered to be equal to itself, and less than any other CMTime. -1 is returned if time1 is less than time2. 0 is returned if they are equal. 1 is returned if time1 is greater than time2.
        Returns:
        The numerical relationship of the two CMTimes (-1 = less than, 1 = greater than, 0 = equal). API-Since: 4.0
      • CMTimeMinimum

        public static CMTime CMTimeMinimum​(CMTime time1,
                                           CMTime time2)
        [@function] CMTimeMinimum Returns the lesser of two CMTimes (as defined by CMTimeCompare).
        Returns:
        The lesser of the two CMTimes. API-Since: 4.0
      • CMTimeMaximum

        public static CMTime CMTimeMaximum​(CMTime time1,
                                           CMTime time2)
        [@function] CMTimeMaximum Returns the greater of two CMTimes (as defined by CMTimeCompare).
        Returns:
        The greater of the two CMTimes. API-Since: 4.0
      • CMTimeAbsoluteValue

        public static CMTime CMTimeAbsoluteValue​(CMTime time)
        [@function] CMTimeAbsoluteValue Returns the absolute value of a CMTime.
        Returns:
        Same as the argument time, with sign inverted if negative. API-Since: 4.0
      • CMTimeCopyAsDictionary

        @Nullable
        public static @Nullable CFDictionaryRef CMTimeCopyAsDictionary​(CMTime time,
                                                                       @Nullable
                                                                       @Nullable CFAllocatorRef allocator)
        [@function] CMTimeCopyAsDictionary Returns a CFDictionary version of a CMTime. This is useful when putting CMTimes in CF container types.
        Returns:
        A CFDictionary version of the CMTime. API-Since: 4.0
      • CMTimeMakeFromDictionary

        public static CMTime CMTimeMakeFromDictionary​(@Nullable
                                                      @Nullable CFDictionaryRef dictionaryRepresentation)
        [@function] CMTimeMakeFromDictionary Reconstitutes a CMTime struct from a CFDictionary previously created by CMTimeCopyAsDictionary. This is useful when getting CMTimes from CF container types. If the CFDictionary does not have the requisite keyed values, an invalid time is returned.
        Returns:
        The created CMTime. API-Since: 4.0
      • CMTimeCopyDescription

        @Nullable
        public static @Nullable CFStringRef CMTimeCopyDescription​(@Nullable
                                                                  @Nullable CFAllocatorRef allocator,
                                                                  CMTime time)
        [@function] CMTimeCopyDescription Creates a CFString with a description of a CMTime (just like CFCopyDescription). This is used from within CFShow on an object that contains CMTime fields. It is also useful from other client debugging code. The caller owns the returned CFString, and is responsible for releasing it.
        Returns:
        The created CFString description. API-Since: 4.0
      • CMTimeShow

        public static void CMTimeShow​(CMTime time)
        [@function] CMTimeShow Prints a description of the CMTime (just like CFShow). This is most useful from within gdb. API-Since: 4.0
      • CMTimeRangeMake

        public static CMTimeRange CMTimeRangeMake​(CMTime start,
                                                  CMTime duration)
        [@function] CMTimeRangeMake Make a valid CMTimeRange with start and duration. The duration parameter must have an epoch of 0; otherwise an invalid time range will be returned. API-Since: 4.0
        Returns:
        The resulting CMTimeRange.
      • CMTimeRangeGetUnion

        public static CMTimeRange CMTimeRangeGetUnion​(CMTimeRange range,
                                                      CMTimeRange otherRange)
        [@function] CMTimeRangeGetUnion Returns the union of two CMTimeRanges. This function returns a CMTimeRange structure that represents the union of the time ranges specified by the range and otherRange parameters. This is the smallest range that includes all times that are in either range.
        Returns:
        The union of the two CMTimeRanges. API-Since: 4.0
      • CMTimeRangeGetIntersection

        public static CMTimeRange CMTimeRangeGetIntersection​(CMTimeRange range,
                                                             CMTimeRange otherRange)
        [@function] CMTimeRangeGetIntersection Returns the intersection of two CMTimeRanges. This function returns a CMTimeRange structure that represents the intersection of the time ranges specified by the range and otherRange parameters. This is the largest range that both ranges include.
        Returns:
        The intersection of the two CMTimeRanges. API-Since: 4.0
      • CMTimeRangeEqual

        public static byte CMTimeRangeEqual​(CMTimeRange range1,
                                            CMTimeRange range2)
        [@function] CMTimeRangeEqual Returns a Boolean value that indicates whether two CMTimeRanges are identical. This function returns a Boolean value that indicates whether the time ranges specified by the range1 and range2 parameters are identical.
        Returns:
        Returns true if the two time ranges are identical, false if they differ. API-Since: 4.0
      • CMTimeRangeContainsTime

        public static byte CMTimeRangeContainsTime​(CMTimeRange range,
                                                   CMTime time)
        [@function] CMTimeRangeContainsTime Indicates whether a time is contained within a time range. This function returns a Boolean value that indicates whether the time specified by the time parameter is contained within the range specified by the range parameter.
        Returns:
        Returns true if the specified time is contained within the specified time range, false if it is not. API-Since: 4.0
      • CMTimeRangeContainsTimeRange

        public static byte CMTimeRangeContainsTimeRange​(CMTimeRange range,
                                                        CMTimeRange otherRange)
        [@function] CMTimeRangeContainsTimeRange Indicates whether a time range is contained within a time range. This function returns a Boolean value that indicates whether the time range specified by the range parameter contains the range specified by the otherRange parameter.
        Returns:
        Returns true if the second time range is contained within the first time range, false if it is not. API-Since: 4.0
      • CMTimeRangeGetEnd

        public static CMTime CMTimeRangeGetEnd​(CMTimeRange range)
        [@function] CMTimeRangeGetEnd Returns a CMTime structure representing the end of a time range. This function returns a CMTime structure that indicates the end of the time range specified by the range parameter. CMTimeRangeContainsTime(range, CMTimeRangeGetEnd(range)) is always false. API-Since: 4.0
        Returns:
        A CMTime structure representing the end of the specified time range.
      • CMTimeMapTimeFromRangeToRange

        public static CMTime CMTimeMapTimeFromRangeToRange​(CMTime t,
                                                           CMTimeRange fromRange,
                                                           CMTimeRange toRange)
        [@function] CMTimeMapTimeFromRangeToRange Translates a time through a mapping from CMTimeRange to CMTimeRange. The start and end time of fromRange will be mapped to the start and end time of toRange respectively. Other times will be mapped linearly, using the formula: result = (t-fromRange.start)*(toRange.duration/fromRange.duration)+toRange.start If either CMTimeRange argument is empty, an invalid CMTime will be returned. If t does not have the same epoch as fromRange.start, an invalid CMTime will be returned. If both fromRange and toRange have duration kCMTimePositiveInfinity, t will be offset relative to the differences between their starts, but not scaled. API-Since: 4.0
        Returns:
        A CMTime structure representing the translated time.
      • CMTimeClampToRange

        public static CMTime CMTimeClampToRange​(CMTime time,
                                                CMTimeRange range)
        [@function] CMTimeClampToRange For a given CMTime and CMTimeRange, returns the nearest CMTime inside that time range. Times inside the given time range will be returned unmodified. Times before the start and after the end time of the time range will return the start and end time of the range respectively. If the CMTimeRange argument is empty, an invalid CMTime will be returned. If the given CMTime is invalid, the returned CMTime will be invalid, API-Since: 4.0
        Returns:
        A CMTime structure inside the given time range.
      • CMTimeMapDurationFromRangeToRange

        public static CMTime CMTimeMapDurationFromRangeToRange​(CMTime dur,
                                                               CMTimeRange fromRange,
                                                               CMTimeRange toRange)
        [@function] CMTimeMapDurationFromRangeToRange Translates a duration through a mapping from CMTimeRange to CMTimeRange. The duration will be scaled in proportion to the ratio between the ranges' durations: result = dur*(toRange.duration/fromRange.duration) If dur does not have the epoch zero, an invalid CMTime will be returned. API-Since: 4.0
        Returns:
        A CMTime structure representing the translated duration.
      • CMTimeRangeFromTimeToTime

        public static CMTimeRange CMTimeRangeFromTimeToTime​(CMTime start,
                                                            CMTime end)
        [@function] CMTimeRangeFromTimeToTime Make a valid CMTimeRange with the given starting and ending times.
        Returns:
        The resulting CMTimeRange. API-Since: 4.0
      • CMTimeRangeCopyAsDictionary

        @Nullable
        public static @Nullable CFDictionaryRef CMTimeRangeCopyAsDictionary​(CMTimeRange range,
                                                                            @Nullable
                                                                            @Nullable CFAllocatorRef allocator)
        [@function] CMTimeRangeCopyAsDictionary Returns a CFDictionary version of a CMTimeRange. This is useful when putting CMTimeRanges in CF container types.
        Returns:
        A CFDictionary version of the CMTimeRange. API-Since: 4.0
      • CMTimeRangeMakeFromDictionary

        public static CMTimeRange CMTimeRangeMakeFromDictionary​(@NotNull
                                                                @NotNull CFDictionaryRef dictionaryRepresentation)
        [@function] CMTimeRangeMakeFromDictionary Reconstitutes a CMTimeRange struct from a CFDictionary previously created by CMTimeRangeCopyAsDictionary. This is useful when getting CMTimeRanges from CF container types. If the CFDictionary does not have the requisite keyed values, an invalid time range is returned.
        Returns:
        The created CMTimeRange. API-Since: 4.0
      • CMTimeRangeCopyDescription

        @Nullable
        public static @Nullable CFStringRef CMTimeRangeCopyDescription​(@Nullable
                                                                       @Nullable CFAllocatorRef allocator,
                                                                       CMTimeRange range)
        [@function] CMTimeRangeCopyDescription Creates a CFString with a description of a CMTimeRange (just like CFCopyDescription). This is used from within CFShow on an object that contains CMTimeRange fields. It is also useful from other client debugging code. The caller owns the returned CFString and is responsible for releasing it.
        Returns:
        The created CFString description. API-Since: 4.0
      • CMTimeRangeShow

        public static void CMTimeRangeShow​(CMTimeRange range)
        [@function] CMTimeRangeShow Prints a description of the CMTimeRange (just like CFShow). This is most useful from within gdb. API-Since: 4.0
      • CMTimeMappingMake

        public static CMTimeMapping CMTimeMappingMake​(CMTimeRange source,
                                                      CMTimeRange target)
        [@function] CMTimeMappingMake Make a valid CMTimeMapping with source and target. The source and target parameters must have durations whose epoch is 0; otherwise an invalid time mapping will be returned. API-Since: 9.0
        Returns:
        The resulting CMTimeMapping.
      • CMTimeMappingMakeEmpty

        public static CMTimeMapping CMTimeMappingMakeEmpty​(CMTimeRange target)
        [@function] CMTimeMappingMakeEmpty Make a valid CMTimeMapping with an empty source. The target parameter must have a duration whose epoch is 0; otherwise an invalid time mapping will be returned. API-Since: 9.0
        Returns:
        The resulting CMTimeMapping.
      • CMTimeMappingCopyAsDictionary

        @Nullable
        public static @Nullable CFDictionaryRef CMTimeMappingCopyAsDictionary​(CMTimeMapping mapping,
                                                                              @Nullable
                                                                              @Nullable CFAllocatorRef allocator)
        [@function] CMTimeMappingCopyAsDictionary Returns a CFDictionary version of a CMTimeMapping. This is useful when putting CMTimeMappings in CF container types.
        Returns:
        A CFDictionary version of the CMTimeMapping. API-Since: 9.0
      • CMTimeMappingMakeFromDictionary

        public static CMTimeMapping CMTimeMappingMakeFromDictionary​(@NotNull
                                                                    @NotNull CFDictionaryRef dictionaryRepresentation)
        [@function] CMTimeMappingMakeFromDictionary Reconstitutes a CMTimeMapping struct from a CFDictionary previously created by CMTimeMappingCopyAsDictionary. This is useful when getting CMTimeMappings from CF container types. If the CFDictionary does not have the requisite keyed values, an invalid time mapping is returned.
        Returns:
        The created CMTimeMapping. API-Since: 9.0
      • CMTimeMappingCopyDescription

        @Nullable
        public static @Nullable CFStringRef CMTimeMappingCopyDescription​(@Nullable
                                                                         @Nullable CFAllocatorRef allocator,
                                                                         CMTimeMapping mapping)
        [@function] CMTimeMappingCopyDescription Creates a CFString with a description of a CMTimeMapping (just like CFCopyDescription). This is used from within CFShow on an object that contains CMTimeMapping fields. It is also useful from other client debugging code. The caller owns the returned CFString and is responsible for releasing it.
        Returns:
        The created CFString description. API-Since: 9.0
      • CMTimeMappingShow

        public static void CMTimeMappingShow​(CMTimeMapping mapping)
        [@function] CMTimeMappingShow Prints a description of a CMTimeMapping (just like CFShow). This is most useful from within gdb. API-Since: 9.0
      • CMSetAttachment

        public static void CMSetAttachment​(@NotNull
                                           @NotNull org.moe.natj.general.ptr.ConstVoidPtr target,
                                           @NotNull
                                           @NotNull CFStringRef key,
                                           @Nullable
                                           @Nullable org.moe.natj.general.ptr.ConstVoidPtr value,
                                           int attachmentMode)
        [@function] CMSetAttachment Sets or adds a attachment of a CMAttachmentBearer You can attach any CF object to a CMAttachmentBearer object to store additional information. CMSetAttachment stores an attachment identified by a key. If the key doesn't exist, the attachment will be added. If the key does exist, the existing attachment will be replaced. In both cases the retain count of the attachment will be incremented. The value can be any CFType but nil has no defined behavior. Given a CVBufferRef, CMSetAttachment is equivalent to CVBufferSetAttachment.
        Parameters:
        target - Target CMAttachmentBearer.
        key - Key in form of a CFString identifying the desired attachment.
        value - Attachment in form af a CF object.
        attachmentMode - Specifies which attachment mode is desired for this attachment. A particular attachment key may only exist in a single mode at a time. API-Since: 4.0
      • CMGetAttachment

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMGetAttachment​(@NotNull
                                                                                      @NotNull org.moe.natj.general.ptr.ConstVoidPtr target,
                                                                                      @NotNull
                                                                                      @NotNull CFStringRef key,
                                                                                      @Nullable
                                                                                      @Nullable org.moe.natj.general.ptr.IntPtr attachmentModeOut)
        [@function] CMGetAttachment Returns a specific attachment of a CMAttachmentBearer You can attach any CF object to a CMAttachmentBearer to store additional information. CMGetAttachment retrieves an attachment identified by a key. Given a CVBufferRef, CMGetAttachment is equivalent to CVBufferGetAttachment.
        Parameters:
        target - Target CMAttachmentBearer.
        key - Key in form of a CFString identifying the desired attachment.
        attachmentModeOut - Returns the mode of the attachment, if desired. May be NULL.
        Returns:
        If found the attachment object; else NULL. API-Since: 4.0
      • CMRemoveAttachment

        public static void CMRemoveAttachment​(@NotNull
                                              @NotNull org.moe.natj.general.ptr.ConstVoidPtr target,
                                              @NotNull
                                              @NotNull CFStringRef key)
        [@function] CMRemoveAttachment Removes a specific attachment of a CMAttachmentBearer CMRemoveAttachment removes an attachment identified by a key. If found the attachment is removed and the retain count decremented. Given a CVBufferRef, CMRemoveAttachment is equivalent to CVBufferRemoveAttachment.
        Parameters:
        target - Target CMAttachmentBearer.
        key - Key in form of a CFString identifying the desired attachment. API-Since: 4.0
      • CMRemoveAllAttachments

        public static void CMRemoveAllAttachments​(@NotNull
                                                  @NotNull org.moe.natj.general.ptr.ConstVoidPtr target)
        [@function] CMRemoveAllAttachments Removes all attachments of a CMAttachmentBearer While CMRemoveAttachment removes a specific attachment identified by a key CMRemoveAllAttachments removes all attachments of a buffer and decrements their retain counts. Given a CVBufferRef, CMRemoveAllAttachments is equivalent to CVBufferRemoveAllAttachments.
        Parameters:
        target - Target CMAttachmentBearer. API-Since: 4.0
      • CMCopyDictionaryOfAttachments

        @Nullable
        public static @Nullable CFDictionaryRef CMCopyDictionaryOfAttachments​(@Nullable
                                                                              @Nullable CFAllocatorRef allocator,
                                                                              @NotNull
                                                                              @NotNull org.moe.natj.general.ptr.ConstVoidPtr target,
                                                                              int attachmentMode)
        [@function] CMCopyDictionaryOfAttachments Returns all attachments of a CMAttachmentBearer CMCopyDictionaryOfAttachments is a convenience call that returns all attachments with their corresponding keys in a new CFDictionary that the caller must dispose by calling CFRelease. Given a CVBufferRef, CMCopyDictionaryOfAttachments is similar to CVBufferGetAttachments, except that CVBufferGetAttachments returns a CFDictionary that may change if attachments are added later.
        Parameters:
        allocator - Allocator for the new dictionary; pass kCFAllocatorDefault or NULL to use the default allocator.
        target - Target CMAttachmentBearer.
        Returns:
        A CFDictionary with all buffer attachments identified by there keys. If no attachment is present, NULL is returned. Returns NULL for invalid attachment mode. API-Since: 4.0
      • CMSetAttachments

        public static void CMSetAttachments​(@NotNull
                                            @NotNull org.moe.natj.general.ptr.ConstVoidPtr target,
                                            @NotNull
                                            @NotNull CFDictionaryRef theAttachments,
                                            int attachmentMode)
        [@function] CMSetAttachments Sets a set of attachments for a CMAttachmentBearer CMSetAttachments is a convenience call that in turn calls CMSetAttachment for each key and value in the given dictionary. All key value pairs must be in the root level of the dictionary. Given a CVBufferRef, CMSetAttachments is equivalent to CVBufferSetAttachments.
        Parameters:
        target - Target CMAttachmentBearer. API-Since: 4.0
      • CMPropagateAttachments

        public static void CMPropagateAttachments​(@NotNull
                                                  @NotNull org.moe.natj.general.ptr.ConstVoidPtr source,
                                                  @NotNull
                                                  @NotNull org.moe.natj.general.ptr.ConstVoidPtr destination)
        [@function] CMPropagateAttachments Copy all propagatable attachments from one buffer to another. CMPropagateAttachments is a convenience call that copies all attachments with a mode of kCMAttachmentMode_ShouldPropagate from one buffer to another. Given a CVBufferRef, CMPropagateAttachments is equivalent to CVBufferPropagateAttachments.
        Parameters:
        source - CMAttachmentBearer to copy attachments from.
        destination - CMAttachmentBearer to copy attachments to. API-Since: 4.0
      • CMBlockBufferCreateEmpty

        public static int CMBlockBufferCreateEmpty​(@Nullable
                                                   @Nullable CFAllocatorRef structureAllocator,
                                                   int subBlockCapacity,
                                                   int flags,
                                                   @NotNull
                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMBlockBufferCreateEmpty Creates an empty CMBlockBuffer Creates an empty CMBlockBuffer, i.e. one which has no memory block nor reference to a CMBlockBuffer supplying bytes to it. It is ready to be populated using CMBlockBufferAppendMemoryBlock() and/or CMBlockBufferAppendBufferReference(). CMBlockBufferGetDataLength() will return zero for an empty CMBlockBuffer and CMBlockBufferGetDataPointer() and CMBlockBufferAssureBufferMemory() will fail. The memory for the CMBlockBuffer object will be allocated using the given allocator. If NULL is passed for the allocator, the default allocator is used.
        Parameters:
        structureAllocator - Allocator to use for allocating the CMBlockBuffer object. NULL will cause the default allocator to be used.
        subBlockCapacity - Number of subBlocks the newBlockBuffer shall accommodate before expansion occurs. A value of zero means "do the reasonable default"
        flags - Feature and control flags
        blockBufferOut - Receives newly-created empty CMBlockBuffer object with retain count of 1. Must not be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferCreateWithMemoryBlock

        public static int CMBlockBufferCreateWithMemoryBlock​(@Nullable
                                                             @Nullable CFAllocatorRef structureAllocator,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.VoidPtr memoryBlock,
                                                             long blockLength,
                                                             @Nullable
                                                             @Nullable CFAllocatorRef blockAllocator,
                                                             @Nullable
                                                             @Nullable CMBlockBufferCustomBlockSource customBlockSource,
                                                             long offsetToData,
                                                             long dataLength,
                                                             int flags,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMBlockBufferCreateWithMemoryBlock Creates a new CMBlockBuffer backed by a memory block (or promise thereof). Creates a new CMBlockBuffer backed by a memory block. The memory block may be statically allocated, dynamically allocated using the given allocator (or customBlockSource) or not yet allocated. The returned CMBlockBuffer may be further expanded using CMBlockBufferAppendMemoryBlock() and/or CMBlockBufferAppendBufferReference(). If the kCMBlockBufferAssureMemoryNowFlag is set in the flags parameter, the memory block is allocated immediately using the blockAllocator or customBlockSource.
        Parameters:
        structureAllocator - Allocator to use for allocating the CMBlockBuffer object. NULL will cause the default allocator to be used.
        memoryBlock - Block of memory to hold buffered data. If NULL, a memory block will be allocated when needed (via a call to CMBlockBufferAssureBlockMemory()) using the provided blockAllocator or customBlockSource. If non-NULL, the block will be used and will be deallocated when the new CMBlockBuffer is finalized (i.e. released for the last time).
        blockLength - Overall length of the memory block in bytes. Must not be zero. This is the size of the supplied memory block or the size to allocate if memoryBlock is NULL.
        blockAllocator - Allocator to be used for allocating the memoryBlock, if memoryBlock is NULL. If memoryBlock is non-NULL, this allocator will be used to deallocate it if provided. Passing NULL will cause the default allocator (as set at the time of the call) to be used. Pass kCFAllocatorNull if no deallocation is desired.
        customBlockSource - If non-NULL, it will be used for the allocation and freeing of the memory block (the blockAllocator parameter is ignored). If provided, and the memoryBlock parameter is NULL, its Allocate() routine must be non-NULL. Allocate will be called once, if successful, when the memoryBlock is allocated. Free() will be called once when the CMBlockBuffer is disposed.
        offsetToData - Offset within the memoryBlock at which the CMBlockBuffer should refer to data.
        dataLength - Number of relevant data bytes, starting at offsetToData, within the memory block.
        flags - Feature and control flags
        blockBufferOut - Receives newly-created CMBlockBuffer object with a retain count of 1. Must not be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferCreateWithBufferReference

        public static int CMBlockBufferCreateWithBufferReference​(@Nullable
                                                                 @Nullable CFAllocatorRef structureAllocator,
                                                                 @NotNull
                                                                 @NotNull CMBlockBufferRef bufferReference,
                                                                 long offsetToData,
                                                                 long dataLength,
                                                                 int flags,
                                                                 @NotNull
                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMBlockBufferCreateWithBufferReference Creates a new CMBlockBuffer that refers to another CMBlockBuffer. Creates a new CMBlockBuffer that refers to (a possibly subset portion of) another CMBlockBuffer. The returned CMBlockBuffer may be further expanded using CMBlockBufferAppendMemoryBlock() and/or CMBlockBufferAppendBufferReference().
        Parameters:
        structureAllocator - Allocator to use for allocating the CMBlockBuffer object. NULL will cause the default allocator to be used.
        bufferReference - CMBlockBuffer to refer to. This parameter must not be NULL. Unless the kCMBlockBufferPermitEmptyReferenceFlag is passed, it must not be empty and it must have a data length at least large enough to supply the data subset specified (i.e. offsetToData+dataLength bytes).
        offsetToData - Offset within the reference CMBlockBuffer at which the new CMBlockBuffer should refer to data.
        dataLength - Number of relevant data bytes, starting at offsetToData, within the target CMBlockBuffer.
        flags - Feature and control flags
        blockBufferOut - Receives newly-created CMBlockBuffer object with a retain count of 1. Must not be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferCreateContiguous

        public static int CMBlockBufferCreateContiguous​(@Nullable
                                                        @Nullable CFAllocatorRef structureAllocator,
                                                        @NotNull
                                                        @NotNull CMBlockBufferRef sourceBuffer,
                                                        @Nullable
                                                        @Nullable CFAllocatorRef blockAllocator,
                                                        @Nullable
                                                        @Nullable CMBlockBufferCustomBlockSource customBlockSource,
                                                        long offsetToData,
                                                        long dataLength,
                                                        int flags,
                                                        @NotNull
                                                        @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMBlockBufferCreateContiguous Produces a CMBlockBuffer containing a contiguous copy of or reference to the data specified by the parameters. Produces a CMBlockBuffer containing a contiguous copy of or reference to the data specified by the parameters. The resulting new CMBlockBuffer may contain an allocated copy of the data, or may contain a contiguous CMBlockBuffer reference. If the kCMBlockBufferAlwaysCopyDataFlag is set in the flags parameter, the resulting CMBlockBuffer will contain an allocated copy of the data rather than a reference to sourceBuffer.
        Parameters:
        structureAllocator - Allocator to use for allocating the CMBlockBuffer object. NULL will cause the default allocator to be used.
        sourceBuffer - CMBlockBuffer from which data will be copied or referenced. Must not be NULL nor empty,
        blockAllocator - Allocator to be used for allocating the memoryBlock if a contiguous copy of the data is to be made. Passing NULL will cause the default allocator (as set at the time of the call) to be used.
        customBlockSource - If non-NULL, it will be used for the allocation and freeing of the memory block (the blockAllocator parameter is ignored). If provided, and the memoryBlock parameter is NULL, its Allocate() routine must be non-NULL. Allocate will be called once, if successful, when the memoryBlock is allocated. Free() will be called once when the CMBlockBuffer is disposed.
        offsetToData - Offset within the source CMBlockBuffer at which the new CMBlockBuffer should obtain data.
        dataLength - Number of relevant data bytes, starting at offsetToData, within the source CMBlockBuffer. If zero, the target buffer's total available dataLength (starting at offsetToData) will be referenced.
        flags - Feature and control flags
        blockBufferOut - Receives newly-created CMBlockBuffer object with a retain count of 1. Must not be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if successful API-Since: 4.0
      • CMBlockBufferGetTypeID

        public static long CMBlockBufferGetTypeID()
        [@function] CMBlockBufferGetTypeID Obtains the CoreFoundation type ID for the CMBlockBuffer type. Obtains the CoreFoundation type ID for the CMBlockBuffer type.
        Returns:
        Returns the CFTypeID corresponding to CMBlockBuffer. API-Since: 4.0
      • CMBlockBufferAppendMemoryBlock

        public static int CMBlockBufferAppendMemoryBlock​(@NotNull
                                                         @NotNull CMBlockBufferRef theBuffer,
                                                         @Nullable
                                                         @Nullable org.moe.natj.general.ptr.VoidPtr memoryBlock,
                                                         long blockLength,
                                                         @Nullable
                                                         @Nullable CFAllocatorRef blockAllocator,
                                                         @Nullable
                                                         @Nullable CMBlockBufferCustomBlockSource customBlockSource,
                                                         long offsetToData,
                                                         long dataLength,
                                                         int flags)
        [@function] CMBlockBufferAppendMemoryBlock Adds a memoryBlock to an existing CMBlockBuffer. Adds a memoryBlock to an existing CMBlockBuffer. The memory block may be statically allocated, dynamically allocated using the given allocator or not yet allocated. The CMBlockBuffer's total data length will be increased by the specified dataLength. If the kCMBlockBufferAssureMemoryNowFlag is set in the flags parameter, the memory block is allocated immediately using the blockAllocator or customBlockSource. Note that append operations are not thread safe, so care must be taken when appending to BlockBuffers that are used by multiple threads.
        Parameters:
        theBuffer - CMBlockBuffer to which the new memoryBlock will be added. Must not be NULL
        memoryBlock - Block of memory to hold buffered data. If NULL, a memory block will be allocated when needed (via a call to CMBlockBufferAssureBlockMemory()) using the provided blockAllocator or customBlockSource. If non-NULL, the block will be used and will be deallocated when the CMBlockBuffer is finalized (i.e. released for the last time).
        blockLength - Overall length of the memory block in bytes. Must not be zero. This is the size of the supplied memory block or the size to allocate if memoryBlock is NULL.
        blockAllocator - Allocator to be used for allocating the memoryBlock, if memoryBlock is NULL. If memoryBlock is non-NULL, this allocator will be used to deallocate it if provided. Passing NULL will cause the default allocator (as set at the time of the call) to be used. Pass kCFAllocatorNull if no deallocation is desired.
        customBlockSource - If non-NULL, it will be used for the allocation and freeing of the memory block (the blockAllocator parameter is ignored). If provided, and the memoryBlock parameter is NULL, its Allocate() routine must be non-NULL. Allocate will be called once, if successful, when the memoryBlock is allocated. Free() will be called once when the CMBlockBuffer is disposed.
        offsetToData - Offset within the memoryBlock at which the CMBlockBuffer should refer to data.
        dataLength - Number of relevant data bytes, starting at offsetToData, within the memory block.
        flags - Feature and control flags
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferAppendBufferReference

        public static int CMBlockBufferAppendBufferReference​(@NotNull
                                                             @NotNull CMBlockBufferRef theBuffer,
                                                             @NotNull
                                                             @NotNull CMBlockBufferRef targetBBuf,
                                                             long offsetToData,
                                                             long dataLength,
                                                             int flags)
        [@function] CMBlockBufferAppendBufferReference Adds a CMBlockBuffer reference to an existing CMBlockBuffer. Adds a buffer reference to (a possibly subset portion of) another CMBlockBuffer to an existing CMBlockBuffer. The CMBlockBuffer's total data length will be increased by the specified dataLength. Note that append operations are not thread safe, so care must be taken when appending to BlockBuffers that are used by multiple threads.
        Parameters:
        theBuffer - CMBlockBuffer to which the new CMBlockBuffer reference will be added. Must not be NULL
        targetBBuf - CMBlockBuffer to refer to. This parameter must not be NULL. Unless the kCMBlockBufferPermitEmptyReferenceFlag is passed, it must not be empty and it must have a data length at least large enough to supply the data subset specified (i.e. offsetToData+dataLength bytes).
        offsetToData - Offset within the target CMBlockBuffer at which the CMBlockBuffer should refer to data.
        dataLength - Number of relevant data bytes, starting at offsetToData, within the target CMBlockBuffer. If zero, the target buffer's total available dataLength (starting at offsetToData) will be referenced.
        flags - Feature and control flags
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferAssureBlockMemory

        public static int CMBlockBufferAssureBlockMemory​(@NotNull
                                                         @NotNull CMBlockBufferRef theBuffer)
        [@function] CMBlockBufferAssureBlockMemory Assures all memory blocks in a CMBlockBuffer are allocated. Traverses the possibly complex CMBlockBuffer, allocating the memory for any constituent memory blocks that are not yet allocated.
        Parameters:
        theBuffer - CMBlockBuffer to operate on. Must not be NULL
        Returns:
        Returns kCMBlockBufferNoErr if successful. API-Since: 4.0
      • CMBlockBufferAccessDataBytes

        public static int CMBlockBufferAccessDataBytes​(@NotNull
                                                       @NotNull CMBlockBufferRef theBuffer,
                                                       long offset,
                                                       long length,
                                                       @NotNull
                                                       @NotNull org.moe.natj.general.ptr.VoidPtr temporaryBlock,
                                                       @NotNull
                                                       @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.general.ptr.BytePtr> returnedPointerOut)
        [@function] CMBlockBufferAccessDataBytes Accesses potentially noncontiguous data in a CMBlockBuffer. Used for accessing potentially noncontiguous data, this routine will return a pointer directly into the given CMBlockBuffer if possible, otherwise the data will be assembled and copied into the given temporary block and its pointer will be returned.
        Parameters:
        theBuffer - CMBlockBuffer to operate on. Must not be NULL
        offset - Offset within the CMBlockBuffer's offset range.
        length - Desired number of bytes to access at offset
        temporaryBlock - A piece of memory, assumed to be at least length bytes in size. Must not be NULL
        returnedPointerOut - Receives NULL if the desired amount of data could not be accessed at the given offset. Receives non-NULL if it could. The value returned will either be a direct pointer into the CMBlockBuffer or temporaryBlock Must not be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if the desired amount of data could be accessed at the given offset. API-Since: 4.0
      • CMBlockBufferCopyDataBytes

        public static int CMBlockBufferCopyDataBytes​(@NotNull
                                                     @NotNull CMBlockBufferRef theSourceBuffer,
                                                     long offsetToData,
                                                     long dataLength,
                                                     @NotNull
                                                     @NotNull org.moe.natj.general.ptr.VoidPtr destination)
        [@function] CMBlockBufferCopyDataBytes Copies bytes from a CMBlockBuffer into a provided memory area. This function is used to copy bytes out of a CMBlockBuffer into a provided piece of memory. It deals with the possibility of the desired range of data being noncontiguous. The function assumes that the memory at the destination is sufficient to hold the data. If length bytes of data are not available in the CMBlockBuffer, an error is returned and the contents of the destination are undefined.
        Parameters:
        theSourceBuffer - The buffer from which data will be copied into the destination
        offsetToData - Offset within the source CMBlockBuffer at which the copy should begin.
        dataLength - Number of bytes to copy, starting at offsetToData, within the source CMBlockBuffer. Must not be zero.
        destination - Memory into which the data should be copied.
        Returns:
        Returns kCMBlockBufferNoErr if the copy succeeded, returns an error otherwise. API-Since: 4.0
      • CMBlockBufferReplaceDataBytes

        public static int CMBlockBufferReplaceDataBytes​(@NotNull
                                                        @NotNull org.moe.natj.general.ptr.ConstVoidPtr sourceBytes,
                                                        @NotNull
                                                        @NotNull CMBlockBufferRef destinationBuffer,
                                                        long offsetIntoDestination,
                                                        long dataLength)
        [@function] CMBlockBufferReplaceDataBytes Copies bytes from a given memory block into a CMBlockBuffer, replacing bytes in the underlying data blocks This function is used to replace bytes in a CMBlockBuffer's memory blocks with those from a provided piece of memory. It deals with the possibility of the destination range of data being noncontiguous. CMBlockBufferAssureBlockMemory() is called on the given CMBlockBuffer. If desired range is subsequently not accessible in the CMBlockBuffer, an error is returned and the contents of the CMBlockBuffer are untouched.
        Parameters:
        sourceBytes - Memory block from which bytes are copied into the CMBlockBuffer
        destinationBuffer - CMBlockBuffer whose range of bytes will be replaced by the sourceBytes.
        offsetIntoDestination - Offset within the destination CMBlockBuffer at which replacement should begin.
        dataLength - Number of bytes to be replaced, starting at offsetIntoDestination, in the destinationBuffer.
        Returns:
        Returns kCMBlockBufferNoErr if the replacement succeeded, returns an error otherwise. API-Since: 4.0
      • CMBlockBufferFillDataBytes

        public static int CMBlockBufferFillDataBytes​(byte fillByte,
                                                     @NotNull
                                                     @NotNull CMBlockBufferRef destinationBuffer,
                                                     long offsetIntoDestination,
                                                     long dataLength)
        [@function] CMBlockBufferFillDataBytes Fills a CMBlockBuffer with a given byte value, replacing bytes in the underlying data blocks This function is used to fill bytes in a CMBlockBuffer's memory blocks with a given byte value. It deals with the possibility of the destination range of data being noncontiguous. CMBlockBufferAssureBlockMemory() is called on the given CMBlockBuffer. If desired range is subsequently not accessible in the CMBlockBuffer, an error is returned and the contents of the CMBlockBuffer are untouched.
        Parameters:
        fillByte - The value with which to fill the specified data range
        destinationBuffer - CMBlockBuffer whose range of bytes will be filled.
        offsetIntoDestination - Offset within the destination CMBlockBuffer at which filling should begin.
        dataLength - Number of bytes to be filled, starting at offsetIntoDestination, in the destinationBuffer. If zero, the destinationBuffer's total available dataLength (starting at offsetToData) will be filled.
        Returns:
        Returns kCMBlockBufferNoErr if the fill succeeded, returns an error otherwise. API-Since: 4.0
      • CMBlockBufferGetDataPointer

        public static int CMBlockBufferGetDataPointer​(@NotNull
                                                      @NotNull CMBlockBufferRef theBuffer,
                                                      long offset,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.NUIntPtr lengthAtOffsetOut,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.NUIntPtr totalLengthOut,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.Ptr<org.moe.natj.general.ptr.BytePtr> dataPointerOut)
        [@function] CMBlockBufferGetDataPointer Gains access to the data represented by a CMBlockBuffer. Gains access to the data represented by a CMBlockBuffer. A pointer into a memory block is returned which corresponds to the offset within the CMBlockBuffer. The number of bytes addressable at the pointer can also be returned. This length-at-offset may be smaller than the number of bytes actually available starting at the offset if the dataLength of the CMBlockBuffer is covered by multiple memory blocks (a noncontiguous CMBlockBuffer). The data pointer returned will remain valid as long as the original CMBlockBuffer is referenced - once the CMBlockBuffer is released for the last time, any pointers into it will be invalid.
        Parameters:
        theBuffer - CMBlockBuffer to operate on. Must not be NULL
        offset - Offset within the buffer's offset range.
        lengthAtOffsetOut - On return, contains the amount of data available at the specified offset. May be NULL.
        totalLengthOut - On return, contains the block buffer's total data length (from offset 0). May be NULL. The caller can compare (offset+lengthAtOffset) with totalLength to determine whether the entire CMBlockBuffer has been referenced and whether it is possible to access the CMBlockBuffer's data with a contiguous reference.
        dataPointerOut - On return, contains a pointer to the data byte at the specified offset; lengthAtOffset bytes are available at this address. May be NULL.
        Returns:
        Returns kCMBlockBufferNoErr if data was accessible at the specified offset within the given CMBlockBuffer, false otherwise. API-Since: 4.0
      • CMBlockBufferGetDataLength

        public static long CMBlockBufferGetDataLength​(@NotNull
                                                      @NotNull CMBlockBufferRef theBuffer)
        [@function] CMBlockBufferGetDataLength Obtains the total data length reachable via a CMBlockBuffer. Obtains the total data length reachable via a CMBlockBuffer. This total is the sum of the dataLengths of the CMBlockBuffer's memoryBlocks and buffer references. Note that the dataLengths are the _portions_ of those constituents that this CMBlockBuffer subscribes to. This CMBlockBuffer presents a contiguous range of offsets from zero to its totalDataLength as returned by this routine.
        Parameters:
        theBuffer - CMBlockBuffer to examine.
        Returns:
        Returns the total data length available via this CMBlockBuffer, or zero if it is empty, NULL, or somehow invalid. API-Since: 4.0
      • CMBlockBufferIsRangeContiguous

        public static byte CMBlockBufferIsRangeContiguous​(@NotNull
                                                          @NotNull CMBlockBufferRef theBuffer,
                                                          long offset,
                                                          long length)
        [@function] CMBlockBufferIsRangeContiguous Determines whether the specified range within the given CMBlockBuffer is contiguous. Determines whether the specified range within the given CMBlockBuffer is contiguous. if CMBlockBufferGetDataPointer() were to be called with the same parameters, the returned pointer would address the desired number of bytes.
        Parameters:
        theBuffer - CMBlockBuffer to examine. Must not be NULL
        offset - Offset within the buffer's offset range.
        length - Desired number of bytes to access at offset. If zero, the number of bytes available at offset (dataLength – offset), contiguous or not, is used.
        Returns:
        Returns true if the specified range is contiguous within the CMBlockBuffer, false otherwise. Also returns false if the CMBlockBuffer is NULL or empty. API-Since: 4.0
      • CMBlockBufferIsEmpty

        public static byte CMBlockBufferIsEmpty​(@NotNull
                                                @NotNull CMBlockBufferRef theBuffer)
        [@function] CMBlockBufferIsEmpty Indicates whether the given CMBlockBuffer is empty. Indicates whether the given CMBlockBuffer is empty, i.e., devoid of any memoryBlocks or CMBlockBuffer references. Note that a CMBlockBuffer containing a not-yet allocated memoryBlock is not considered empty.
        Parameters:
        theBuffer - CMBlockBuffer to examine. Must not be NULL
        Returns:
        Returns the result of the emptiness test. Will return false if the CMBlockBuffer is NULL. API-Since: 4.0
      • CMFormatDescriptionCreate

        public static int CMFormatDescriptionCreate​(@Nullable
                                                    @Nullable CFAllocatorRef allocator,
                                                    int mediaType,
                                                    int mediaSubType,
                                                    @Nullable
                                                    @Nullable CFDictionaryRef extensions,
                                                    @NotNull
                                                    @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMFormatDescriptionCreate Creates a generic CMFormatDescription object. Use this call to create any CMFormatDescription that is composed solely of extensions, and for which CFEqual() of a the extensions dictionaries is a valid test for Format Description equality. Note that for some media types using this routine may result in creating a format description that is not fully specified for the purpose of media processing. Whenever possible, use media-specific format description creations routines such as CMVideoFormatDescriptionCreate, CMAudioFormatDescriptionCreate, etc.
        Returns:
        A new CMFormatDescription object. API-Since: 4.0
      • CMFormatDescriptionGetTypeID

        public static long CMFormatDescriptionGetTypeID()
        [@function] CMFormatDescriptionGetTypeID Returns the CFTypeID of CMFormatDescription objects. You can check if a CFTypeRef object is actually a CMFormatDescription by comparing CFGetTypeID(object) with CMFormatDescriptionGetTypeID(). API-Since: 4.0
      • CMFormatDescriptionEqual

        public static byte CMFormatDescriptionEqual​(@Nullable
                                                    @Nullable CMFormatDescriptionRef formatDescription,
                                                    @Nullable
                                                    @Nullable CMFormatDescriptionRef otherFormatDescription)
        [@function] CMFormatDescriptionEqual Compares two CMFormatDescription objects for equality. This calls CFEqual on the provided CMFormatDescription objects. In contrast to the CF call it is NULL safe. API-Since: 4.0
      • CMFormatDescriptionEqualIgnoringExtensionKeys

        public static byte CMFormatDescriptionEqualIgnoringExtensionKeys​(@Nullable
                                                                         @Nullable CMFormatDescriptionRef formatDescription,
                                                                         @Nullable
                                                                         @Nullable CMFormatDescriptionRef otherFormatDescription,
                                                                         @Nullable
                                                                         @Nullable org.moe.natj.general.ptr.ConstVoidPtr formatDescriptionExtensionKeysToIgnore,
                                                                         @Nullable
                                                                         @Nullable org.moe.natj.general.ptr.ConstVoidPtr sampleDescriptionExtensionAtomKeysToIgnore)
        [@function] CMFormatDescriptionEqualIgnoringExtensionKeys Compares two CMFormatDescription objects for equality, ignoring differences in specified lists of format description extension keys and sample description extension keys. This function is NULL safe. If any keys are passed, kCMFormatDescriptionExtension_VerbatimSampleDescription and kCMFormatDescriptionExtension_VerbatimISOSampleEntry will also be automatically ignored for the purpose of comparison.
        Parameters:
        formatDescriptionExtensionKeysToIgnore - Either a single format description extension key (CFString) or a CFArray of such keys.
        sampleDescriptionExtensionAtomKeysToIgnore - Either a single sample description extension atom key (four-character CFString) or a CFArray of such keys. See kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms. API-Since: 4.3
      • CMFormatDescriptionGetMediaType

        public static int CMFormatDescriptionGetMediaType​(@NotNull
                                                          @NotNull CMFormatDescriptionRef desc)
        [@function] CMFormatDescriptionGetMediaType Returns the media type of a CMFormatDescription. For example, returns kCMMediaType_Audio for a description of an audio stream.
        Returns:
        The media type of the CMFormatDescription. API-Since: 4.0
      • CMFormatDescriptionGetMediaSubType

        public static int CMFormatDescriptionGetMediaSubType​(@NotNull
                                                             @NotNull CMFormatDescriptionRef desc)
        [@function] CMFormatDescriptionGetMediaSubType Returns the media subtype of a CMFormatDescription. The media subtype is defined in a media-specific way. For audio streams, the media subtype is the asbd.mFormatID. For video streams, the media subtype is the video codec type. For muxed streams, it is the format of the muxed stream. For example, 'aac ' is returned for a description of an AAC audio stream, 'avc1' is returned for a description of an H.264 video stream, and 'mp2t' is returned for a description of an MPEG-2 transport (muxed) stream. If a particular type of media stream does not have subtypes, this API may return 0.
        Returns:
        The media subtype of the CMFormatDescription. API-Since: 4.0
      • CMFormatDescriptionGetExtensions

        @Nullable
        public static @Nullable CFDictionaryRef CMFormatDescriptionGetExtensions​(@NotNull
                                                                                 @NotNull CMFormatDescriptionRef desc)
        [@function] CMFormatDescriptionGetExtensions Returns an immutable dictionary containing all the extensions of a CMFormatDescription. If there are no extensions, NULL is returned. Extensions dictionaries are valid property list objects. This means that dictionary keys are all CFStrings, and the values are all either CFNumber, CFString, CFBoolean, CFArray, CFDictionary, CFDate, or CFData. The returned dictionary is not retained by this call, so clients are required to retain it if they need to keep it longer.
        Returns:
        An immutable dictionary containing all the extensions of the CMFormatDescription. May be NULL. API-Since: 4.0
      • CMFormatDescriptionGetExtension

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMFormatDescriptionGetExtension​(@NotNull
                                                                                                      @NotNull CMFormatDescriptionRef desc,
                                                                                                      @NotNull
                                                                                                      @NotNull CFStringRef extensionKey)
        [@function] CMFormatDescriptionGetExtension Returns the specified extension of a CMFormatDescription. If the named extension does not exist, NULL is returned. The extension is always a valid property list object. This means that it will be either a CFNumber, CFString, CFBoolean, CFArray, CFDictionary, CFDate, or CFData. If it is a CFDictionary, the keys will all be CFStrings. The returned extension is not retained by this call, so it is only valid as long as the CMFormatDescription is valid. Clients are required to retain it if they need to keep it longer.
        Returns:
        The specified extension of the CMFormatDescription. May be NULL. API-Since: 4.0
      • CMAudioFormatDescriptionCreate

        public static int CMAudioFormatDescriptionCreate​(@Nullable
                                                         @Nullable CFAllocatorRef allocator,
                                                         @NotNull
                                                         @NotNull AudioStreamBasicDescription asbd,
                                                         long layoutSize,
                                                         @Nullable
                                                         @Nullable AudioChannelLayout layout,
                                                         long magicCookieSize,
                                                         @Nullable
                                                         @Nullable org.moe.natj.general.ptr.ConstVoidPtr magicCookie,
                                                         @Nullable
                                                         @Nullable CFDictionaryRef extensions,
                                                         @NotNull
                                                         @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMAudioFormatDescriptionCreate Creates a format description for an audio media stream. The ASBD is required, the channel layout is optional, and the magic cookie is required for some compression formats (and must be NULL for all others). The caller owns the returned CMFormatDescription, and must release it when done with it. The ASBD, magic cookie, channel layout, and extensions are all copied (the extensions are deep-copied). The caller can deallocate them or re-use them after making this call. API-Since: 4.0
      • CMAudioFormatDescriptionGetStreamBasicDescription

        @Nullable
        public static @Nullable AudioStreamBasicDescription CMAudioFormatDescriptionGetStreamBasicDescription​(@NotNull
                                                                                                              @NotNull CMFormatDescriptionRef desc)
        [@function] CMAudioFormatDescriptionGetStreamBasicDescription Returns a read-only pointer to the AudioStreamBasicDescription inside an audio CMFormatDescription. See CoreAudioTypes.h for the definition of AudioStreamBasicDescription. This API is specific to audio format descriptions, and will return NULL if used with a non-audio format descriptions. API-Since: 4.0
      • CMAudioFormatDescriptionGetMagicCookie

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMAudioFormatDescriptionGetMagicCookie​(@NotNull
                                                                                                             @NotNull CMFormatDescriptionRef desc,
                                                                                                             @Nullable
                                                                                                             @Nullable org.moe.natj.general.ptr.NUIntPtr sizeOut)
        [@function] CMAudioFormatDescriptionGetMagicCookie Returns a read-only pointer to (and size of) the magic cookie inside an audio CMFormatDescription. The magic cookie is a completely opaque piece of data, written and read only by the codec itself. A magic cookie is only present for codecs that require it; this API will return NULL if one does not exist. This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description.
        Returns:
        A read-only pointer to the magic cookie inside the audio format description. API-Since: 4.0
      • CMAudioFormatDescriptionGetChannelLayout

        @Nullable
        public static @Nullable AudioChannelLayout CMAudioFormatDescriptionGetChannelLayout​(@NotNull
                                                                                            @NotNull CMFormatDescriptionRef desc,
                                                                                            @Nullable
                                                                                            @Nullable org.moe.natj.general.ptr.NUIntPtr sizeOut)
        [@function] CMAudioFormatDescriptionGetChannelLayout Returns a read-only pointer to (and size of) the AudioChannelLayout inside an audio CMFormatDescription. See CoreAudioTypes.h for the definition of AudioChannelLayout. AudioChannelLayouts are optional; this API will return NULL if one does not exist. This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description.
        Returns:
        A read-only pointer to the AudioChannelLayout inside the audio format description. API-Since: 4.0
      • CMAudioFormatDescriptionGetFormatList

        @Nullable
        public static @Nullable AudioFormatListItem CMAudioFormatDescriptionGetFormatList​(@NotNull
                                                                                          @NotNull CMFormatDescriptionRef desc,
                                                                                          @Nullable
                                                                                          @Nullable org.moe.natj.general.ptr.NUIntPtr sizeOut)
        [@function] CMAudioFormatDescriptionGetFormatList Returns a read-only pointer to (and size of) the array of AudioFormatListItem structs inside an audio CMFormatDescription. This property is analogous to kAudioFormatProperty_FormatList (See AudioFormat.h) and follows its conventions. Namely, formats are returned in order from the most to least 'rich', with channel count taking the highest precedence followed by sample rate. This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description.
        Returns:
        A read-only pointer to the array of AudioFormatListItem structs inside the audio format description. API-Since: 4.0
      • CMAudioFormatDescriptionGetRichestDecodableFormat

        @Nullable
        public static @Nullable AudioFormatListItem CMAudioFormatDescriptionGetRichestDecodableFormat​(@NotNull
                                                                                                      @NotNull CMFormatDescriptionRef desc)
        [@function] CMAudioFormatDescriptionGetRichestDecodableFormat Returns a read-only pointer to the appropriate AudioFormatListItem inside an audio CMFormatDescription. This property performs validation on the formats represented by the audio in the description. It finds the first AudioFormatListItem for which the current system has a valid decoder. This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description. It may also return NULL if there is no suitable decoder available on the current system for this audio format.
        Returns:
        A read-only pointer to the appropriate AudioFormatListItem inside the audio format description. API-Since: 4.0
      • CMAudioFormatDescriptionGetMostCompatibleFormat

        @Nullable
        public static @Nullable AudioFormatListItem CMAudioFormatDescriptionGetMostCompatibleFormat​(@NotNull
                                                                                                    @NotNull CMFormatDescriptionRef desc)
        [@function] CMAudioFormatDescriptionGetMostCompatibleFormat Returns a read-only pointer to the appropriate AudioFormatListItem inside an audio CMFormatDescription. This property returns a pointer to the last AudioFormatListItem in the kAudioFormatProperty_FormatList (see AudioFormat.h). This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description.
        Returns:
        A read-only pointer to the appropriate AudioFormatListItem inside the audio format description. API-Since: 4.0
      • CMAudioFormatDescriptionCreateSummary

        public static int CMAudioFormatDescriptionCreateSummary​(@Nullable
                                                                @Nullable CFAllocatorRef allocator,
                                                                @NotNull
                                                                @NotNull CFArrayRef formatDescriptionArray,
                                                                int flags,
                                                                @NotNull
                                                                @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMAudioFormatDescriptionCreateSummary Creates a summary audio format description from an array of audio format descriptions. The summary format description will be canonical LPCM and deep enough in sample rate, channel layout and channel count to sensibly contain the result of decoding and mixing the constituent format descriptions. API-Since: 4.0
      • CMAudioFormatDescriptionEqual

        public static byte CMAudioFormatDescriptionEqual​(@NotNull
                                                         @NotNull CMFormatDescriptionRef formatDescription,
                                                         @NotNull
                                                         @NotNull CMFormatDescriptionRef otherFormatDescription,
                                                         int equalityMask,
                                                         @Nullable
                                                         @Nullable org.moe.natj.general.ptr.IntPtr equalityMaskOut)
        [@function] CMAudioFormatDescriptionEqual Evaluates equality for the specified parts of two audio format descriptions. Bits in equalityMask specify the caller's interest in the equality of various parts of the descriptions. Bits set and returned in equalityMaskOut represent the subset of those parts that are equal. If there is any sort of error that prevents the comparison from occurring, false will be returned, and all bits in equalityMaskOut will be cleared. If you pass kCMAudioFormatDescriptionMask_All in equalityMask, and NULL for equalityMaskOut, this API is equivalent to CFEqual(desc1, desc2). On releases up to macOS 12, iOS 15, tvOS 15 and watchOS 8, the kCMAudioFormatDescriptionMask_Extensions flag was ignored in equalityMask. So this API always treated two audio format descriptions as equal even when they had different extensions. Starting with macOS 13, iOS 16, tvOS 16 and watchOS 9, kCMAudioFormatDescriptionMask_Extensions is correctly accounted for when determining equality of two audio format descriptions. This also affects CFEqual(desc1, desc2) as it will return false when two audio format descriptions have different extensions.
        Returns:
        The result of the comparison. True if all parts in which the caller is interested are equal. False if any of the parts in which the caller is interested are not equal. API-Since: 4.0
      • CMVideoFormatDescriptionCreate

        public static int CMVideoFormatDescriptionCreate​(@Nullable
                                                         @Nullable CFAllocatorRef allocator,
                                                         int codecType,
                                                         int width,
                                                         int height,
                                                         @Nullable
                                                         @Nullable CFDictionaryRef extensions,
                                                         @NotNull
                                                         @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreate Creates a format description for a video media stream. The caller owns the returned CMFormatDescription, and must release it when done with it. All input parameters are copied (the extensions are deep-copied). The caller can deallocate them or re-use them after making this call. API-Since: 4.0
      • CMVideoFormatDescriptionCreateForImageBuffer

        public static int CMVideoFormatDescriptionCreateForImageBuffer​(@Nullable
                                                                       @Nullable CFAllocatorRef allocator,
                                                                       @NotNull
                                                                       @NotNull CVBufferRef imageBuffer,
                                                                       @NotNull
                                                                       @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreateForImageBuffer Creates a format description for a video media stream contained in CVImageBuffers of the type provided. This convenience function is equivalent to: CMVideoFormatDescriptionCreate( allocator, ( CVPixelBufferGetTypeID() == CFGetTypeID( imageBuffer ) ? CVPixelBufferGetPixelFormatType( imageBuffer ) : 0, width of image, height of image, extensions ); where extensions is a CFDictionary of attachments to image buffer with keys specified by CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers, and also kCMFormatDescriptionExtension_BytesPerRow if applicable. API-Since: 4.0
      • CMVideoFormatDescriptionCreateFromH264ParameterSets

        public static int CMVideoFormatDescriptionCreateFromH264ParameterSets​(@Nullable
                                                                              @Nullable CFAllocatorRef allocator,
                                                                              long parameterSetCount,
                                                                              @NotNull
                                                                              @NotNull java.lang.String[] parameterSetPointers,
                                                                              @NotNull
                                                                              @NotNull org.moe.natj.general.ptr.ConstNUIntPtr parameterSetSizes,
                                                                              int NALUnitHeaderLength,
                                                                              @NotNull
                                                                              @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreateFromH264ParameterSets Creates a format description for a video media stream described by H.264 parameter set NAL units. This function parses the dimensions provided by the parameter sets and creates a format description suitable for a raw H.264 stream. The parameter sets' data can come from raw NAL units and must have any emulation prevention bytes needed. The supported NAL unit types to be included in the format description are 7 (sequence parameter set), 8 (picture parameter set) and 13 (sequence parameter set extension). At least one sequence parameter set and one picture parameter set must be provided. API-Since: 7.0
      • CMVideoFormatDescriptionGetH264ParameterSetAtIndex

        public static int CMVideoFormatDescriptionGetH264ParameterSetAtIndex​(@NotNull
                                                                             @NotNull CMFormatDescriptionRef videoDesc,
                                                                             long parameterSetIndex,
                                                                             @Nullable
                                                                             @Nullable java.lang.String[] parameterSetPointerOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.NUIntPtr parameterSetSizeOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.NUIntPtr parameterSetCountOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.IntPtr NALUnitHeaderLengthOut)
        [@function] CMVideoFormatDescriptionGetH264ParameterSetAtIndex Returns a parameter set contained in a H.264 format description. This function parses the AVC decoder configuration record contained in a H.264 video format description and returns the NAL unit at the given index from it. These NAL units are typically parameter sets (e.g. SPS, PPS), but may contain others as specified by ISO/IEC 14496-15 (e.g. user-data SEI). Both parameterSetPointerOut and parameterSetSizeOut may be NULL, parameterSetCountOut will return the total number of parameter set NAL units contained in the AVC decoder configuration record. The parameter set NAL units returned will already have any emulation prevention bytes needed. The pointer returned in parameterSetPointerOut points to internal memory of videoDesc, and may only be accessed as long as a retain on videoDesc is held. API-Since: 7.0
      • CMVideoFormatDescriptionGetDimensions

        public static CMVideoDimensions CMVideoFormatDescriptionGetDimensions​(@NotNull
                                                                              @NotNull CMFormatDescriptionRef videoDesc)
        [@function] CMVideoFormatDescriptionGetDimensions Returns the dimensions (in encoded pixels) This does not take into account pixel aspect ratio or clean aperture tags. API-Since: 4.0
      • CMVideoFormatDescriptionGetPresentationDimensions

        public static CGSize CMVideoFormatDescriptionGetPresentationDimensions​(@NotNull
                                                                               @NotNull CMFormatDescriptionRef videoDesc,
                                                                               byte usePixelAspectRatio,
                                                                               byte useCleanAperture)
        [@function] CMVideoFormatDescriptionGetPresentationDimensions Returns the dimensions, adjusted to take pixel aspect ratio and/or clean aperture into account. Pixel aspect ratio is used to adjust the width, leaving the height alone. API-Since: 4.0
      • CMVideoFormatDescriptionGetCleanAperture

        public static CGRect CMVideoFormatDescriptionGetCleanAperture​(@NotNull
                                                                      @NotNull CMFormatDescriptionRef videoDesc,
                                                                      byte originIsAtTopLeft)
        [@function] CMVideoFormatDescriptionGetCleanAperture Returns the clean aperture. The clean aperture is a rectangle that defines the portion of the encoded pixel dimensions that represents image data valid for display. API-Since: 4.0
      • CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers

        @NotNull
        public static @NotNull CFArrayRef CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers()
        [@function] CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers Returns an array of the keys that are used both as CMVideoFormatDescription extensions and CVImageBuffer attachments and attributes. When specifying a CMFormatDescription for a CMSampleBuffer, the format description must be consistent with formatting information attached to the CVImageBuffer. The width, height, and codecType must match (for CVPixelBuffers the codec type is given by CVPixelBufferGetPixelFormatType(pixelBuffer); for other CVImageBuffers, the codecType must be 0). The format description extensions must match the image buffer attachments for all the keys in the list returned by this function (if absent in either they must be absent in both). Currently, the list is: kCMFormatDescriptionExtension_CleanAperture kCMFormatDescriptionExtension_FieldCount kCMFormatDescriptionExtension_FieldDetail kCMFormatDescriptionExtension_PixelAspectRatio kCMFormatDescriptionExtension_ColorPrimaries kCMFormatDescriptionExtension_TransferFunction kCMFormatDescriptionExtension_GammaLevel kCMFormatDescriptionExtension_YCbCrMatrix kCMFormatDescriptionExtension_ICCProfile kCMFormatDescriptionExtension_ChromaLocationTopField kCMFormatDescriptionExtension_ChromaLocationBottomField kCMFormatDescriptionExtension_MasteringDisplayColorVolume kCMFormatDescriptionExtension_ContentLightLevelInfo API-Since: 4.0
      • CMVideoFormatDescriptionMatchesImageBuffer

        public static byte CMVideoFormatDescriptionMatchesImageBuffer​(@NotNull
                                                                      @NotNull CMFormatDescriptionRef desc,
                                                                      @NotNull
                                                                      @NotNull CVBufferRef imageBuffer)
        [@function] CMVideoFormatDescriptionMatchesImageBuffer Checks to see if a given format description matches an image buffer. This function uses the keys returned by CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers to compares the extensions of the given format description to the attachments of the given image buffer (if an attachment is absent in either it must be absent in both). It also checks kCMFormatDescriptionExtension_BytesPerRow against CVPixelBufferGetBytesPerRow, if applicable. API-Since: 4.0
      • CMMuxedFormatDescriptionCreate

        public static int CMMuxedFormatDescriptionCreate​(@Nullable
                                                         @Nullable CFAllocatorRef allocator,
                                                         int muxType,
                                                         @Nullable
                                                         @Nullable CFDictionaryRef extensions,
                                                         @NotNull
                                                         @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMMuxedFormatDescriptionCreate Creates a format description for a muxed media stream. A muxed format description does not know what the formats are of the substreams within the muxed stream. That information will only be discoverable by the demuxer software (or other software which understands the details of the muxed bitstream) which will need to produce separate format descriptions for each of its output streams. The caller owns the returned CMFormatDescription, and must release it when done with it. All input parameters are copied (the extensions are deep-copied). The caller can deallocate them or re-use them after making this call. API-Since: 4.0
      • CMTextFormatDescriptionGetDisplayFlags

        public static int CMTextFormatDescriptionGetDisplayFlags​(@NotNull
                                                                 @NotNull CMFormatDescriptionRef desc,
                                                                 @NotNull
                                                                 @NotNull org.moe.natj.general.ptr.IntPtr displayFlagsOut)
        [@function] CMTextFormatDescriptionGetDisplayFlags Returns the displayFlags. These are the flags that control how the text appears. The function can return kCMFormatDescriptionError_ValueNotAvailable for formats without display flags. API-Since: 4.0
      • CMTextFormatDescriptionGetJustification

        public static int CMTextFormatDescriptionGetJustification​(@NotNull
                                                                  @NotNull CMFormatDescriptionRef desc,
                                                                  @Nullable
                                                                  @Nullable org.moe.natj.general.ptr.BytePtr horizontaJustificationlOut,
                                                                  @Nullable
                                                                  @Nullable org.moe.natj.general.ptr.BytePtr verticalJustificationOut)
        [@function] CMTextFormatDescriptionGetJustification Returns horizontal and vertical justification. Values are kCMTextJustification_* constants. The function returns kCMFormatDescriptionError_ValueNotAvailable for format descriptions that do not carry text justification. API-Since: 4.0
      • CMTextFormatDescriptionGetDefaultTextBox

        public static int CMTextFormatDescriptionGetDefaultTextBox​(@NotNull
                                                                   @NotNull CMFormatDescriptionRef desc,
                                                                   byte originIsAtTopLeft,
                                                                   double heightOfTextTrack,
                                                                   @NotNull
                                                                   @NotNull CGRect defaultTextBoxOut)
        [@function] CMTextFormatDescriptionGetDefaultTextBox Returns the default text box. Within a text track, text is rendered within a text box. There is a default text box set, which can be over-ridden by a sample. The function can return kCMFormatDescriptionError_ValueNotAvailable for format descriptions that do not carry a default text box. API-Since: 4.0
      • CMTextFormatDescriptionGetFontName

        public static int CMTextFormatDescriptionGetFontName​(@NotNull
                                                             @NotNull CMFormatDescriptionRef desc,
                                                             char localFontID,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.Ptr<CFStringRef> fontNameOut)
        [@function] CMTextFormatDescriptionGetFontName Returns the font name for a local font ID. Some format descriptions carry a mapping from local font IDs to font names. The function returns kCMFormatDescriptionError_ValueNotAvailable for format descriptions that do not carry such a font mapping table. API-Since: 4.0
      • CMTimeCodeFormatDescriptionCreate

        public static int CMTimeCodeFormatDescriptionCreate​(@Nullable
                                                            @Nullable CFAllocatorRef allocator,
                                                            int timeCodeFormatType,
                                                            CMTime frameDuration,
                                                            int frameQuanta,
                                                            int flags,
                                                            @Nullable
                                                            @Nullable CFDictionaryRef extensions,
                                                            @NotNull
                                                            @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTimeCodeFormatDescriptionCreate Creates a format description for a timecode media. The caller owns the returned CMFormatDescription, and must release it when done with it. All input parameters are copied (the extensions are deep-copied). The caller can deallocate them or re-use them after making this call. API-Since: 4.0
      • CMTimeCodeFormatDescriptionGetFrameDuration

        public static CMTime CMTimeCodeFormatDescriptionGetFrameDuration​(@NotNull
                                                                         @NotNull CMFormatDescriptionRef timeCodeFormatDescription)
        [@function] CMTimeCodeFormatDescriptionGetFrameDuration Returns the duration of each frame (eg. 100/2997) API-Since: 4.0
      • CMTimeCodeFormatDescriptionGetFrameQuanta

        public static int CMTimeCodeFormatDescriptionGetFrameQuanta​(@NotNull
                                                                    @NotNull CMFormatDescriptionRef timeCodeFormatDescription)
        [@function] CMTimeCodeFormatDescriptionGetFrameQuanta Returns the frames/sec for timecode (eg. 30) OR frames/tick for counter mode API-Since: 4.0
      • CMTimeCodeFormatDescriptionGetTimeCodeFlags

        public static int CMTimeCodeFormatDescriptionGetTimeCodeFlags​(@NotNull
                                                                      @NotNull CMFormatDescriptionRef desc)
        [@function] CMTimeCodeFormatDescriptionGetTimeCodeFlags Returns the flags for kCMTimeCodeFlag_DropFrame, kCMTimeCodeFlag_24HourMax, kCMTimeCodeFlag_NegTimesOK API-Since: 4.0
      • CMMetadataFormatDescriptionCreateWithKeys

        public static int CMMetadataFormatDescriptionCreateWithKeys​(@Nullable
                                                                    @Nullable CFAllocatorRef allocator,
                                                                    int metadataType,
                                                                    @Nullable
                                                                    @Nullable CFArrayRef keys,
                                                                    @NotNull
                                                                    @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        API-Since: 4.0
      • CMMetadataFormatDescriptionCreateWithMetadataSpecifications

        public static int CMMetadataFormatDescriptionCreateWithMetadataSpecifications​(@Nullable
                                                                                      @Nullable CFAllocatorRef allocator,
                                                                                      int metadataType,
                                                                                      @NotNull
                                                                                      @NotNull CFArrayRef metadataSpecifications,
                                                                                      @NotNull
                                                                                      @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        API-Since: 8.0
      • CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications

        public static int CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications​(@Nullable
                                                                                                                  @Nullable CFAllocatorRef allocator,
                                                                                                                  @NotNull
                                                                                                                  @NotNull CMFormatDescriptionRef sourceDescription,
                                                                                                                  @NotNull
                                                                                                                  @NotNull CFArrayRef metadataSpecifications,
                                                                                                                  @NotNull
                                                                                                                  @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        API-Since: 8.0
      • CMMetadataFormatDescriptionCreateByMergingMetadataFormatDescriptions

        public static int CMMetadataFormatDescriptionCreateByMergingMetadataFormatDescriptions​(@Nullable
                                                                                               @Nullable CFAllocatorRef allocator,
                                                                                               @NotNull
                                                                                               @NotNull CMFormatDescriptionRef sourceDescription,
                                                                                               @NotNull
                                                                                               @NotNull CMFormatDescriptionRef otherSourceDescription,
                                                                                               @NotNull
                                                                                               @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        API-Since: 8.0
      • CMMetadataFormatDescriptionGetKeyWithLocalID

        @Nullable
        public static @Nullable CFDictionaryRef CMMetadataFormatDescriptionGetKeyWithLocalID​(@NotNull
                                                                                             @NotNull CMFormatDescriptionRef desc,
                                                                                             int localKeyID)
        API-Since: 4.0
      • CMMetadataFormatDescriptionGetIdentifiers

        @Nullable
        public static @Nullable CFArrayRef CMMetadataFormatDescriptionGetIdentifiers​(@NotNull
                                                                                     @NotNull CMFormatDescriptionRef desc)
        API-Since: 8.0
      • CMSampleBufferCreate

        public static int CMSampleBufferCreate​(@Nullable
                                               @Nullable CFAllocatorRef allocator,
                                               @Nullable
                                               @Nullable CMBlockBufferRef dataBuffer,
                                               byte dataReady,
                                               @Nullable
                                               @Nullable CoreMedia.Function_CMSampleBufferCreate makeDataReadyCallback,
                                               @Nullable
                                               @Nullable org.moe.natj.general.ptr.VoidPtr makeDataReadyRefcon,
                                               @Nullable
                                               @Nullable CMFormatDescriptionRef formatDescription,
                                               long numSamples,
                                               long numSampleTimingEntries,
                                               @Nullable
                                               @Nullable CMSampleTimingInfo sampleTimingArray,
                                               long numSampleSizeEntries,
                                               @Nullable
                                               @Nullable org.moe.natj.general.ptr.ConstNUIntPtr sampleSizeArray,
                                               @NotNull
                                               @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreate Creates a CMSampleBuffer. Array parameters (sampleSizeArray, sampleTimingArray) should have only one element if that same element applies to all samples. All parameters are copied; on return, the caller can release them, free them, reuse them or whatever. On return, the caller owns the returned CMSampleBuffer, and must release it when done with it. Example of usage for in-display-order video frames:
          dataBuffer: contains 7 Motion JPEG frames
        • dataFormatDescription: describes Motion JPEG video
        • numSamples: 7
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {duration = 1001/30000, presentationTimeStamp = 0/30000, decodeTimeStamp = invalid }
        • numSampleSizeEntries: 7
        • sampleSizeArray: {105840, 104456, 103464, 116460, 100412, 94808, 120400}
        Example of usage for out-of-display-order video frames:
          dataBuffer: contains 6 H.264 frames in decode order (P2,B0,B1,I5,B3,B4)
        • dataFormatDescription: describes H.264 video
        • numSamples: 6
        • numSampleTimingEntries: 6
        • sampleTimingArray: 6 entries = {
            {duration = 1001/30000, presentationTimeStamp = 12012/30000, decodeTimeStamp = 10010/30000},
          • {duration = 1001/30000, presentationTimeStamp = 10010/30000, decodeTimeStamp = 11011/30000},
          • {duration = 1001/30000, presentationTimeStamp = 11011/30000, decodeTimeStamp = 12012/30000},
          • {duration = 1001/30000, presentationTimeStamp = 15015/30000, decodeTimeStamp = 13013/30000},
          • {duration = 1001/30000, presentationTimeStamp = 13013/30000, decodeTimeStamp = 14014/30000},
          • {duration = 1001/30000, presentationTimeStamp = 14014/30000, decodeTimeStamp = 15015/30000}}
        • numSampleSizeEntries: 6
        • sampleSizeArray: {10580, 1234, 1364, 75660, 1012, 988}
        Example of usage for compressed audio:
          dataBuffer: contains 24 compressed AAC packets
        • dataFormatDescription: describes 44.1kHz AAC audio
        • numSamples: 24
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {
            {duration = 1024/44100, presentationTimeStamp = 0/44100, decodeTimeStamp = invalid }}
        • numSampleSizeEntries: 24
        • sampleSizeArray:
            {191, 183, 208, 213, 202, 206, 209, 206, 204, 192, 202, 277,
          • 282, 240, 209, 194, 193, 197, 196, 198, 168, 199, 171, 194}
        Example of usage for uncompressed interleaved audio:
          dataBuffer: contains 24000 uncompressed interleaved stereo frames, each containing 2 Float32s =
            {{L,R},
          • {L,R},
          • {L,R}, ...}
        • dataFormatDescription: describes 48kHz Float32 interleaved audio
        • numSamples: 24000
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {
            {duration = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = invalid }}
        • numSampleSizeEntries: 1
        • sampleSizeArray: {8}
        Example of usage for uncompressed non-interleaved audio:
          dataBuffer: contains 24000 uncompressed non-interleaved stereo frames, each containing 2 (non-contiguous) Float32s =
            {{L,L,L,L,L,...},
          • {R,R,R,R,R,...}}
        • dataFormatDescription: describes 48kHz Float32 non-interleaved audio
        • numSamples: 24000
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {duration = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = invalid }
        • numSampleSizeEntries: 0
        • sampleSizeArray: NULL (because the samples are not contiguous)
        API-Since: 4.0
      • CMSampleBufferCreateReady

        public static int CMSampleBufferCreateReady​(@Nullable
                                                    @Nullable CFAllocatorRef allocator,
                                                    @Nullable
                                                    @Nullable CMBlockBufferRef dataBuffer,
                                                    @Nullable
                                                    @Nullable CMFormatDescriptionRef formatDescription,
                                                    long numSamples,
                                                    long numSampleTimingEntries,
                                                    @Nullable
                                                    @Nullable CMSampleTimingInfo sampleTimingArray,
                                                    long numSampleSizeEntries,
                                                    @Nullable
                                                    @Nullable org.moe.natj.general.ptr.ConstNUIntPtr sampleSizeArray,
                                                    @NotNull
                                                    @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreateReady Creates a CMSampleBuffer. Array parameters (sampleSizeArray, sampleTimingArray) should have only one element if that same element applies to all samples. All parameters are copied; on return, the caller can release them, free them, reuse them or whatever. On return, the caller owns the returned CMSampleBuffer, and must release it when done with it. CMSampleBufferCreateReady is identical to CMSampleBufferCreate except that dataReady is always true, and so no makeDataReadyCallback or refcon needs to be passed. Example of usage for in-display-order video frames:
          dataBuffer: contains 7 Motion JPEG frames
        • dataFormatDescription: describes Motion JPEG video
        • numSamples: 7
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {duration = 1001/30000, presentationTimeStamp = 0/30000, decodeTimeStamp = invalid }
        • numSampleSizeEntries: 7
        • sampleSizeArray: {105840, 104456, 103464, 116460, 100412, 94808, 120400}
        Example of usage for out-of-display-order video frames:
          dataBuffer: contains 6 H.264 frames in decode order (P2,B0,B1,I5,B3,B4)
        • dataFormatDescription: describes H.264 video
        • numSamples: 6
        • numSampleTimingEntries: 6
        • sampleTimingArray: 6 entries = {
            {duration = 1001/30000, presentationTimeStamp = 12012/30000, decodeTimeStamp = 10010/30000},
          • {duration = 1001/30000, presentationTimeStamp = 10010/30000, decodeTimeStamp = 11011/30000},
          • {duration = 1001/30000, presentationTimeStamp = 11011/30000, decodeTimeStamp = 12012/30000},
          • {duration = 1001/30000, presentationTimeStamp = 15015/30000, decodeTimeStamp = 13013/30000},
          • {duration = 1001/30000, presentationTimeStamp = 13013/30000, decodeTimeStamp = 14014/30000},
          • {duration = 1001/30000, presentationTimeStamp = 14014/30000, decodeTimeStamp = 15015/30000}}
        • numSampleSizeEntries: 6
        • sampleSizeArray: {10580, 1234, 1364, 75660, 1012, 988}
        Example of usage for compressed audio:
          dataBuffer: contains 24 compressed AAC packets
        • dataFormatDescription: describes 44.1kHz AAC audio
        • numSamples: 24
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {
            {duration = 1024/44100, presentationTimeStamp = 0/44100, decodeTimeStamp = invalid }}
        • numSampleSizeEntries: 24
        • sampleSizeArray:
            {191, 183, 208, 213, 202, 206, 209, 206, 204, 192, 202, 277,
          • 282, 240, 209, 194, 193, 197, 196, 198, 168, 199, 171, 194}
        Example of usage for uncompressed interleaved audio:
          dataBuffer: contains 24000 uncompressed interleaved stereo frames, each containing 2 Float32s =
            {{L,R},
          • {L,R},
          • {L,R}, ...}
        • dataFormatDescription: describes 48kHz Float32 interleaved audio
        • numSamples: 24000
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {
            {duration = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = invalid }}
        • numSampleSizeEntries: 1
        • sampleSizeArray: {8}
        Example of usage for uncompressed non-interleaved audio:
          dataBuffer: contains 24000 uncompressed non-interleaved stereo frames, each containing 2 (non-contiguous) Float32s =
            {{L,L,L,L,L,...},
          • {R,R,R,R,R,...}}
        • dataFormatDescription: describes 48kHz Float32 non-interleaved audio
        • numSamples: 24000
        • numSampleTimingEntries: 1
        • sampleTimingArray: one entry = {duration = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = invalid }
        • numSampleSizeEntries: 0
        • sampleSizeArray: NULL (because the samples are not contiguous)
        API-Since: 8.0
      • CMAudioSampleBufferCreateWithPacketDescriptions

        public static int CMAudioSampleBufferCreateWithPacketDescriptions​(@Nullable
                                                                          @Nullable CFAllocatorRef allocator,
                                                                          @Nullable
                                                                          @Nullable CMBlockBufferRef dataBuffer,
                                                                          byte dataReady,
                                                                          @Nullable
                                                                          @Nullable CoreMedia.Function_CMAudioSampleBufferCreateWithPacketDescriptions makeDataReadyCallback,
                                                                          @Nullable
                                                                          @Nullable org.moe.natj.general.ptr.VoidPtr makeDataReadyRefcon,
                                                                          @NotNull
                                                                          @NotNull CMFormatDescriptionRef formatDescription,
                                                                          long numSamples,
                                                                          CMTime presentationTimeStamp,
                                                                          @Nullable
                                                                          @Nullable AudioStreamPacketDescription packetDescriptions,
                                                                          @NotNull
                                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMAudioSampleBufferCreateWithPacketDescriptions Creates an CMSampleBuffer containing audio given packetDescriptions instead of sizing and timing info Provides an optimization over CMSampleBufferCreate() when the caller already has packetDescriptions for the audio data. This routine will use the packetDescriptions to create the sizing and timing arrays required to make the sample buffer if necessary. API-Since: 4.0
      • CMAudioSampleBufferCreateReadyWithPacketDescriptions

        public static int CMAudioSampleBufferCreateReadyWithPacketDescriptions​(@Nullable
                                                                               @Nullable CFAllocatorRef allocator,
                                                                               @NotNull
                                                                               @NotNull CMBlockBufferRef dataBuffer,
                                                                               @NotNull
                                                                               @NotNull CMFormatDescriptionRef formatDescription,
                                                                               long numSamples,
                                                                               CMTime presentationTimeStamp,
                                                                               @Nullable
                                                                               @Nullable AudioStreamPacketDescription packetDescriptions,
                                                                               @NotNull
                                                                               @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMAudioSampleBufferCreateReadyWithPacketDescriptions Creates an CMSampleBuffer containing audio given packetDescriptions instead of sizing and timing info Provides an optimization over CMSampleBufferCreate() when the caller already has packetDescriptions for the audio data. This routine will use the packetDescriptions to create the sizing and timing arrays required to make the sample buffer if necessary. CMAudioSampleBufferCreateReadyWithPacketDescriptions is identical to CMAudioSampleBufferCreateWithPacketDescriptions except that dataReady is always true, and so no makeDataReadyCallback or refcon needs to be passed. API-Since: 8.0
      • CMSampleBufferCreateForImageBuffer

        public static int CMSampleBufferCreateForImageBuffer​(@Nullable
                                                             @Nullable CFAllocatorRef allocator,
                                                             @NotNull
                                                             @NotNull CVBufferRef imageBuffer,
                                                             byte dataReady,
                                                             @Nullable
                                                             @Nullable CoreMedia.Function_CMSampleBufferCreateForImageBuffer makeDataReadyCallback,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.VoidPtr makeDataReadyRefcon,
                                                             @NotNull
                                                             @NotNull CMFormatDescriptionRef formatDescription,
                                                             @NotNull
                                                             @NotNull CMSampleTimingInfo sampleTiming,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreateForImageBuffer Creates a CMSampleBuffer that contains a CVImageBuffer instead of a CMBlockBuffer. Unlike a CMBlockBuffer which can reference many samples, a CVImageBuffer is defined to reference only one sample; therefore this routine has fewer parameters then CMSampleBufferCreate. Sample timing information, which is a vector for CMSampleBufferCreate, consists of only one value for this routine. The concept of sample size does not apply to CVImageBuffers. As such, CMSampleBufferGetSampleSizeArray will return kCMSampleBufferError_BufferHasNoSampleSizes, and CMSampleBufferGetSampleSize will return 0. Because CVImageBuffers hold visual data, the format description provided is a CMVideoFormatDescription. The format description must be consistent with the attributes and formatting information attached to the CVImageBuffer. The width, height, and codecType must match (for CVPixelBuffers the codec type is given by CVPixelBufferGetPixelFormatType(pixelBuffer); for other CVImageBuffers, the codecType must be 0). The format description extensions must match the image buffer attachments for all the keys in the list returned by CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers (if absent in either they must be absent in both). API-Since: 4.0
      • CMSampleBufferCreateReadyWithImageBuffer

        public static int CMSampleBufferCreateReadyWithImageBuffer​(@Nullable
                                                                   @Nullable CFAllocatorRef allocator,
                                                                   @NotNull
                                                                   @NotNull CVBufferRef imageBuffer,
                                                                   @NotNull
                                                                   @NotNull CMFormatDescriptionRef formatDescription,
                                                                   @NotNull
                                                                   @NotNull CMSampleTimingInfo sampleTiming,
                                                                   @NotNull
                                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreateReadyWithImageBuffer Creates a CMSampleBuffer that contains a CVImageBuffer instead of a CMBlockBuffer. Unlike a CMBlockBuffer which can reference many samples, a CVImageBuffer is defined to reference only one sample; therefore this routine has fewer parameters then CMSampleBufferCreate. Sample timing information, which is a vector for CMSampleBufferCreate, consists of only one value for this routine. The concept of sample size does not apply to CVImageBuffers. As such, CMSampleBufferGetSampleSizeArray will return kCMSampleBufferError_BufferHasNoSampleSizes, and CMSampleBufferGetSampleSize will return 0. Because CVImageBuffers hold visual data, the format description provided is a CMVideoFormatDescription. The format description must be consistent with the attributes and formatting information attached to the CVImageBuffer. The width, height, and codecType must match (for CVPixelBuffers the codec type is given by CVPixelBufferGetPixelFormatType(pixelBuffer); for other CVImageBuffers, the codecType must be 0). The format description extensions must match the image buffer attachments for all the keys in the list returned by CMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers (if absent in either they must be absent in both). CMSampleBufferCreateReadyWithImageBuffer is identical to CMSampleBufferCreateForImageBuffer except that dataReady is always true, and so no makeDataReadyCallback or refcon needs to be passed. API-Since: 8.0
      • CMSampleBufferCreateCopy

        public static int CMSampleBufferCreateCopy​(@Nullable
                                                   @Nullable CFAllocatorRef allocator,
                                                   @NotNull
                                                   @NotNull CMSampleBufferRef sbuf,
                                                   @NotNull
                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreateCopy Creates a copy of a CMSampleBuffer. The copy is shallow: scalar properties (sizes and timing) are copied directly, the data buffer and format description are retained, and the propogatable attachments are retained by the copy's dictionary. If sbuf's data is not ready, the copy will be set to track its readiness. API-Since: 4.0
      • CMSampleBufferCreateCopyWithNewTiming

        public static int CMSampleBufferCreateCopyWithNewTiming​(@Nullable
                                                                @Nullable CFAllocatorRef allocator,
                                                                @NotNull
                                                                @NotNull CMSampleBufferRef originalSBuf,
                                                                long numSampleTimingEntries,
                                                                @Nullable
                                                                @Nullable CMSampleTimingInfo sampleTimingArray,
                                                                @NotNull
                                                                @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCreateCopyWithNewTiming Creates a CMSampleBuffer with new timing information from another sample buffer. This emulates CMSampleBufferCreateCopy, but changes the timing. Array parameters (sampleTimingArray) should have only one element if that same element applies to all samples. All parameters are copied; on return, the caller can release them, free them, reuse them or whatever. Any outputPresentationTimestamp that has been set on the original Buffer will not be copied because it is no longer relevant. On return, the caller owns the returned CMSampleBuffer, and must release it when done with it. API-Since: 4.0
      • CMSampleBufferCopySampleBufferForRange

        public static int CMSampleBufferCopySampleBufferForRange​(@Nullable
                                                                 @Nullable CFAllocatorRef allocator,
                                                                 @NotNull
                                                                 @NotNull CMSampleBufferRef sbuf,
                                                                 CFRange sampleRange,
                                                                 @NotNull
                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut)
        [@function] CMSampleBufferCopySampleBufferForRange Creates a CMSampleBuffer containing a range of samples from an existing CMSampleBuffer. Samples containing non-interleaved audio are currently not supported. API-Since: 4.0
      • CMSampleBufferGetTypeID

        public static long CMSampleBufferGetTypeID()
        [@function] CMSampleBufferGetTypeID Returns the CFTypeID of CMSampleBuffer objects. You can check if a CFTypeRef object is actually a CMSampleBuffer by comparing CFGetTypeID(object) with CMSampleBufferGetTypeID().
        Returns:
        CFTypeID of CMSampleBuffer objects. API-Since: 4.0
      • CMSampleBufferSetDataBuffer

        public static int CMSampleBufferSetDataBuffer​(@NotNull
                                                      @NotNull CMSampleBufferRef sbuf,
                                                      @NotNull
                                                      @NotNull CMBlockBufferRef dataBuffer)
        [@function] CMSampleBufferSetDataBuffer Associates a CMSampleBuffer with its CMBlockBuffer of media data. If successful, this operation retains the dataBuffer thereafter, so the caller can release the dataBuffer after calling this API, if it has no further need to reference it. This is a write-once operation; it will fail if the CMSampleBuffer already has a dataBuffer. This API allows a CMSampleBuffer to exist, with timing and format information, before the associated data shows up. Example of usage: Some media services may have access to sample size, timing, and format information before the data is read. Such services may create CMSampleBuffers with that information and insert them into queues early, and use this API to attach the CMBlockBuffers later, when the data becomes ready. API-Since: 4.0
      • CMSampleBufferGetDataBuffer

        @Nullable
        public static @Nullable CMBlockBufferRef CMSampleBufferGetDataBuffer​(@NotNull
                                                                             @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetDataBuffer Returns a CMSampleBuffer's CMBlockBuffer of media data. The caller does not own the returned dataBuffer, and must retain it explicitly if the caller needs to maintain a reference to it.
        Returns:
        CMBlockBuffer of media data. The result will be NULL if the CMSampleBuffer does not contain a CMBlockBuffer, if the CMSampleBuffer contains a CVImageBuffer, or if there is some other error. API-Since: 4.0
      • CMSampleBufferGetImageBuffer

        @Nullable
        public static @Nullable CVBufferRef CMSampleBufferGetImageBuffer​(@NotNull
                                                                         @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetImageBuffer Returns a CMSampleBuffer's CVImageBuffer of media data. The caller does not own the returned dataBuffer, and must retain it explicitly if the caller needs to maintain a reference to it.
        Returns:
        CVImageBuffer of media data. The result will be NULL if the CMSampleBuffer does not contain a CVImageBuffer, if the CMSampleBuffer contains a CMBlockBuffer, or if there is some other error. API-Since: 4.0
      • CMSampleBufferSetDataBufferFromAudioBufferList

        public static int CMSampleBufferSetDataBufferFromAudioBufferList​(@NotNull
                                                                         @NotNull CMSampleBufferRef sbuf,
                                                                         @Nullable
                                                                         @Nullable CFAllocatorRef blockBufferStructureAllocator,
                                                                         @Nullable
                                                                         @Nullable CFAllocatorRef blockBufferBlockAllocator,
                                                                         int flags,
                                                                         @NotNull
                                                                         @NotNull AudioBufferList bufferList)
        [@function] CMSampleBufferSetDataBufferFromAudioBufferList Creates a CMBlockBuffer containing a copy of the data from the AudioBufferList, and sets that as the CMSampleBuffer's data buffer. The resulting buffer(s) in the sample buffer will be 16-byte-aligned if kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment is passed in. API-Since: 4.0
      • CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer

        public static int CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer​(@NotNull
                                                                                  @NotNull CMSampleBufferRef sbuf,
                                                                                  @Nullable
                                                                                  @Nullable org.moe.natj.general.ptr.NUIntPtr bufferListSizeNeededOut,
                                                                                  @Nullable
                                                                                  @Nullable AudioBufferList bufferListOut,
                                                                                  long bufferListSize,
                                                                                  @Nullable
                                                                                  @Nullable CFAllocatorRef blockBufferStructureAllocator,
                                                                                  @Nullable
                                                                                  @Nullable CFAllocatorRef blockBufferBlockAllocator,
                                                                                  int flags,
                                                                                  @Nullable
                                                                                  @Nullable org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer Creates an AudioBufferList containing the data from the CMSampleBuffer, and a CMBlockBuffer which references (and manages the lifetime of) the data in that AudioBufferList. The data may or may not be copied, depending on the contiguity and 16-byte alignment of the CMSampleBuffer's data. The buffers placed in the AudioBufferList are guaranteed to be contiguous. The buffers in the AudioBufferList will be 16-byte-aligned if kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment is passed in. API-Since: 4.0
      • CMSampleBufferGetAudioStreamPacketDescriptions

        public static int CMSampleBufferGetAudioStreamPacketDescriptions​(@NotNull
                                                                         @NotNull CMSampleBufferRef sbuf,
                                                                         long packetDescriptionsSize,
                                                                         @Nullable
                                                                         @Nullable AudioStreamPacketDescription packetDescriptionsOut,
                                                                         @Nullable
                                                                         @Nullable org.moe.natj.general.ptr.NUIntPtr packetDescriptionsSizeNeededOut)
        [@function] CMSampleBufferGetAudioStreamPacketDescriptions Creates an array of AudioStreamPacketDescriptions for the variable bytes per packet or variable frames per packet audio data in the provided CMSampleBuffer. Constant bitrate, constant frames-per-packet audio yields a return value of noErr and no packet descriptions. This API is specific to audio format sample buffers, and will return kCMSampleBufferError_InvalidMediaTypeForOperation if called with a non-audio sample buffer. API-Since: 4.0
      • CMSampleBufferGetAudioStreamPacketDescriptionsPtr

        public static int CMSampleBufferGetAudioStreamPacketDescriptionsPtr​(@NotNull
                                                                            @NotNull CMSampleBufferRef sbuf,
                                                                            @Nullable
                                                                            @Nullable org.moe.natj.general.ptr.Ptr<org.moe.natj.general.ptr.ConstPtr<AudioStreamPacketDescription>> packetDescriptionsPointerOut,
                                                                            @Nullable
                                                                            @Nullable org.moe.natj.general.ptr.NUIntPtr packetDescriptionsSizeOut)
        [@function] CMSampleBufferGetAudioStreamPacketDescriptionsPtr Returns a pointer to (and size of) a constant array of AudioStreamPacketDescriptions for the variable bytes per packet or variable frames per packet audio data in the provided CMSampleBuffer. The pointer will remain valid as long as the sbuf continues to be retained. Constant bitrate, constant frames-per-packet audio yields a return value of noErr and no packet descriptions. This API is specific to audio format sample buffers, and will return kCMSampleBufferError_InvalidMediaTypeForOperation if called with a non-audio sample buffer. API-Since: 4.0
      • CMSampleBufferCopyPCMDataIntoAudioBufferList

        public static int CMSampleBufferCopyPCMDataIntoAudioBufferList​(@NotNull
                                                                       @NotNull CMSampleBufferRef sbuf,
                                                                       int frameOffset,
                                                                       int numFrames,
                                                                       @NotNull
                                                                       @NotNull AudioBufferList bufferList)
        [@function] CMSampleBufferCopyPCMDataIntoAudioBufferList Copies PCM audio data from the given CMSampleBuffer into a pre-populated AudioBufferList. The AudioBufferList must contain the same number of channels and its data buffers must be sized to hold the specified number of frames. This API is specific to audio format sample buffers, and will return kCMSampleBufferError_InvalidMediaTypeForOperation if called with a non-audio sample buffer. It will return an error if the CMSampleBuffer does not contain PCM audio data or if its dataBuffer is not ready. API-Since: 7.0
      • CMSampleBufferSetDataReady

        public static int CMSampleBufferSetDataReady​(@NotNull
                                                     @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferSetDataReady Marks a CMSampleBuffer's data as "ready". There is no way to undo this operation. The only way to get an "unready" CMSampleBuffer is to call CMSampleBufferCreate with the dataReady parameter set to false. Example of usage: in a read completion routine. API-Since: 4.0
      • CMSampleBufferDataIsReady

        public static byte CMSampleBufferDataIsReady​(@NotNull
                                                     @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferDataIsReady Returns whether or not a CMSampleBuffer's data is ready.
        Returns:
        Whether or not the CMSampleBuffer's data is ready. True is returned for special marker buffers, even though they have no data. False is returned if there is an error. API-Since: 4.0
      • CMSampleBufferSetDataFailed

        public static int CMSampleBufferSetDataFailed​(@NotNull
                                                      @NotNull CMSampleBufferRef sbuf,
                                                      int status)
        [@function] CMSampleBufferSetDataFailed Marks a CMSampleBuffer's data as "failed", to indicate that the data will not become ready. API-Since: 8.0
      • CMSampleBufferHasDataFailed

        public static byte CMSampleBufferHasDataFailed​(@NotNull
                                                       @NotNull CMSampleBufferRef sbuf,
                                                       @Nullable
                                                       @Nullable org.moe.natj.general.ptr.IntPtr statusOut)
        [@function] CMSampleBufferHasDataFailed Returns whether or not a CMSampleBuffer's data loading request has failed. API-Since: 8.0
      • CMSampleBufferMakeDataReady

        public static int CMSampleBufferMakeDataReady​(@NotNull
                                                      @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferMakeDataReady Makes a CMSampleBuffer's data ready, by calling the client's CMSampleBufferMakeDataReadyCallback. The CMSampleBufferMakeDataReadyCallback is passed in by the client during creation. It must return 0 if successful, and in that case, CMSampleBufferMakeDataReady will set the data readiness of the CMSampleBuffer to true. Example of usage: when it is time to actually use the data. Example of callback routine: a routine to force a scheduled read to complete. If the CMSampleBuffer is not ready, and there is no CMSampleBufferMakeDataReadyCallback to call, kCMSampleBufferError_BufferNotReady will be returned. Similarly, if the CMSampleBuffer is not ready, and the CMSampleBufferMakeDataReadyCallback fails and returns an error, kCMSampleBufferError_BufferNotReady will be returned. API-Since: 4.0
      • CMSampleBufferTrackDataReadiness

        public static int CMSampleBufferTrackDataReadiness​(@NotNull
                                                           @NotNull CMSampleBufferRef sbuf,
                                                           @NotNull
                                                           @NotNull CMSampleBufferRef sampleBufferToTrack)
        [@function] CMSampleBufferTrackDataReadiness Associates a CMSampleBuffer's data readiness with another CMSampleBuffer's data readiness. After calling this API, if CMSampleBufferDataIsReady(sbuf) is called, it will return sbufToTrack's data readiness. If CMSampleBufferMakeDataReady(sbuf) is called, it will do it by making sbufToTrack ready. Example of use: This allows bursting a multi-sample CMSampleBuffer into single-sample CMSampleBuffers before the data is ready. The single-sample CMSampleBuffers will all track the multi-sample CMSampleBuffer's data readiness. API-Since: 4.0
      • CMSampleBufferInvalidate

        public static int CMSampleBufferInvalidate​(@NotNull
                                                   @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferInvalidate Makes the sample buffer invalid, calling any installed invalidation callback. An invalid sample buffer cannot be used -- all accessors will return kCMSampleBufferError_Invalidated. It is not a good idea to do this to a sample buffer that another module may be accessing concurrently. Example of use: the invalidation callback could cancel pending I/O. API-Since: 4.0
      • CMSampleBufferSetInvalidateCallback

        public static int CMSampleBufferSetInvalidateCallback​(@NotNull
                                                              @NotNull CMSampleBufferRef sbuf,
                                                              @NotNull
                                                              @NotNull CoreMedia.Function_CMSampleBufferSetInvalidateCallback invalidateCallback,
                                                              long invalidateRefCon)
        [@function] CMSampleBufferSetInvalidateCallback Sets the sample buffer's invalidation callback, which is called during CMSampleBufferInvalidate. A sample buffer can only have one invalidation callback. The invalidation callback is NOT called during ordinary sample buffer finalization. API-Since: 4.0
      • CMSampleBufferSetInvalidateHandler

        public static int CMSampleBufferSetInvalidateHandler​(@NotNull
                                                             @NotNull CMSampleBufferRef sbuf,
                                                             @NotNull
                                                             @NotNull CoreMedia.Block_CMSampleBufferSetInvalidateHandler invalidateHandler)
        [@function] CMSampleBufferSetInvalidateHandler Sets the sample buffer's invalidation handler block, which is called during CMSampleBufferInvalidate. A sample buffer can only have one invalidation callback. The invalidation callback is NOT called during ordinary sample buffer finalization. API-Since: 8.0
      • CMSampleBufferIsValid

        public static byte CMSampleBufferIsValid​(@NotNull
                                                 @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferIsValid Queries whether a sample buffer is still valid. Returns false if sbuf is NULL or CMSampleBufferInvalidate(sbuf) was called, true otherwise. Does not perform any kind of exhaustive validation of the sample buffer. API-Since: 4.0
      • CMSampleBufferGetNumSamples

        public static long CMSampleBufferGetNumSamples​(@NotNull
                                                       @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetNumSamples Returns the number of media samples in a CMSampleBuffer.
        Returns:
        The number of media samples in the CMSampleBuffer. 0 is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetDuration

        public static CMTime CMSampleBufferGetDuration​(@NotNull
                                                       @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetDuration Returns the total duration of a CMSampleBuffer. If the buffer contains out-of-presentation-order samples, any gaps in the presentation timeline are not represented in the returned duration. The returned duration is simply the sum of all the individual sample durations.
        Returns:
        The duration of the CMSampleBuffer. kCMTimeInvalid is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetPresentationTimeStamp

        public static CMTime CMSampleBufferGetPresentationTimeStamp​(@NotNull
                                                                    @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetPresentationTimeStamp Returns the numerically earliest presentation timestamp of all the samples in a CMSampleBuffer. For in-presentation-order samples, this is the presentation timestamp of the first sample. For out-of-presentation-order samples, this is the presentation timestamp of the sample that will be presented first, which is not necessarily the first sample in the buffer.
        Returns:
        Numerically earliest sample presentation timestamp in the CMSampleBuffer. kCMTimeInvalid is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetDecodeTimeStamp

        public static CMTime CMSampleBufferGetDecodeTimeStamp​(@NotNull
                                                              @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetDecodeTimeStamp Returns the numerically earliest decode timestamp of all the samples in a CMSampleBuffer. The returned decode timestamp is always the decode timestamp of the first sample in the buffer, since even out-of-presentation-order samples are expected to be in decode order in the buffer.
        Returns:
        Numerically earliest sample decode timestamp in the CMSampleBuffer. kCMTimeInvalid is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetOutputDuration

        public static CMTime CMSampleBufferGetOutputDuration​(@NotNull
                                                             @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetOutputDuration Returns the output duration of a CMSampleBuffer. The OutputDuration is the duration minus any trimmed duration, all divided by the SpeedMultiplier: (Duration - TrimDurationAtStart - TrimDurationAtEnd) / SpeedMultiplier
        Returns:
        The output duration of the CMSampleBuffer. kCMTimeInvalid is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetOutputPresentationTimeStamp

        public static CMTime CMSampleBufferGetOutputPresentationTimeStamp​(@NotNull
                                                                          @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetOutputPresentationTimeStamp Returns the output presentation timestamp of the CMSampleBuffer. The output presentation timestamp is the time at which the decoded, trimmed, stretched and possibly reversed samples should commence being presented. If CMSampleBufferSetOutputPresentationTimeStamp has been called to explicitly set the output PTS, CMSampleBufferGetOutputPresentationTimeStamp returns it. If not, CMSampleBufferGetOutputPresentationTimeStamp calculates its result as (PresentationTimeStamp + TrimDurationAtStart) unless kCMSampleBufferAttachmentKey_Reverse is kCFBooleanTrue, in which case it calculates the result as (PresentationTimeStamp + Duration - TrimDurationAtEnd). These are generally correct for un-stretched, un-shifted playback. For general forward playback in a scaled edit, the OutputPresentationTimeStamp should be set to: ((PresentationTimeStamp + TrimDurationAtStart - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime. For general reversed playback: ((PresentationTimeStamp + Duration - TrimDurationAtEnd - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime.
        Returns:
        kCMTimeInvalid is returned if there is an error. API-Since: 4.0
      • CMSampleBufferSetOutputPresentationTimeStamp

        public static int CMSampleBufferSetOutputPresentationTimeStamp​(@NotNull
                                                                       @NotNull CMSampleBufferRef sbuf,
                                                                       CMTime outputPresentationTimeStamp)
        [@function] CMSampleBufferSetOutputPresentationTimeStamp Sets an output presentation timestamp to be used in place of a calculated value. The output presentation timestamp is the time at which the decoded, trimmed, stretched and possibly reversed samples should commence being presented. By default, this is calculated by CMSampleBufferGetOutputPresentationTimeStamp. Call CMSampleBufferSetOutputPresentationTimeStamp to explicitly set the value for CMSampleBufferGetOutputPresentationTimeStamp to return. For general forward playback in a scaled edit, the OutputPresentationTimeStamp should be set to: ((PresentationTimeStamp + TrimDurationAtStart - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime. For general reversed playback: ((PresentationTimeStamp + Duration - TrimDurationAtEnd - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime. API-Since: 4.0
      • CMSampleBufferGetOutputDecodeTimeStamp

        public static CMTime CMSampleBufferGetOutputDecodeTimeStamp​(@NotNull
                                                                    @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetOutputDecodeTimeStamp Returns the output decode timestamp of the CMSampleBuffer. For consistency with CMSampleBufferGetOutputPresentationTimeStamp, this is calculated as: OutputPresentationTimeStamp + ((DecodeTimeStamp - PresentationTimeStamp) / SpeedMultiplier).
        Returns:
        CMInvalidTime is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetSampleTimingInfoArray

        public static int CMSampleBufferGetSampleTimingInfoArray​(@NotNull
                                                                 @NotNull CMSampleBufferRef sbuf,
                                                                 long numSampleTimingEntries,
                                                                 @Nullable
                                                                 @Nullable CMSampleTimingInfo timingArrayOut,
                                                                 @Nullable
                                                                 @Nullable org.moe.natj.general.ptr.NIntPtr timingArrayEntriesNeededOut)
        [@function] CMSampleBufferGetSampleTimingInfoArray Returns an array of CMSampleTimingInfo structs, one for each sample in a CMSampleBuffer. If only one CMSampleTimingInfo struct is returned, it applies to all samples in the buffer. See documentation of CMSampleTimingInfo for details of how a single CMSampleTimingInfo struct can apply to multiple samples. The timingArrayOut must be allocated by the caller, and the number of entries allocated must be passed in timingArrayEntries. If timingArrayOut is NULL, timingArrayEntriesNeededOut will return the required number of entries. Similarly, if timingArrayEntries is too small, kCMSampleBufferError_ArrayTooSmall will be returned, and timingArrayEntriesNeededOut will return the required number of entries. In either case, the caller can then make an appropriately-sized timingArrayOut and call again. For example, the caller might pass the address of a CMSampleTimingInfo struct on the stack (as timingArrayOut), and 1 (as timingArrayEntries). If all samples are describable with a single CMSampleTimingInfo struct (or there is only one sample in the CMSampleBuffer), this call will succeed. If not, it will fail, and will return the number of entries required in timingArrayEntriesNeededOut. Only in this case will the caller actually need to allocate an array. If there is no timingInfo in this CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo will be returned, and timingArrayEntriesNeededOut will be set to 0. API-Since: 4.0
      • CMSampleBufferGetOutputSampleTimingInfoArray

        public static int CMSampleBufferGetOutputSampleTimingInfoArray​(@NotNull
                                                                       @NotNull CMSampleBufferRef sbuf,
                                                                       long timingArrayEntries,
                                                                       @Nullable
                                                                       @Nullable CMSampleTimingInfo timingArrayOut,
                                                                       @Nullable
                                                                       @Nullable org.moe.natj.general.ptr.NIntPtr timingArrayEntriesNeededOut)
        [@function] CMSampleBufferGetOutputSampleTimingInfoArray Returns an array of output CMSampleTimingInfo structs, one for each sample in a CMSampleBuffer. If only one CMSampleTimingInfo struct is returned, it applies to all samples in the buffer. See documentation of CMSampleTimingInfo for details of how a single CMSampleTimingInfo struct can apply to multiple samples. The timingArrayOut must be allocated by the caller, and the number of entries allocated must be passed in timingArrayEntries. If timingArrayOut is NULL, timingArrayEntriesNeededOut will return the required number of entries. Similarly, if timingArrayEntries is too small, kCMSampleBufferError_ArrayTooSmall will be returned, and timingArrayEntriesNeededOut will return the required number of entries. In either case, the caller can then make an appropriately-sized timingArrayOut and call again. For example, the caller might pass the address of a CMSampleTimingInfo struct on the stack (as timingArrayOut), and 1 (as timingArrayEntries). If all samples are describable with a single CMSampleTimingInfo struct (or there is only one sample in the CMSampleBuffer), this call will succeed. If not, it will fail, and will return the number of entries required in timingArrayEntriesNeededOut. Only in this case will the caller actually need to allocate an array. If there is no timingInfo in this CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo will be returned, and *timingArrayEntriesNeededOut will be set to 0. API-Since: 4.0
      • CMSampleBufferGetSampleTimingInfo

        public static int CMSampleBufferGetSampleTimingInfo​(@NotNull
                                                            @NotNull CMSampleBufferRef sbuf,
                                                            long sampleIndex,
                                                            @NotNull
                                                            @NotNull CMSampleTimingInfo timingInfoOut)
        [@function] CMSampleBufferGetSampleTimingInfo Returns a CMSampleTimingInfo struct describing a specified sample in a CMSampleBuffer. A sample-specific CMSampleTimingInfo struct will be returned (ie. with a sample-specific presentationTimeStamp and decodeTimeStamp), even if a single CMSampleTimingInfo struct was used during creation to describe all the samples in the buffer. The timingInfo struct must be allocated by the caller. If the sample index is not in the range 0 .. numSamples-1, kCMSampleBufferError_SampleIndexOutOfRange will be returned. If there is no timingInfo in this CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo will be returned. API-Since: 4.0
      • CMSampleBufferGetSampleSizeArray

        public static int CMSampleBufferGetSampleSizeArray​(@NotNull
                                                           @NotNull CMSampleBufferRef sbuf,
                                                           long sizeArrayEntries,
                                                           @Nullable
                                                           @Nullable org.moe.natj.general.ptr.NUIntPtr sizeArrayOut,
                                                           @Nullable
                                                           @Nullable org.moe.natj.general.ptr.NIntPtr sizeArrayEntriesNeededOut)
        [@function] CMSampleBufferGetSampleSizeArray Returns an array of sample sizes, one for each sample in a CMSampleBuffer. If only one size entry is returned, all samples in the buffer are of this size. The sizeArrayOut must be allocated by the caller, and the number of entries allocated must be passed in sizeArrayEntries. If sizeArrayOut is NULL, sizeArrayEntriesNeededOut will return the required number of entries. Similarly, if sizeArrayEntries is too small, kCMSampleBufferError_ArrayTooSmall will be returned, and sizeArrayEntriesNeededOut will return the required number of entries. The caller can then make an appropriately-sized sizeArrayOut and call again. For example, the caller might pass the address of a size_t variable on the stack (as sizeArrayOut), and 1 (as sizeArrayEntries). If all samples are the same size (or there is only one sample in the CMSampleBuffer), this call would succeed. If not, it will fail, and will return the number of entries required in sizeArrayEntriesNeededOut. Only in this case (multiple samples of different sizes) will the caller need to allocate an array. 0 entries will be returned if the samples in the buffer are non-contiguous (eg. non-interleaved audio, where the channel values for a single sample are scattered through the buffer). If there are no sample sizes in this CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleSizes will be returned, and *sizeArrayEntriesNeededOut will be set to 0. This will be true, for example, if the samples in the buffer are non-contiguous (eg. non-interleaved audio, where the channel values for a single sample are scattered through the buffer), or if this CMSampleBuffer contains a CVImageBuffer. API-Since: 4.0
      • CMSampleBufferGetSampleSize

        public static long CMSampleBufferGetSampleSize​(@NotNull
                                                       @NotNull CMSampleBufferRef sbuf,
                                                       long sampleIndex)
        [@function] CMSampleBufferGetSampleSize Returns the size in bytes of a specified sample in a CMSampleBuffer.
        Returns:
        Size in bytes of the specified sample in the CMSampleBuffer. If the sample index is not in the range 0 .. numSamples-1, a size of 0 will be returned. If there are no sample sizes in this CMSampleBuffer, a size of 0 will be returned. This will be true, for example, if the samples in the buffer are non-contiguous (eg. non-interleaved audio, where the channel values for a single sample are scattered through the buffer), or if this CMSampleBuffer contains a CVImageBuffer. API-Since: 4.0
      • CMSampleBufferGetTotalSampleSize

        public static long CMSampleBufferGetTotalSampleSize​(@NotNull
                                                            @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetTotalSampleSize Returns the total size in bytes of sample data in a CMSampleBuffer.
        Returns:
        Total size in bytes of sample data in the CMSampleBuffer. If there are no sample sizes in this CMSampleBuffer, a size of 0 will be returned. API-Since: 4.0
      • CMSampleBufferGetFormatDescription

        @Nullable
        public static @Nullable CMFormatDescriptionRef CMSampleBufferGetFormatDescription​(@NotNull
                                                                                          @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetFormatDescription Returns the format description of the samples in a CMSampleBuffer. On return, the caller does not own the returned formatDesc, and must retain it explicitly if the caller needs to maintain a reference to it.
        Returns:
        The format description of the samples in the CMSampleBuffer. NULL is returned if there is an error. API-Since: 4.0
      • CMSampleBufferGetSampleAttachmentsArray

        @Nullable
        public static @Nullable CFArrayRef CMSampleBufferGetSampleAttachmentsArray​(@NotNull
                                                                                   @NotNull CMSampleBufferRef sbuf,
                                                                                   byte createIfNecessary)
        [@function] CMSampleBufferGetSampleAttachmentsArray Returns a reference to a CMSampleBuffer's immutable array of mutable sample attachments dictionaries (one dictionary per sample in the CMSampleBuffer). Attachments can then be added/removed directly by the caller, using CF APIs. On return, the caller does not own the returned array of attachments dictionaries, and must retain it if the caller needs to maintain a reference to it. If there are no sample attachments yet, and createIfNecessary is true, a new CFArray containing N empty CFMutableDictionaries is returned (where N is the number of samples in the CMSampleBuffer), so that attachments can be added directly by the caller. If there are no sample attachments yet, and createIfNecessary is false, NULL is returned. Once the CFArray has been created, subsequent calls will return it, even if there are still no sample attachments in the array.
        Returns:
        A reference to the CMSampleBuffer's immutable array of mutable sample attachments dictionaries (one dictionary per sample in the CMSampleBuffer). NULL is returned if there is an error. API-Since: 4.0
      • CMSampleBufferCallForEachSample

        public static int CMSampleBufferCallForEachSample​(@NotNull
                                                          @NotNull CMSampleBufferRef sbuf,
                                                          @NotNull
                                                          @NotNull CoreMedia.Function_CMSampleBufferCallForEachSample callback,
                                                          @Nullable
                                                          @Nullable org.moe.natj.general.ptr.VoidPtr refcon)
        [@function] CMSampleBufferCallForEachSample Calls a function for every individual sample in a sample buffer. Temporary sample buffers will be created for individual samples, referring to the sample data and containing its timing, size and attachments. The callback function may retain these sample buffers if desired. If the callback function returns an error, iteration will stop immediately and the error will be returned. If there are no sample sizes in the provided sample buffer, kCMSampleBufferError_CannotSubdivide will be returned. This will happen, for example, if the samples in the buffer are non-contiguous (eg. non-interleaved audio, where the channel values for a single sample are scattered through the buffer). API-Since: 4.0
      • CMSampleBufferCallBlockForEachSample

        public static int CMSampleBufferCallBlockForEachSample​(@NotNull
                                                               @NotNull CMSampleBufferRef sbuf,
                                                               @NotNull
                                                               @NotNull CoreMedia.Block_CMSampleBufferCallBlockForEachSample handler)
        [@function] CMSampleBufferCallBlockForEachSample Calls a block for every individual sample in a sample buffer. Temporary sample buffers will be created for individual samples, referring to the sample data and containing its timing, size and attachments. The block may retain these sample buffers if desired. If the block returns an error, iteration will stop immediately and the error will be returned. If there are no sample sizes in the provided sample buffer, kCMSampleBufferError_CannotSubdivide will be returned. This will happen, for example, if the samples in the buffer are non-contiguous (eg. non-interleaved audio, where the channel values for a single sample are scattered through the buffer). API-Since: 8.0
      • CMClockGetTypeID

        public static long CMClockGetTypeID()
        [@function] CMClockGetTypeID Returns the CFTypeID for CMClock. API-Since: 6.0
      • CMClockGetHostTimeClock

        @NotNull
        public static @NotNull CMClockRef CMClockGetHostTimeClock()
        [@function] CMClockGetHostTimeClock Returns a reference to the singleton clock logically identified with host time. On Mac OS X, the host time clock uses mach_absolute_time but returns a value with a large integer timescale (eg, nanoseconds). API-Since: 6.0
      • CMClockConvertHostTimeToSystemUnits

        public static long CMClockConvertHostTimeToSystemUnits​(CMTime hostTime)
        [@function] CMClockConvertHostTimeToSystemUnits Converts a host time from CMTime to the host time's native units. This function performs a scale conversion, not a clock conversion. It can be more accurate than CMTimeConvertScale because the system units may have a non-integer timescale. On Mac OS X, this function converts to the units of mach_absolute_time. API-Since: 6.0
      • CMClockMakeHostTimeFromSystemUnits

        public static CMTime CMClockMakeHostTimeFromSystemUnits​(long hostTime)
        [@function] CMClockMakeHostTimeFromSystemUnits Converts a host time from native units to CMTime. The returned value will have a large integer timescale (eg, nanoseconds). This function handles situations where host time's native units use a non-integer timescale. On Mac OS X, this function converts from the units of mach_absolute_time. API-Since: 6.0
      • CMClockGetTime

        public static CMTime CMClockGetTime​(@NotNull
                                            @NotNull CMClockRef clock)
        [@function] CMClockGetTime Retrieves the current time from a clock. API-Since: 6.0
      • CMClockGetAnchorTime

        public static int CMClockGetAnchorTime​(@NotNull
                                               @NotNull CMClockRef clock,
                                               @NotNull
                                               @NotNull CMTime clockTimeOut,
                                               @NotNull
                                               @NotNull CMTime referenceClockTimeOut)
        [@function] CMClockGetAnchorTime Retrieves the current time from a clock and also the matching time from the clock's reference clock. To make practical use of this, you may need to know what the clock's reference clock is. API-Since: 6.0
      • CMClockMightDrift

        public static byte CMClockMightDrift​(@NotNull
                                             @NotNull CMClockRef clock,
                                             @NotNull
                                             @NotNull CMClockRef otherClock)
        [@function] CMClockMightDrift Indicates whether it is possible for two clocks to drift relative to each other. API-Since: 6.0
      • CMClockInvalidate

        public static void CMClockInvalidate​(@NotNull
                                             @NotNull CMClockRef clock)
        [@function] CMClockInvalidate Makes the clock stop functioning. After invalidation, the clock will return errors from all APIs. This should only be called by the "owner" of the clock, who knows (for example) that some piece of hardware has gone away, and the clock will no longer work (and might even crash). API-Since: 6.0
      • CMTimebaseGetTypeID

        public static long CMTimebaseGetTypeID()
        [@function] CMTimebaseGetTypeID Returns the CFTypeID for CMTimebase. API-Since: 6.0
      • CMTimebaseCreateWithMasterClock

        @Deprecated
        public static int CMTimebaseCreateWithMasterClock​(@Nullable
                                                          @Nullable CFAllocatorRef allocator,
                                                          @NotNull
                                                          @NotNull CMClockRef masterClock,
                                                          @NotNull
                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMTimebaseRef> timebaseOut)
        Deprecated.
        API-Since: 6.0 Deprecated-Since: 8.0
      • CMTimebaseCreateWithMasterTimebase

        @Deprecated
        public static int CMTimebaseCreateWithMasterTimebase​(@Nullable
                                                             @Nullable CFAllocatorRef allocator,
                                                             @NotNull
                                                             @NotNull CMTimebaseRef masterTimebase,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMTimebaseRef> timebaseOut)
        Deprecated.
        API-Since: 6.0 Deprecated-Since: 8.0
      • CMTimebaseCopyMasterTimebase

        @Nullable
        @Deprecated
        public static @Nullable CMTimebaseRef CMTimebaseCopyMasterTimebase​(@NotNull
                                                                           @NotNull CMTimebaseRef timebase)
        Deprecated.
        API-Since: 9.0 Deprecated-Since: 9.0
      • CMTimebaseCopyMasterClock

        @Nullable
        @Deprecated
        public static @Nullable CMClockRef CMTimebaseCopyMasterClock​(@NotNull
                                                                     @NotNull CMTimebaseRef timebase)
        Deprecated.
        API-Since: 9.0 Deprecated-Since: 9.0
      • CMTimebaseCopyMaster

        @NotNull
        @Deprecated
        public static @NotNull org.moe.natj.general.ptr.ConstVoidPtr CMTimebaseCopyMaster​(@NotNull
                                                                                          @NotNull CMTimebaseRef timebase)
        Deprecated.
        API-Since: 9.0 Deprecated-Since: 9.0
      • CMTimebaseCopyUltimateMasterClock

        @NotNull
        @Deprecated
        public static @NotNull CMClockRef CMTimebaseCopyUltimateMasterClock​(@NotNull
                                                                            @NotNull CMTimebaseRef timebase)
        Deprecated.
        API-Since: 9.0 Deprecated-Since: 9.0
      • CMTimebaseGetMasterTimebase

        @Nullable
        @Deprecated
        public static @Nullable CMTimebaseRef CMTimebaseGetMasterTimebase​(@NotNull
                                                                          @NotNull CMTimebaseRef timebase)
        Deprecated.
        [@function] CMTimebaseGetMasterTimebase Returns the immediate source timebase of a timebase. Returns NULL if the timebase actually has a source clock instead of a source timebase. Please use CMTimebaseCopySourceTimebase instead. API-Since: 6.0 Deprecated-Since: 9.0
      • CMTimebaseGetMasterClock

        @Nullable
        @Deprecated
        public static @Nullable CMClockRef CMTimebaseGetMasterClock​(@NotNull
                                                                    @NotNull CMTimebaseRef timebase)
        Deprecated.
        [@function] CMTimebaseGetMasterClock Returns the immediate source clock of a timebase. Returns NULL if the timebase actually has a source timebase instead of a source clock. Please use CMTimebaseCopySourceClock instead. API-Since: 6.0 Deprecated-Since: 9.0
      • CMTimebaseGetMaster

        @Nullable
        @Deprecated
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMTimebaseGetMaster​(@NotNull
                                                                                          @NotNull CMTimebaseRef timebase)
        Deprecated.
        [@function] CMTimebaseGetMaster Returns the immediate source (either timebase or clock) of a timebase. Only returns NULL if there was an error (such as timebase == NULL). Example of use: time = CMSyncGetTime(CMTimebaseGetMaster(timebase)); Please use CMTimebaseCopySource instead. API-Since: 6.0 Deprecated-Since: 9.0
      • CMTimebaseGetUltimateMasterClock

        @Nullable
        @Deprecated
        public static @Nullable CMClockRef CMTimebaseGetUltimateMasterClock​(@NotNull
                                                                            @NotNull CMTimebaseRef timebase)
        Deprecated.
        [@function] CMTimebaseGetUltimateMasterClock Returns the source clock that is the source of all of a timebase's source timebases. Please use CMTimebaseCopyUltimateSourceClock instead. API-Since: 6.0 Deprecated-Since: 9.0
      • CMTimebaseGetTime

        public static CMTime CMTimebaseGetTime​(@NotNull
                                               @NotNull CMTimebaseRef timebase)
        [@function] CMTimebaseGetTime Retrieves the current time from a timebase. API-Since: 6.0
      • CMTimebaseGetTimeWithTimeScale

        public static CMTime CMTimebaseGetTimeWithTimeScale​(@NotNull
                                                            @NotNull CMTimebaseRef timebase,
                                                            int timescale,
                                                            int method)
        [@function] CMTimebaseGetTimeWithTimeScale Retrieves the current time from a timebase in the specified timescale. API-Since: 6.0
      • CMTimebaseSetTime

        public static int CMTimebaseSetTime​(@NotNull
                                            @NotNull CMTimebaseRef timebase,
                                            CMTime time)
        [@function] CMTimebaseSetTime Sets the current time of a timebase. API-Since: 6.0
      • CMTimebaseSetAnchorTime

        public static int CMTimebaseSetAnchorTime​(@NotNull
                                                  @NotNull CMTimebaseRef timebase,
                                                  CMTime timebaseTime,
                                                  CMTime immediateSourceTime)
        [@function] CMTimebaseSetAnchorTime Sets the time of a timebase at a particular source time. CMTimebaseGetTime's results will be interpolated from that anchor time. CMTimebaseSetTime(timebase, time) is equivalent to calling CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase); CMTimebaseSetAnchorTime(timebase, time, CMSyncGetTime(source)); CFRelease(source). API-Since: 6.0
      • CMTimebaseGetRate

        public static double CMTimebaseGetRate​(@NotNull
                                               @NotNull CMTimebaseRef timebase)
        [@function] CMTimebaseGetRate Retrieves the current rate of a timebase. This is the rate relative to its immediate source clock or timebase. For example, if a timebase is running at twice the rate of its source, its rate is 2.0. API-Since: 6.0
      • CMTimebaseGetTimeAndRate

        public static int CMTimebaseGetTimeAndRate​(@NotNull
                                                   @NotNull CMTimebaseRef timebase,
                                                   @Nullable
                                                   @Nullable CMTime timeOut,
                                                   @Nullable
                                                   @Nullable org.moe.natj.general.ptr.DoublePtr rateOut)
        [@function] CMTimebaseGetTimeAndRate Retrieves the current time and rate of a timebase. You can use this function to take a consistent snapshot of the two values, avoiding possible inconsistencies due to external changes between retrieval of time and rate. API-Since: 6.0
      • CMTimebaseSetRate

        public static int CMTimebaseSetRate​(@NotNull
                                            @NotNull CMTimebaseRef timebase,
                                            double rate)
        [@function] CMTimebaseSetRate Sets the rate of a timebase. API-Since: 6.0
      • CMTimebaseSetRateAndAnchorTime

        public static int CMTimebaseSetRateAndAnchorTime​(@NotNull
                                                         @NotNull CMTimebaseRef timebase,
                                                         double rate,
                                                         CMTime timebaseTime,
                                                         CMTime immediateSourceTime)
        [@function] CMTimebaseSetRateAndAnchorTime Sets the time of a timebase at a particular source time, and changes the rate at exactly that time. CMTimebaseGetTime's results will be interpolated from that anchor time as though the timebase has been running at the requested rate since that time. CMTimebaseSetRate(timebase, rate) is approximately equivalent to calling CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase); CMTimebaseSetRateAndAnchorTime(timebase, rate, CMTimebaseGetTime(timebase), CMSyncGetTime(source)), CFRelease(source); except that CMTimebaseSetRate will not generate a TimeJumped notification, and CMTimebaseSetRateAndAnchorTime will. API-Since: 6.0
      • CMTimebaseGetEffectiveRate

        public static double CMTimebaseGetEffectiveRate​(@NotNull
                                                        @NotNull CMTimebaseRef timebase)
        [@function] CMTimebaseGetEffectiveRate Gets the effective rate of a timebase (which combines its rate with the rates of all its source timebases). Calling CMTimebaseGetEffectiveRate(timebase) is equivalent to calling CMClockRef clock = CMTimebaseCopyUltimateSourceClock(timebase); CMSyncGetRelativeRate(timebase, clock). CFRelease(clock); API-Since: 6.0
      • CMTimebaseAddTimer

        public static int CMTimebaseAddTimer​(@NotNull
                                             @NotNull CMTimebaseRef timebase,
                                             @NotNull
                                             @NotNull CFRunLoopTimerRef timer,
                                             @NotNull
                                             @NotNull CFRunLoopRef runloop)
        [@function] CMTimebaseAddTimer Adds the timer to the list of timers managed by the timebase. The timer must be a repeating run loop timer (with a very long interval at least as long as kCMTimebaseVeryLongCFTimeInterval), attached to a runloop. The timebase will retain the timer, and will maintain its "NextFireDate" according to the CMTime set using CMTimebaseSetTimerNextFireTime. Until the first call to CMTimebaseSetTimerNextFireTime, the "NextFireDate" will be set far, far in the future. The runloop that timer is attached to must be passed in and the timebase will retain that runloop. The retained runloop will be used to call CFRunLoopWakeUp() any time the timebase modifies the timer's fire date. API-Since: 6.0
      • CMTimebaseRemoveTimer

        public static int CMTimebaseRemoveTimer​(@NotNull
                                                @NotNull CMTimebaseRef timebase,
                                                @NotNull
                                                @NotNull CFRunLoopTimerRef timer)
        [@function] CMTimebaseRemoveTimer Removes the timer from the list of timers managed by the timebase. The timebase will no longer maintain the timer's "NextFireDate". If the timer is invalidated, the timebase will eventually remove it from its list and release it even if this function is not called. API-Since: 6.0
      • CMTimebaseSetTimerNextFireTime

        public static int CMTimebaseSetTimerNextFireTime​(@NotNull
                                                         @NotNull CMTimebaseRef timebase,
                                                         @NotNull
                                                         @NotNull CFRunLoopTimerRef timer,
                                                         CMTime fireTime,
                                                         int flags)
        [@function] CMTimebaseSetTimerNextFireTime Sets the CMTime on the timebase's timeline at which the timer should next be fired. The timer must be on the list of timers managed by the timebase. The timebase will continue to update the timer's "NextFireDate" according to time jumps and effective rate changes. If fireTime is not numeric, or if the timebase is not moving, the "NextFireDate" will be set to a date far, far in the future.
        IMPORTANT NOTE: Due to the way that CFRunLoopTimers are implemented, if a timer passes through a state in which it is due to fire, it may fire even if its rescheduled before the runloop runs again. Clients should take care to avoid temporarily scheduling timers in the past. For example, set the timebase's rate or time before you set the timer's next fire time, if you are doing both at once. (If setting the timebase's rate or time might put the timer's fire time in the past, you may need to set the fire time to kCMTimeInvalid across the timebase change.) API-Since: 6.0
      • CMTimebaseSetTimerToFireImmediately

        public static int CMTimebaseSetTimerToFireImmediately​(@NotNull
                                                              @NotNull CMTimebaseRef timebase,
                                                              @NotNull
                                                              @NotNull CFRunLoopTimerRef timer)
        [@function] CMTimebaseSetTimerToFireImmediately Sets the timer to fire immediately once, overriding any previous CMTimebaseSetTimerNextFireTime call. The timer must be on the list of timers managed by the timebase. This is equivalent to calling CFRunLoopTimerSetNextFireDate( timer, CFAbsoluteTimeGetCurrent() ); except that the timebase gets to know that it shouldn't interfere. API-Since: 6.0
      • CMTimebaseAddTimerDispatchSource

        public static int CMTimebaseAddTimerDispatchSource​(@NotNull
                                                           @NotNull CMTimebaseRef timebase,
                                                           @NotNull
                                                           @NotNull dispatch_source_t timerSource)
        [@function] CMTimebaseAddTimerDispatchSource Adds the timer dispatch source to the list of timers managed by the timebase. The timer source must have been created by calling dispatch_source_create( DISPATCH_SOURCE_TYPE_TIMER, 0, 0, some_dispatch_queue ) and should have had an event handler associated with it via dispatch_source_set_event_handler( timerSource, some_handler_block ) or dispatch_source_set_event_handler_f( timerSource, some_handler_function ). Don't forget to call dispatch_resume( timerSource ) as dispatch sources are created suspended. The timebase will retain the timer source, and will maintain its start time according to the CMTime set using CMTimebaseSetTimerDispatchSourceNextFireTime. Until the first call to CMTimebaseSetTimerDispatchSourceNextFireTime, the start time will be set to DISPATCH_TIME_FOREVER. API-Since: 6.0
      • CMTimebaseRemoveTimerDispatchSource

        public static int CMTimebaseRemoveTimerDispatchSource​(@NotNull
                                                              @NotNull CMTimebaseRef timebase,
                                                              @NotNull
                                                              @NotNull dispatch_source_t timerSource)
        [@function] CMTimebaseRemoveTimerDispatchSource Removes the timer dispatch source from the list of timers managed by the timebase. The timebase will no longer maintain the timer source's start time. If the timer source is cancelled, the timebase will eventually remove it from its list and release it even if this function is not called. API-Since: 6.0
      • CMTimebaseSetTimerDispatchSourceNextFireTime

        public static int CMTimebaseSetTimerDispatchSourceNextFireTime​(@NotNull
                                                                       @NotNull CMTimebaseRef timebase,
                                                                       @NotNull
                                                                       @NotNull dispatch_source_t timerSource,
                                                                       CMTime fireTime,
                                                                       int flags)
        [@function] CMTimebaseSetTimerDispatchSourceNextFireTime Sets the CMTime on the timebase's timeline at which the timer dispatch source should next be fired. The timer source must be on the list of timers managed by the timebase. The timebase will continue to update the timer dispatch source's start time according to time jumps and effective rate changes. If fireTime is not numeric, or if the timebase is not moving, the start time will be set to DISPATCH_TIME_FOREVER.
        IMPORTANT NOTE: Due to the way that timer dispatch sources are implemented, if a timer passes through a state in which it is due to fire, it may fire even if its rescheduled before the event handler is run. Clients should take care to avoid temporarily scheduling timers in the past. For example, set the timebase's rate or time before you set the timer's next fire time, if you are doing both at once. (If setting the timebase's rate or time might put the timer's fire time in the past, you may need to set the fire time to kCMTimeInvalid across the timebase change.) API-Since: 6.0
      • CMTimebaseSetTimerDispatchSourceToFireImmediately

        public static int CMTimebaseSetTimerDispatchSourceToFireImmediately​(@NotNull
                                                                            @NotNull CMTimebaseRef timebase,
                                                                            @NotNull
                                                                            @NotNull dispatch_source_t timerSource)
        [@function] CMTimebaseSetTimerDispatchSourceToFireImmediately Sets the timer dispatch source to fire immediately once, overriding any previous CMTimebaseSetTimerDispatchSourceNextFireTime call. The timer source must be on the list of timers managed by the timebase. This is equivalent to calling dispatch_source_set_timer( timerSource, DISPATCH_TIME_NOW, 0, 0 ); except that the timebase gets to know that it shouldn't interfere. API-Since: 6.0
      • CMSyncGetRelativeRate

        public static double CMSyncGetRelativeRate​(@NotNull
                                                   @NotNull org.moe.natj.general.ptr.ConstVoidPtr ofClockOrTimebase,
                                                   @NotNull
                                                   @NotNull org.moe.natj.general.ptr.ConstVoidPtr relativeToClockOrTimebase)
        [@function] CMSyncGetRelativeRate Queries the relative rate of one timebase or clock relative to another timebase or clock. If both have a common source, this calculation is performed purely based on the rates in the common tree rooted in that source. If they have different source clocks (or are both clocks), this calculation takes into account the measured drift between the two clocks, using host time as a pivot. The rate of a moving timebase relative to a stopped timebase is a NaN. Calling CMTimebaseGetEffectiveRate(timebase) is equivalent to calling CMClockRef clock = CMTimebaseCopyUltimateSourceClock(timebase); CMSyncGetRelativeRate(timebase, clock). CFRelease(clock); API-Since: 6.0
      • CMSyncGetRelativeRateAndAnchorTime

        public static int CMSyncGetRelativeRateAndAnchorTime​(@NotNull
                                                             @NotNull org.moe.natj.general.ptr.ConstVoidPtr ofClockOrTimebase,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.ConstVoidPtr relativeToClockOrTimebase,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.DoublePtr outRelativeRate,
                                                             @Nullable
                                                             @Nullable CMTime outOfClockOrTimebaseAnchorTime,
                                                             @Nullable
                                                             @Nullable CMTime outRelativeToClockOrTimebaseAnchorTime)
        [@function] CMSyncGetRelativeRateAndAnchorTime Queries the relative rate of one timebase or clock relative to another timebase or clock and the times of each timebase or clock at which the relative rate went into effect. If both have a common source, this calculation is performed purely based on the rates in the common tree rooted in that source. If they have different source clocks (or are both clocks), this calculation takes into account the measured drift between the two clocks, using host time as a pivot. The rate of a moving timebase relative to a stopped timebase is a NaN. API-Since: 6.0
      • CMSyncConvertTime

        public static CMTime CMSyncConvertTime​(CMTime time,
                                               @NotNull
                                               @NotNull org.moe.natj.general.ptr.ConstVoidPtr fromClockOrTimebase,
                                               @NotNull
                                               @NotNull org.moe.natj.general.ptr.ConstVoidPtr toClockOrTimebase)
        [@function] CMSyncConvertTime Converts a time from one timebase or clock to another timebase or clock. If both have a common source, this calculation is performed purely based on the mathematical rates and offsets in the common tree rooted in that source. If they have different source clocks (or are both clocks), this calculation also compensates for measured drift between the clocks. To convert to or from host time, pass CMClockGetHostTimeClock() as the appropriate argument. API-Since: 6.0
      • CMSyncMightDrift

        public static byte CMSyncMightDrift​(@NotNull
                                            @NotNull org.moe.natj.general.ptr.ConstVoidPtr clockOrTimebase1,
                                            @NotNull
                                            @NotNull org.moe.natj.general.ptr.ConstVoidPtr clockOrTimebase2)
        [@function] CMSyncMightDrift Reports whether it is possible for one timebase/clock to drift relative to the other. A timebase can drift relative to another if their ultimate source clocks that can drift relative to each other. API-Since: 6.0
      • CMSyncGetTime

        public static CMTime CMSyncGetTime​(@NotNull
                                           @NotNull org.moe.natj.general.ptr.ConstVoidPtr clockOrTimebase)
        [@function] CMSyncGetTime A helper function to get time from a clock or timebase. CMSyncGetTime simply calls either CMClockGetTime or CMTimebaseGetTime, as appropriate. It comes in handy for things like: CMClockOrTimebaseRef source = CMTimebaseCopySource(timebase); CMSyncGetTime(source); CFRelease(source); API-Since: 6.0
      • CMTimebaseNotificationBarrier

        public static int CMTimebaseNotificationBarrier​(@NotNull
                                                        @NotNull CMTimebaseRef timebase)
        [@function] CMTimebaseNotificationBarrier Requests that the timebase wait until it is not posting any notifications. API-Since: 6.0
      • CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionData

        public static int CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionData​(@Nullable
                                                                                          @Nullable CFAllocatorRef allocator,
                                                                                          @NotNull
                                                                                          @NotNull java.lang.String imageDescriptionData,
                                                                                          long size,
                                                                                          int stringEncoding,
                                                                                          @Nullable
                                                                                          @Nullable CFStringRef flavor,
                                                                                          @NotNull
                                                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionData Creates a CMVideoFormatDescription from a big-endian ImageDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMVideoFormatDescription object. May be NULL.
        imageDescriptionData - ImageDescription data structure in big-endian byte ordering.
        size - Size of ImageDescription data structure.
        stringEncoding - Pass CFStringGetSystemEncoding() or GetApplicationTextEncoding().
        flavor - kCMImageDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        formatDescriptionOut - Receives new CMVideoFormatDescription. API-Since: 8.0
      • CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionBlockBuffer

        public static int CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionBlockBuffer​(@Nullable
                                                                                                 @Nullable CFAllocatorRef allocator,
                                                                                                 @NotNull
                                                                                                 @NotNull CMBlockBufferRef imageDescriptionBlockBuffer,
                                                                                                 int stringEncoding,
                                                                                                 @Nullable
                                                                                                 @Nullable CFStringRef flavor,
                                                                                                 @NotNull
                                                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreateFromBigEndianImageDescriptionBlockBuffer Creates a CMVideoFormatDescription from a big-endian ImageDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMVideoFormatDescription object. May be NULL.
        imageDescriptionBlockBuffer - CMBlockBuffer containing ImageDescription data structure in big-endian byte ordering.
        stringEncoding - Pass CFStringGetSystemEncoding() or GetApplicationTextEncoding().
        flavor - kCMImageDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        formatDescriptionOut - Receives new CMVideoFormatDescription. API-Since: 8.0
      • CMVideoFormatDescriptionCopyAsBigEndianImageDescriptionBlockBuffer

        public static int CMVideoFormatDescriptionCopyAsBigEndianImageDescriptionBlockBuffer​(@Nullable
                                                                                             @Nullable CFAllocatorRef allocator,
                                                                                             @NotNull
                                                                                             @NotNull CMFormatDescriptionRef videoFormatDescription,
                                                                                             int stringEncoding,
                                                                                             @Nullable
                                                                                             @Nullable CFStringRef flavor,
                                                                                             @NotNull
                                                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMVideoFormatDescriptionCopyAsBigEndianImageDescriptionBlockBuffer Copies the contents of a CMVideoFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        videoFormatDescription - CMVideoFormatDescription to be copied.
        stringEncoding - Pass CFStringGetSystemEncoding() or GetApplicationTextEncoding().
        flavor - kCMImageDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        blockBufferOut - Receives new CMBlockBuffer containing ImageDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMSwapBigEndianImageDescriptionToHost

        public static int CMSwapBigEndianImageDescriptionToHost​(@NotNull
                                                                @NotNull org.moe.natj.general.ptr.BytePtr imageDescriptionData,
                                                                long imageDescriptionSize)
        [@function] CMSwapBigEndianImageDescriptionToHost Converts an ImageDescription data structure from big-endian to host-endian in place.
        Parameters:
        imageDescriptionData - ImageDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        imageDescriptionSize - Size of ImageDescription data structure. API-Since: 8.0
      • CMSwapHostEndianImageDescriptionToBig

        public static int CMSwapHostEndianImageDescriptionToBig​(@NotNull
                                                                @NotNull org.moe.natj.general.ptr.BytePtr imageDescriptionData,
                                                                long imageDescriptionSize)
        [@function] CMSwapHostEndianImageDescriptionToBig Converts an ImageDescription data structure from host-endian to big-endian in place.
        Parameters:
        imageDescriptionData - ImageDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        imageDescriptionSize - Size of ImageDescription data structure. API-Since: 8.0
      • CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData

        public static int CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData​(@Nullable
                                                                                          @Nullable CFAllocatorRef allocator,
                                                                                          @NotNull
                                                                                          @NotNull java.lang.String soundDescriptionData,
                                                                                          long size,
                                                                                          @Nullable
                                                                                          @Nullable CFStringRef flavor,
                                                                                          @NotNull
                                                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData Creates a CMAudioFormatDescription from a big-endian SoundDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMAudioFormatDescription object. May be NULL.
        soundDescriptionData - SoundDescription data structure in big-endian byte ordering.
        size - Size of SoundDescription data structure.
        flavor - kCMSoundDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        formatDescriptionOut - Receives new CMAudioFormatDescription. API-Since: 8.0
      • CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer

        public static int CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer​(@Nullable
                                                                                                 @Nullable CFAllocatorRef allocator,
                                                                                                 @NotNull
                                                                                                 @NotNull CMBlockBufferRef soundDescriptionBlockBuffer,
                                                                                                 @Nullable
                                                                                                 @Nullable CFStringRef flavor,
                                                                                                 @NotNull
                                                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer Creates a CMAudioFormatDescription from a big-endian SoundDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMAudioFormatDescription object. May be NULL.
        soundDescriptionBlockBuffer - CMBlockBuffer containing SoundDescription data structure in big-endian byte ordering.
        flavor - kCMSoundDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        formatDescriptionOut - Receives new CMAudioFormatDescription. API-Since: 8.0
      • CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer

        public static int CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer​(@Nullable
                                                                                             @Nullable CFAllocatorRef allocator,
                                                                                             @NotNull
                                                                                             @NotNull CMFormatDescriptionRef audioFormatDescription,
                                                                                             @Nullable
                                                                                             @Nullable CFStringRef flavor,
                                                                                             @NotNull
                                                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer Copies the contents of a CMAudioFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        audioFormatDescription - CMAudioFormatDescription to be copied.
        flavor - kCMSoundDescriptionFlavor constant or NULL for QuickTimeMovie flavor.
        blockBufferOut - Receives new CMBlockBuffer containing SoundDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout

        public static byte CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout​(@NotNull
                                                                                            @NotNull CMBlockBufferRef soundDescriptionBlockBuffer,
                                                                                            @Nullable
                                                                                            @Nullable CFStringRef flavor)
        [@function] CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout Examine a big-endian SoundDescription data structure in a CMBlockBuffer, and report whether the sample tables will need to use the legacy CBR layout.
        Parameters:
        soundDescriptionBlockBuffer - CMBlockBuffer containing SoundDescription data structure in big-endian byte ordering.
        flavor - kCMSoundDescriptionFlavor constant or NULL for QuickTimeMovie flavor. API-Since: 8.0
      • CMSwapBigEndianSoundDescriptionToHost

        public static int CMSwapBigEndianSoundDescriptionToHost​(@NotNull
                                                                @NotNull org.moe.natj.general.ptr.BytePtr soundDescriptionData,
                                                                long soundDescriptionSize)
        [@function] CMSwapBigEndianSoundDescriptionToHost Converts a SoundDescription data structure from big-endian to host-endian in place.
        Parameters:
        soundDescriptionData - SoundDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        soundDescriptionSize - Size of SoundDescription data structure. API-Since: 8.0
      • CMSwapHostEndianSoundDescriptionToBig

        public static int CMSwapHostEndianSoundDescriptionToBig​(@NotNull
                                                                @NotNull org.moe.natj.general.ptr.BytePtr soundDescriptionData,
                                                                long soundDescriptionSize)
        [@function] CMSwapHostEndianSoundDescriptionToBig Converts a SoundDescription data structure from host-endian to big-endian in place.
        Parameters:
        soundDescriptionData - SoundDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        soundDescriptionSize - Size of SoundDescription data structure. API-Since: 8.0
      • CMTextFormatDescriptionCreateFromBigEndianTextDescriptionData

        public static int CMTextFormatDescriptionCreateFromBigEndianTextDescriptionData​(@Nullable
                                                                                        @Nullable CFAllocatorRef allocator,
                                                                                        @NotNull
                                                                                        @NotNull java.lang.String textDescriptionData,
                                                                                        long size,
                                                                                        @Nullable
                                                                                        @Nullable CFStringRef flavor,
                                                                                        int mediaType,
                                                                                        @NotNull
                                                                                        @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTextFormatDescriptionCreateFromBigEndianTextDescriptionData Creates a CMTextFormatDescription from a big-endian TextDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMTextFormatDescription object. May be NULL.
        textDescriptionData - TextDescription data structure in big-endian byte ordering.
        size - Size of TextDescription data structure.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        mediaType - Pass kCMMediaType_Text or kCMMediaType_Subtitle.
        formatDescriptionOut - Receives new CMTextFormatDescription. API-Since: 8.0
      • CMTextFormatDescriptionCreateFromBigEndianTextDescriptionBlockBuffer

        public static int CMTextFormatDescriptionCreateFromBigEndianTextDescriptionBlockBuffer​(@Nullable
                                                                                               @Nullable CFAllocatorRef allocator,
                                                                                               @NotNull
                                                                                               @NotNull CMBlockBufferRef textDescriptionBlockBuffer,
                                                                                               @Nullable
                                                                                               @Nullable CFStringRef flavor,
                                                                                               int mediaType,
                                                                                               @NotNull
                                                                                               @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTextFormatDescriptionCreateFromBigEndianTextDescriptionBlockBuffer Creates a CMTextFormatDescription from a big-endian TextDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMTextFormatDescription object. May be NULL.
        textDescriptionBlockBuffer - CMBlockBuffer containing TextDescription data structure in big-endian byte ordering.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        mediaType - Pass kCMMediaType_Text or kCMMediaType_Subtitle.
        formatDescriptionOut - Receives new CMTextFormatDescription. API-Since: 8.0
      • CMTextFormatDescriptionCopyAsBigEndianTextDescriptionBlockBuffer

        public static int CMTextFormatDescriptionCopyAsBigEndianTextDescriptionBlockBuffer​(@Nullable
                                                                                           @Nullable CFAllocatorRef allocator,
                                                                                           @NotNull
                                                                                           @NotNull CMFormatDescriptionRef textFormatDescription,
                                                                                           @Nullable
                                                                                           @Nullable CFStringRef flavor,
                                                                                           @NotNull
                                                                                           @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMTextFormatDescriptionCopyAsBigEndianTextDescriptionBlockBuffer Copies the contents of a CMTextFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        textFormatDescription - CMTextFormatDescription to be copied.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        blockBufferOut - Receives new CMBlockBuffer containing TextDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMSwapBigEndianTextDescriptionToHost

        public static int CMSwapBigEndianTextDescriptionToHost​(@NotNull
                                                               @NotNull org.moe.natj.general.ptr.BytePtr textDescriptionData,
                                                               long textDescriptionSize)
        [@function] CMSwapBigEndianTextDescriptionToHost Converts a TextDescription data structure from big-endian to host-endian in place.
        Parameters:
        textDescriptionData - TextDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        textDescriptionSize - Size of TextDescription data structure. API-Since: 8.0
      • CMSwapHostEndianTextDescriptionToBig

        public static int CMSwapHostEndianTextDescriptionToBig​(@NotNull
                                                               @NotNull org.moe.natj.general.ptr.BytePtr textDescriptionData,
                                                               long textDescriptionSize)
        [@function] CMSwapHostEndianTextDescriptionToBig Converts a TextDescription data structure from host-endian to big-endian in place.
        Parameters:
        textDescriptionData - TextDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        textDescriptionSize - Size of TextDescription data structure. API-Since: 8.0
      • CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionData

        public static int CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionData​(@Nullable
                                                                                                          @Nullable CFAllocatorRef allocator,
                                                                                                          @NotNull
                                                                                                          @NotNull java.lang.String closedCaptionDescriptionData,
                                                                                                          long size,
                                                                                                          @Nullable
                                                                                                          @Nullable CFStringRef flavor,
                                                                                                          @NotNull
                                                                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionData Creates a CMClosedCaptionFormatDescription from a big-endian ClosedCaptionDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMClosedCaptionFormatDescription object. May be NULL.
        closedCaptionDescriptionData - ClosedCaptionDescription data structure in big-endian byte ordering.
        size - Size of ClosedCaptionDescription data structure.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMClosedCaptionFormatDescription. API-Since: 8.0
      • CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionBlockBuffer

        public static int CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionBlockBuffer​(@Nullable
                                                                                                                 @Nullable CFAllocatorRef allocator,
                                                                                                                 @NotNull
                                                                                                                 @NotNull CMBlockBufferRef closedCaptionDescriptionBlockBuffer,
                                                                                                                 @Nullable
                                                                                                                 @Nullable CFStringRef flavor,
                                                                                                                 @NotNull
                                                                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMClosedCaptionFormatDescriptionCreateFromBigEndianClosedCaptionDescriptionBlockBuffer Creates a CMClosedCaptionFormatDescription from a big-endian ClosedCaptionDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMClosedCaptionFormatDescription object. May be NULL.
        closedCaptionDescriptionBlockBuffer - CMBlockBuffer containing ClosedCaptionDescription data structure in big-endian byte ordering.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMClosedCaptionFormatDescription. API-Since: 8.0
      • CMClosedCaptionFormatDescriptionCopyAsBigEndianClosedCaptionDescriptionBlockBuffer

        public static int CMClosedCaptionFormatDescriptionCopyAsBigEndianClosedCaptionDescriptionBlockBuffer​(@Nullable
                                                                                                             @Nullable CFAllocatorRef allocator,
                                                                                                             @NotNull
                                                                                                             @NotNull CMFormatDescriptionRef closedCaptionFormatDescription,
                                                                                                             @Nullable
                                                                                                             @Nullable CFStringRef flavor,
                                                                                                             @NotNull
                                                                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMClosedCaptionFormatDescriptionCopyAsBigEndianClosedCaptionDescriptionBlockBuffer Copies the contents of a CMClosedCaptionFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        closedCaptionFormatDescription - CMClosedCaptionFormatDescription to be copied.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        blockBufferOut - Receives new CMBlockBuffer containing ClosedCaptionDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMSwapBigEndianClosedCaptionDescriptionToHost

        public static int CMSwapBigEndianClosedCaptionDescriptionToHost​(@NotNull
                                                                        @NotNull org.moe.natj.general.ptr.BytePtr closedCaptionDescriptionData,
                                                                        long closedCaptionDescriptionSize)
        [@function] CMSwapBigEndianClosedCaptionDescriptionToHost Converts a ClosedCaptionDescription data structure from big-endian to host-endian in place.
        Parameters:
        closedCaptionDescriptionData - ClosedCaptionDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        closedCaptionDescriptionSize - Size of ClosedCaptionDescription data structure. API-Since: 8.0
      • CMSwapHostEndianClosedCaptionDescriptionToBig

        public static int CMSwapHostEndianClosedCaptionDescriptionToBig​(@NotNull
                                                                        @NotNull org.moe.natj.general.ptr.BytePtr closedCaptionDescriptionData,
                                                                        long closedCaptionDescriptionSize)
        [@function] CMSwapHostEndianClosedCaptionDescriptionToBig Converts a ClosedCaptionDescription data structure from host-endian to big-endian in place.
        Parameters:
        closedCaptionDescriptionData - ClosedCaptionDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        closedCaptionDescriptionSize - Size of ClosedCaptionDescription data structure. API-Since: 8.0
      • CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionData

        public static int CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionData​(@Nullable
                                                                                                @Nullable CFAllocatorRef allocator,
                                                                                                @NotNull
                                                                                                @NotNull java.lang.String timeCodeDescriptionData,
                                                                                                long size,
                                                                                                @Nullable
                                                                                                @Nullable CFStringRef flavor,
                                                                                                @NotNull
                                                                                                @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionData Creates a CMTimeCodeFormatDescription from a big-endian TimeCodeDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMTimeCodeFormatDescription object. May be NULL.
        timeCodeDescriptionData - TimeCodeDescription data structure in big-endian byte ordering.
        size - Size of TimeCodeDescription data structure.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMTimeCodeFormatDescription. API-Since: 8.0
      • CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionBlockBuffer

        public static int CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionBlockBuffer​(@Nullable
                                                                                                       @Nullable CFAllocatorRef allocator,
                                                                                                       @NotNull
                                                                                                       @NotNull CMBlockBufferRef timeCodeDescriptionBlockBuffer,
                                                                                                       @Nullable
                                                                                                       @Nullable CFStringRef flavor,
                                                                                                       @NotNull
                                                                                                       @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTimeCodeFormatDescriptionCreateFromBigEndianTimeCodeDescriptionBlockBuffer Creates a CMTimeCodeFormatDescription from a big-endian TimeCodeDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMTimeCodeFormatDescription object. May be NULL.
        timeCodeDescriptionBlockBuffer - CMBlockBuffer containing TimeCodeDescription data structure in big-endian byte ordering.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMTimeCodeFormatDescription. API-Since: 8.0
      • CMTimeCodeFormatDescriptionCopyAsBigEndianTimeCodeDescriptionBlockBuffer

        public static int CMTimeCodeFormatDescriptionCopyAsBigEndianTimeCodeDescriptionBlockBuffer​(@Nullable
                                                                                                   @Nullable CFAllocatorRef allocator,
                                                                                                   @NotNull
                                                                                                   @NotNull CMFormatDescriptionRef timeCodeFormatDescription,
                                                                                                   @Nullable
                                                                                                   @Nullable CFStringRef flavor,
                                                                                                   @NotNull
                                                                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMTimeCodeFormatDescriptionCopyAsBigEndianTimeCodeDescriptionBlockBuffer Copies the contents of a CMTimeCodeFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        timeCodeFormatDescription - CMTimeCodeFormatDescription to be copied.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        blockBufferOut - Receives new CMBlockBuffer containing TimeCodeDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMSwapBigEndianTimeCodeDescriptionToHost

        public static int CMSwapBigEndianTimeCodeDescriptionToHost​(@NotNull
                                                                   @NotNull org.moe.natj.general.ptr.BytePtr timeCodeDescriptionData,
                                                                   long timeCodeDescriptionSize)
        [@function] CMSwapBigEndianTimeCodeDescriptionToHost Converts a TimeCodeDescription data structure from big-endian to host-endian in place.
        Parameters:
        timeCodeDescriptionData - TimeCodeDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        timeCodeDescriptionSize - Size of TimeCodeDescription data structure. API-Since: 8.0
      • CMSwapHostEndianTimeCodeDescriptionToBig

        public static int CMSwapHostEndianTimeCodeDescriptionToBig​(@NotNull
                                                                   @NotNull org.moe.natj.general.ptr.BytePtr timeCodeDescriptionData,
                                                                   long timeCodeDescriptionSize)
        [@function] CMSwapHostEndianTimeCodeDescriptionToBig Converts a TimeCodeDescription data structure from host-endian to big-endian in place.
        Parameters:
        timeCodeDescriptionData - TimeCodeDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        timeCodeDescriptionSize - Size of TimeCodeDescription data structure. API-Since: 8.0
      • CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionData

        public static int CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionData​(@Nullable
                                                                                                @Nullable CFAllocatorRef allocator,
                                                                                                @NotNull
                                                                                                @NotNull java.lang.String metadataDescriptionData,
                                                                                                long size,
                                                                                                @Nullable
                                                                                                @Nullable CFStringRef flavor,
                                                                                                @NotNull
                                                                                                @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionData Creates a CMMetadataFormatDescription from a big-endian MetadataDescription data structure.
        Parameters:
        allocator - Allocator to use for allocating the CMMetadataFormatDescription object. May be NULL.
        metadataDescriptionData - MetadataDescription data structure in big-endian byte ordering.
        size - Size of MetadataDescription data structure.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMMetadataFormatDescriptionRef. API-Since: 8.0
      • CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionBlockBuffer

        public static int CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionBlockBuffer​(@Nullable
                                                                                                       @Nullable CFAllocatorRef allocator,
                                                                                                       @NotNull
                                                                                                       @NotNull CMBlockBufferRef metadataDescriptionBlockBuffer,
                                                                                                       @Nullable
                                                                                                       @Nullable CFStringRef flavor,
                                                                                                       @NotNull
                                                                                                       @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionBlockBuffer Creates a CMMetadataFormatDescription from a big-endian MetadataDescription data structure in a CMBlockBuffer.
        Parameters:
        allocator - Allocator to use for allocating the CMMetadataFormatDescription object. May be NULL.
        metadataDescriptionBlockBuffer - CMBlockBuffer containing MetadataDescription data structure in big-endian byte ordering.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        formatDescriptionOut - Receives new CMMetadataFormatDescriptionRef. API-Since: 8.0
      • CMMetadataFormatDescriptionCopyAsBigEndianMetadataDescriptionBlockBuffer

        public static int CMMetadataFormatDescriptionCopyAsBigEndianMetadataDescriptionBlockBuffer​(@Nullable
                                                                                                   @Nullable CFAllocatorRef allocator,
                                                                                                   @NotNull
                                                                                                   @NotNull CMFormatDescriptionRef metadataFormatDescription,
                                                                                                   @Nullable
                                                                                                   @Nullable CFStringRef flavor,
                                                                                                   @NotNull
                                                                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMBlockBufferRef> blockBufferOut)
        [@function] CMMetadataFormatDescriptionCopyAsBigEndianMetadataDescriptionBlockBuffer Copies the contents of a CMMetadataFormatDescription to a CMBlockBuffer in big-endian byte ordering. On return, the caller owns the returned CMBlockBuffer, and must release it when done with it. Note that the dataRefIndex field of the SampleDescription is intentionally filled with garbage values (0xFFFF). The caller must overwrite these values with a valid dataRefIndex if writing the SampleDescription to a QuickTime/ISO file.
        Parameters:
        allocator - Allocator to use for allocating the CMBlockBuffer object. May be NULL.
        metadataFormatDescription - CMMetadataFormatDescriptionRef to be copied.
        flavor - Reserved for future use. Pass NULL for QuickTime Movie or ISO flavor.
        blockBufferOut - Receives new CMBlockBuffer containing MetadataDescription data structure in big-endian byte ordering. API-Since: 8.0
      • CMSwapBigEndianMetadataDescriptionToHost

        public static int CMSwapBigEndianMetadataDescriptionToHost​(@NotNull
                                                                   @NotNull org.moe.natj.general.ptr.BytePtr metadataDescriptionData,
                                                                   long metadataDescriptionSize)
        [@function] CMSwapBigEndianMetadataDescriptionToHost Converts a MetadataDescription data structure from big-endian to host-endian in place.
        Parameters:
        metadataDescriptionData - MetadataDescription data structure in big-endian byte ordering to be converted to host-endian byte ordering.
        metadataDescriptionSize - Size of MetadataDescription data structure. API-Since: 8.0
      • CMSwapHostEndianMetadataDescriptionToBig

        public static int CMSwapHostEndianMetadataDescriptionToBig​(@NotNull
                                                                   @NotNull org.moe.natj.general.ptr.BytePtr metadataDescriptionData,
                                                                   long metadataDescriptionSize)
        [@function] CMSwapHostEndianMetadataDescriptionToBig Converts a MetadataDescription data structure from host-endian to big-endian in place.
        Parameters:
        metadataDescriptionData - MetadataDescription data structure in host-endian byte ordering to be converted to big-endian byte ordering.
        metadataDescriptionSize - Size of MetadataDescription data structure. API-Since: 8.0
      • CMBufferQueueGetCallbacksForUnsortedSampleBuffers

        @NotNull
        public static @NotNull CMBufferCallbacks CMBufferQueueGetCallbacksForUnsortedSampleBuffers()
        [@function] CMBufferQueueGetCallbacksForUnsortedSampleBuffers Returns a pointer to a callback struct for unsorted CMSampleBuffers, provided as a convenience. API-Since: 4.0
      • CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS

        @NotNull
        public static @NotNull CMBufferCallbacks CMBufferQueueGetCallbacksForSampleBuffersSortedByOutputPTS()
        [@function] CMBufferQueueGetCallbacksForOutputPTSSortedSampleBuffers Returns a pointer to a callback struct for CMSampleBuffers sorted by output presentation timestamp, provided as a convenience. API-Since: 4.3
      • CMBufferQueueCreate

        public static int CMBufferQueueCreate​(@Nullable
                                              @Nullable CFAllocatorRef allocator,
                                              long capacity,
                                              @NotNull
                                              @NotNull CMBufferCallbacks callbacks,
                                              @NotNull
                                              @NotNull org.moe.natj.general.ptr.Ptr<CMBufferQueueRef> queueOut)
        [@function] CMBufferQueueCreate Creates a CMBufferQueue object. On return, the caller owns the returned CMBufferQueue, and must release it when done with it. API-Since: 4.0
      • CMBufferQueueGetTypeID

        public static long CMBufferQueueGetTypeID()
        [@function] CMBufferQueueGetTypeID Returns the CFTypeID of CMBufferQueue objects. You can check if a CFTypeRef object is actually a CMBufferQueue by comparing CFGetTypeID(object) with CMBufferQueueGetTypeID().
        Returns:
        CFTypeID of CMBufferQueue objects. API-Since: 4.0
      • CMBufferQueueEnqueue

        public static int CMBufferQueueEnqueue​(@NotNull
                                               @NotNull CMBufferQueueRef queue,
                                               @NotNull
                                               @NotNull org.moe.natj.general.ptr.ConstVoidPtr buf)
        [@function] CMBufferQueueEnqueue Enqueues a buffer onto a CMBufferQueue. The buffer is retained by the queue, so the client can safely release the buffer if it has no further use for it. If the compare callback is non-NULL, this API performs an insertion sort using that compare operation. If the validation callback is non-NULL, this API calls it; if it returns a nonzero OSStatus, the buffer will not be enqueued and this API will return the same error OSStatus. API-Since: 4.0
      • CMBufferQueueDequeueAndRetain

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMBufferQueueDequeueAndRetain​(@NotNull
                                                                                                    @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueDequeueAndRetain Dequeues a buffer from a CMBufferQueue. The buffer is released by the queue, but it is also retained for the client. Buffer ownership is thereby transferred from queue to client. The client need not retain the buffer, but is responsible to release it when done with it.
        Returns:
        The dequeued buffer. Will be NULL if the queue is empty. API-Since: 4.0
      • CMBufferQueueDequeueIfDataReadyAndRetain

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMBufferQueueDequeueIfDataReadyAndRetain​(@NotNull
                                                                                                               @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueDequeueIfDataReadyAndRetain Dequeues a buffer from a CMBufferQueue if it is ready. The buffer is released by the queue, but it is also retained for the client. Buffer ownership is thereby transferred from queue to client. The client need not retain the buffer, but is responsible to release it when done with it.
        Returns:
        The dequeued buffer. Will be NULL if the queue is empty, or if the buffer to be dequeued is not yet ready. API-Since: 4.0
      • CMBufferQueueGetHead

        @Deprecated
        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMBufferQueueGetHead​(@NotNull
                                                                                           @NotNull CMBufferQueueRef queue)
        Deprecated.
        [@function] CMBufferQueueGetHead Retrieves the next-to-dequeue buffer from a CMBufferQueue but leaves it in the queue. This follows CF "Get" semantics -- it does not retain the returned buffer. Note that with non-FIFO queues it's not guaranteed that the next dequeue will return this particular buffer (if an intervening Enqueue adds a buffer that will dequeue next). This function is deprecated in favor of CMBufferQueueCopyHead() which returns a retained buffer. When adopting CMBufferQueueCopyHead(), existing CFRetain() call on the buffer returned from this function must be removed.
        Returns:
        The buffer. Will be NULL if the queue is empty. API-Since: 4.0 Deprecated-Since: 100000.0
      • CMBufferQueueIsEmpty

        public static byte CMBufferQueueIsEmpty​(@NotNull
                                                @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueIsEmpty Returns whether or not a CMBufferQueue is empty.
        Returns:
        Whether or not the CMBufferQueue is empty. If queue is NULL, true is returned. API-Since: 4.0
      • CMBufferQueueMarkEndOfData

        public static int CMBufferQueueMarkEndOfData​(@NotNull
                                                     @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueMarkEndOfData Marks a CMBufferQueue with EOD. All subsequent Enqueues will be rejected until CMBufferQueueReset is called. Subsequent Dequeues will succeed as long as the queue is not empty. API-Since: 4.0
      • CMBufferQueueContainsEndOfData

        public static byte CMBufferQueueContainsEndOfData​(@NotNull
                                                          @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueContainsEndOfData Returns whether or not a CMBufferQueue has been marked with EOD.
        Returns:
        Whether or not the CMBufferQueue has been marked with EOD. If queue is NULL, true is returned (a NULL queue is considered to be empty, and permanently at EOD). API-Since: 4.0
      • CMBufferQueueIsAtEndOfData

        public static byte CMBufferQueueIsAtEndOfData​(@NotNull
                                                      @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueIsAtEndOfData Returns whether or not a CMBufferQueue has been marked with EOD, and is now empty.
        Returns:
        Whether or not the CMBufferQueue has been marked with EOD, and is now empty. If queue is NULL, true is returned (a NULL queue is considered to be empty, and permanently at EOD). API-Since: 4.0
      • CMBufferQueueReset

        public static int CMBufferQueueReset​(@NotNull
                                             @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueReset Resets a CMBufferQueue. Empties the queue, and clears any EOD mark. All buffers in the queue are released. Triggers are not removed, however, and will be called appropriately as the queue duration goes to zero. API-Since: 4.0
      • CMBufferQueueResetWithCallback

        public static int CMBufferQueueResetWithCallback​(@NotNull
                                                         @NotNull CMBufferQueueRef queue,
                                                         @NotNull
                                                         @NotNull CoreMedia.Function_CMBufferQueueResetWithCallback callback,
                                                         @Nullable
                                                         @Nullable org.moe.natj.general.ptr.VoidPtr refcon)
        [@function] CMBufferQueueResetWithCallback Calls a function for every buffer in a queue, then resets the queue. API-Since: 4.0
      • CMBufferQueueGetBufferCount

        public static long CMBufferQueueGetBufferCount​(@NotNull
                                                       @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetBufferCount Gets the number of buffers in the queue. API-Since: 4.0
      • CMBufferQueueGetDuration

        public static CMTime CMBufferQueueGetDuration​(@NotNull
                                                      @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetDuration Gets the duration of a CMBufferQueue. The duration of the CMBufferQueue is the sum of all the individual buffer durations, as reported by the getDuration callback (provided to CMBufferQueueCreate). If there are no buffers in the queue, kCMTimeZero will be returned. API-Since: 4.0
      • CMBufferQueueGetMinDecodeTimeStamp

        public static CMTime CMBufferQueueGetMinDecodeTimeStamp​(@NotNull
                                                                @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetMinDecodeTimeStamp Gets the earliest decode timestamp of a CMBufferQueue. The search for earliest decode timstamp is performed in this API. If you know your queue is in decode order, GetFirstDecodeTimeStamp is a faster alternative. If the getDecodeTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetFirstDecodeTimeStamp

        public static CMTime CMBufferQueueGetFirstDecodeTimeStamp​(@NotNull
                                                                  @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetFirstDecodeTimeStamp Gets the decode timestamp of the first buffer in a CMBufferQueue. This API is is a faster alternative to GetMinDecodeTimeStamp, but only gives the same answer if your queue is in decode order. If the getDecodeTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetMinPresentationTimeStamp

        public static CMTime CMBufferQueueGetMinPresentationTimeStamp​(@NotNull
                                                                      @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetMinPresentationTimeStamp Gets the earliest presentation timestamp of a CMBufferQueue. The search for earliest presentation timstamp is performed in this API. If you know your queue is sorted by presentation time, GetFirstPresentationTimeStamp is a faster alternative. If the getPresentationTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetFirstPresentationTimeStamp

        public static CMTime CMBufferQueueGetFirstPresentationTimeStamp​(@NotNull
                                                                        @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetFirstPresentationTimeStamp Gets the presentation timestamp of the first buffer in a CMBufferQueue. This API is is a faster alternative to GetMinPresentationTimeStamp, but only works if you know your queue is sorted by presentation timestamp. If the getPresentationTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetMaxPresentationTimeStamp

        public static CMTime CMBufferQueueGetMaxPresentationTimeStamp​(@NotNull
                                                                      @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetMaxPresentationTimeStamp Gets the greatest presentation timestamp of a CMBufferQueue. If the getPresentationTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetEndPresentationTimeStamp

        public static CMTime CMBufferQueueGetEndPresentationTimeStamp​(@NotNull
                                                                      @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetEndPresentationTimeStamp Gets the greatest end presentation timestamp of a CMBufferQueue. This is the maximum end time (PTS + duration) of buffers in the queue. If the getPresentationTimeStamp callback is NULL, kCMTimeInvalid will be returned. API-Since: 4.0
      • CMBufferQueueGetTotalSize

        public static long CMBufferQueueGetTotalSize​(@NotNull
                                                     @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueGetTotalSize Gets the total size of all sample buffers of a CMBufferQueue. The total size of the CMBufferQueue is the sum of all the individual buffer sizes, as reported by the getTotalSize callback (provided to CMBufferQueueCreate). If there are no buffers in the queue, 0 will be returned. API-Since: 7.1
      • CMBufferQueueInstallTrigger

        public static int CMBufferQueueInstallTrigger​(@NotNull
                                                      @NotNull CMBufferQueueRef queue,
                                                      @Nullable
                                                      @Nullable CoreMedia.Function_CMBufferQueueInstallTrigger callback,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.VoidPtr refcon,
                                                      int condition,
                                                      CMTime time,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.Ptr<CMBufferQueueTriggerToken> triggerTokenOut)
        [@function] CMBufferQueueInstallTrigger Installs a trigger on a CMBufferQueue. The returned trigger token can be passed to CMBufferQueueTestTrigger and CMBufferQueueRemoveTrigger. The triggerTokenOut parameter can be NULL (client doesn't need to test or remove trigger), and the callback parameter can be NULL (client doesn't need callbacks, but rather will explicitly test the trigger). One of these two parameters must be non-NULL, however, since an untestable trigger that does not perform a callback is meaningless. If the trigger condition is already true, CMBufferQueueInstallTrigger will call the callback. If it does this, it will first write the trigger token to *triggerTokenOut. API-Since: 4.0
      • CMBufferQueueInstallTriggerWithIntegerThreshold

        public static int CMBufferQueueInstallTriggerWithIntegerThreshold​(@NotNull
                                                                          @NotNull CMBufferQueueRef queue,
                                                                          @Nullable
                                                                          @Nullable CoreMedia.Function_CMBufferQueueInstallTriggerWithIntegerThreshold callback,
                                                                          @Nullable
                                                                          @Nullable org.moe.natj.general.ptr.VoidPtr refcon,
                                                                          int condition,
                                                                          long threshold,
                                                                          @Nullable
                                                                          @Nullable org.moe.natj.general.ptr.Ptr<CMBufferQueueTriggerToken> triggerTokenOut)
        [@function] CMBufferQueueInstallTriggerWithIntegerThreshold Installs a trigger on a CMBufferQueue. This function behaves the same way as CMBufferQueueInstallTrigger() except the trigger is evaluated against the integer value rather than the time value. API-Since: 4.0
      • CMBufferQueueRemoveTrigger

        public static int CMBufferQueueRemoveTrigger​(@NotNull
                                                     @NotNull CMBufferQueueRef queue,
                                                     @NotNull
                                                     @NotNull CMBufferQueueTriggerToken triggerToken)
        [@function] CMBufferQueueRemoveTrigger Removes a previously installed trigger from a CMBufferQueue. Triggers will automatically be removed when a queue is finalized. However, if more than one module has access to a queue, it may be hard for an individual module to know when the queue is finalized since other modules may retain it. To address this concern, modules should remove their triggers before they themselves are finalized. API-Since: 4.0
      • CMBufferQueueTestTrigger

        public static byte CMBufferQueueTestTrigger​(@NotNull
                                                    @NotNull CMBufferQueueRef queue,
                                                    @NotNull
                                                    @NotNull CMBufferQueueTriggerToken triggerToken)
        [@function] CMBufferQueueTestTrigger Tests whether the trigger condition is true. Whereas the trigger callback will only be called when the condition goes from false to true, CMBufferQueueTestTrigger always returns the condition's current status. The triggerToken must be one that has been installed on this queue. API-Since: 4.0
      • CMBufferQueueCallForEachBuffer

        public static int CMBufferQueueCallForEachBuffer​(@NotNull
                                                         @NotNull CMBufferQueueRef queue,
                                                         @NotNull
                                                         @NotNull CoreMedia.Function_CMBufferQueueCallForEachBuffer callback,
                                                         @Nullable
                                                         @Nullable org.moe.natj.general.ptr.VoidPtr refcon)
        [@function] CMBufferQueueCallForEachBuffer Calls a function for every buffer in a queue. If the callback function returns an error, iteration will stop immediately and the error will be returned. API-Since: 4.0
      • CMBufferQueueSetValidationCallback

        public static int CMBufferQueueSetValidationCallback​(@NotNull
                                                             @NotNull CMBufferQueueRef queue,
                                                             @NotNull
                                                             @NotNull CoreMedia.Function_CMBufferQueueSetValidationCallback callback,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.VoidPtr refcon)
        [@function] CMBufferQueueSetValidationCallback Sets a function that CMBufferQueueEnqueue will call to validate buffers before adding them to the queue. API-Since: 4.0
      • CMSimpleQueueGetTypeID

        public static long CMSimpleQueueGetTypeID()
        [@function] CMSimpleQueueGetTypeID Returns the CFTypeID of CMSimpleQueue objects. You can check if a CFTypeRef object is actually a CMSimpleQueue by comparing CFGetTypeID(object) with CMSimpleQueueGetTypeID().
        Returns:
        CFTypeID of CMSimpleQueue objects. API-Since: 5.0
      • CMSimpleQueueCreate

        public static int CMSimpleQueueCreate​(@Nullable
                                              @Nullable CFAllocatorRef allocator,
                                              int capacity,
                                              @NotNull
                                              @NotNull org.moe.natj.general.ptr.Ptr<CMSimpleQueueRef> queueOut)
        [@function] CMSimpleQueueCreate Creates a CMSimpleQueue. On return, the caller owns the returned CMSimpleQueue, and must release it when done with it.
        Returns:
        Returns noErr if the call succeeds. Returns kCMSimpleQueueError_ParameterOutOfRange if capacity is negative. API-Since: 5.0
      • CMSimpleQueueEnqueue

        public static int CMSimpleQueueEnqueue​(@NotNull
                                               @NotNull CMSimpleQueueRef queue,
                                               @NotNull
                                               @NotNull org.moe.natj.general.ptr.ConstVoidPtr element)
        [@function] CMSimpleQueueEnqueue Enqueues an element on the queue. If the queue is full, this operation will fail.
        Returns:
        Returns noErr if the call succeeds, kCMSimpleQueueError_QueueIsFull if the queue is full. API-Since: 5.0
      • CMSimpleQueueDequeue

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMSimpleQueueDequeue​(@NotNull
                                                                                           @NotNull CMSimpleQueueRef queue)
        [@function] CMSimpleQueueDequeue Dequeues an element from the queue. If the queue is empty, NULL will be returned.
        Returns:
        The dequeued element. NULL if the queue was empty, or if there was some other error. API-Since: 5.0
      • CMSimpleQueueGetHead

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMSimpleQueueGetHead​(@NotNull
                                                                                           @NotNull CMSimpleQueueRef queue)
        [@function] CMSimpleQueueGetHead Returns the element at the head of the queue. If the queue is empty, NULL will be returned.
        Returns:
        The head element. NULL if the queue was empty, or if there was some other error. API-Since: 5.0
      • CMSimpleQueueReset

        public static int CMSimpleQueueReset​(@NotNull
                                             @NotNull CMSimpleQueueRef queue)
        [@function] CMSimpleQueueReset Resets the queue. This function resets the queue to its empty state; all values in the queue prior to reset are lost. Note that CMSimpleQueueReset is not synchronized in any way, so the reader thread and writer thread must be held off by the client during this operation.
        Returns:
        Returns noErr if the call succeeds. API-Since: 5.0
      • CMSimpleQueueGetCapacity

        public static int CMSimpleQueueGetCapacity​(@NotNull
                                                   @NotNull CMSimpleQueueRef queue)
        [@function] CMSimpleQueueGetCapacity Returns the number of elements that can be held in the queue.
        Returns:
        The number of elements that can be held in the queue. Returns 0 if there is an error. API-Since: 5.0
      • CMSimpleQueueGetCount

        public static int CMSimpleQueueGetCount​(@NotNull
                                                @NotNull CMSimpleQueueRef queue)
        [@function] CMSimpleQueueGetCount Returns the number of elements currently on the queue.
        Returns:
        The number of elements currently in the queue. Returns 0 if there is an error. API-Since: 5.0
      • CMMemoryPoolGetTypeID

        public static long CMMemoryPoolGetTypeID()
        API-Since: 6.0
      • CMMemoryPoolCreate

        @NotNull
        public static @NotNull CMMemoryPoolRef CMMemoryPoolCreate​(@Nullable
                                                                  @Nullable CFDictionaryRef options)
        [@function] CMMemoryPoolCreate Creates a new CMMemoryPool. API-Since: 6.0
      • CMMemoryPoolGetAllocator

        @NotNull
        public static @NotNull CFAllocatorRef CMMemoryPoolGetAllocator​(@NotNull
                                                                       @NotNull CMMemoryPoolRef pool)
        [@function] CMMemoryPoolGetAllocator Returns the pool's CFAllocator. API-Since: 6.0
      • CMMemoryPoolFlush

        public static void CMMemoryPoolFlush​(@NotNull
                                             @NotNull CMMemoryPoolRef pool)
        [@function] CMMemoryPoolFlush Deallocates all memory the pool was holding for recycling. API-Since: 6.0
      • CMMemoryPoolInvalidate

        public static void CMMemoryPoolInvalidate​(@NotNull
                                                  @NotNull CMMemoryPoolRef pool)
        [@function] CMMemoryPoolInvalidate Stops the pool from recycling. When CMMemoryPoolInvalidate is called the pool's allocator stops recycling memory. The pool deallocates any memory it was holding for recycling. This also happens when the retain count of the CMMemoryPool drops to zero, except that under GC it may be delayed. API-Since: 6.0
      • CMMetadataCreateIdentifierForKeyAndKeySpace

        public static int CMMetadataCreateIdentifierForKeyAndKeySpace​(@Nullable
                                                                      @Nullable CFAllocatorRef allocator,
                                                                      @NotNull
                                                                      @NotNull org.moe.natj.general.ptr.ConstVoidPtr key,
                                                                      @NotNull
                                                                      @NotNull CFStringRef keySpace,
                                                                      @NotNull
                                                                      @NotNull org.moe.natj.general.ptr.Ptr<CFStringRef> identifierOut)
        [@function] CMMetadataCreateIdentifierForKeyAndKeySpace Creates a URL-like string identifier that represents a key/keyspace tuple. Metadata entities are identified by a key whose interpretation is defined by its keyspace. When writing metadata to a QuickTime Movie, this tuple is part of the track's format description. The following constants make up the current list of supported keyspaces, which are documented elsewhere in this file:
          kCMMetadataKeySpace_QuickTimeUserData
        • kCMMetadataKeySpace_ISOUserData
        • kCMMetadataKeySpace_iTunes
        • kCMMetadataKeySpace_ID3
        • kCMMetadataKeySpace_QuickTimeMetadata
        • kCMMetadataKeySpace_Icy
        Some keyspaces use OSTypes (a.k.a. FourCharCodes) to define their keys, and as such their keys are four bytes in length. The keyspaces that fall into this category are: kCMMetadataKeySpace_QuickTimeUserData, kCMMetadataKeySpace_ISOUserData, kCMMetadataKeySpace_iTunes, and kCMMetadataKeySpace_ID3. The keyspace kCMMetadataKeySpace_QuickTimeMetadata defines its key values to be expressed as reverse-DNS strings, which allows third parties to define their own keys in a well established way that avoids collisions. As a matter of convenience, known keyspaces allow for a key to be passed in using a variety of CFTypes. Note that what is returned by CMMetadataCreateKeyFromIdentifier depends upon the keyspace, and may be a different CFType than what is passed to this routine (see the discussion below for what CFTypes are returned for known keyspaces). To get a key represented as CFData, call CMMetadataCreateKeyFromIdentifierAsCFData. For OSType keyspaces, a key may be passed as a CFNumber, a CFString, or a CFData. A key passed as a CFNumber will have its value retrieved as kCFNumberSInt32Type comprising the four bytes of the key’s numeric value in big-endian byte order. A key passed as a CFString must be a valid ASCII string of four characters. A key passed as a CFData must be comprised of the four bytes of the key’s numeric value in big-endian byte order. All other keyspaces allow the key to be passed as a CFString or CFData. In both cases, the key will be interpreted as an ASCII string for the purposes of identifier encoding. API-Since: 8.0
      • CMMetadataCreateKeyFromIdentifier

        public static int CMMetadataCreateKeyFromIdentifier​(@Nullable
                                                            @Nullable CFAllocatorRef allocator,
                                                            @NotNull
                                                            @NotNull CFStringRef identifier,
                                                            @NotNull
                                                            @NotNull org.moe.natj.general.ptr.Ptr<org.moe.natj.general.ptr.ConstVoidPtr> keyOut)
        [@function] CMMetadataCreateKeyFromIdentifier Creates a copy of the key encoded in the identifier as a CFType. The returned CFType is based on the keyspace encoded in the identifier. For OSType keyspaces, the key will be returned as a CFNumber, where a big endian interpretation of its kCFNumberSInt32Type value represents the four bytes of the key's numeric value. For the keyspaces kCMMetadataKeySpace_QuickTimeMetadata and kCMMetadataKeySpace_Icy, the key will be returned as a CFString. All other keyspaces will have the function return the key as a CFData. API-Since: 8.0
      • CMMetadataCreateKeyFromIdentifierAsCFData

        public static int CMMetadataCreateKeyFromIdentifierAsCFData​(@Nullable
                                                                    @Nullable CFAllocatorRef allocator,
                                                                    @NotNull
                                                                    @NotNull CFStringRef identifier,
                                                                    @NotNull
                                                                    @NotNull org.moe.natj.general.ptr.Ptr<CFDataRef> keyOut)
        [@function] CMMetadataCreateKeyFromIdentifierAsCFData Creates a copy of the key value that was encoded in the identifier as CFData. The bytes in the CFData correpsond to how they are serialized in the file. API-Since: 8.0
      • CMMetadataCreateKeySpaceFromIdentifier

        public static int CMMetadataCreateKeySpaceFromIdentifier​(@Nullable
                                                                 @Nullable CFAllocatorRef allocator,
                                                                 @NotNull
                                                                 @NotNull CFStringRef identifier,
                                                                 @NotNull
                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CFStringRef> keySpaceOut)
        [@function] CMMetadataCreateKeySpaceFromIdentifier Creates a copy of the key value that was encoded in the identifier as CFData. API-Since: 8.0
      • CMMetadataDataTypeRegistryRegisterDataType

        public static int CMMetadataDataTypeRegistryRegisterDataType​(@NotNull
                                                                     @NotNull CFStringRef dataType,
                                                                     @NotNull
                                                                     @NotNull CFStringRef description,
                                                                     @NotNull
                                                                     @NotNull CFArrayRef conformingDataTypes)
        [@function] CMMetadataDataTypeRegistryRegisterDataType Register a data type with the data type registry. This routine is called by clients to register a data type with the data type registry. The list of conforming data type identifiers must include a base data type. If the data type has already been registered, then it is not considered an error to re-register it as long as the list of conforming data type identifiers has the same entries as the original; otherwise an error will be returned. API-Since: 8.0
      • CMMetadataDataTypeRegistryDataTypeIsRegistered

        public static byte CMMetadataDataTypeRegistryDataTypeIsRegistered​(@NotNull
                                                                          @NotNull CFStringRef dataType)
        [@function] CMMetadataDataTypeRegistryDataTypeIsRegistered Tests a data type identifier to see if it has been registered. API-Since: 8.0
      • CMMetadataDataTypeRegistryGetDataTypeDescription

        @NotNull
        public static @NotNull CFStringRef CMMetadataDataTypeRegistryGetDataTypeDescription​(@NotNull
                                                                                            @NotNull CFStringRef dataType)
        [@function] CMMetadataDataTypeRegistryGetDataTypeDescription Returns the data type's description (if any was provided when it was registered). API-Since: 8.0
      • CMMetadataDataTypeRegistryGetConformingDataTypes

        @NotNull
        public static @NotNull CFArrayRef CMMetadataDataTypeRegistryGetConformingDataTypes​(@NotNull
                                                                                           @NotNull CFStringRef dataType)
        [@function] CMMetadataDataTypeRegistryGetConformingDataTypes Returns the data type's conforming data types (if any were provided when it was registered). [@returns] List of conforming data types registered for the given data type. NULL is returned if the data type has not been registered. API-Since: 8.0
      • CMMetadataDataTypeRegistryDataTypeConformsToDataType

        public static byte CMMetadataDataTypeRegistryDataTypeConformsToDataType​(@NotNull
                                                                                @NotNull CFStringRef dataType,
                                                                                @NotNull
                                                                                @NotNull CFStringRef conformsToDataType)
        [@function] CMMetadataDataTypeRegistryDataTypeConformsToDataType Checks to see if a data type conforms to another data type. A given data type will conform to a second data type if any of the following are true:
          1. The data type identifiers are the same.
        • 2. The first data type identifier's conformance list contains the second data type identifier.
        • 3. A recursive search of the conforming data types for each element in the first
        • data type's conformance list yields the second data type identifer.
        [@returns] True if the first data type conforms to the second data type. API-Since: 8.0
      • CMMetadataDataTypeRegistryGetBaseDataTypes

        @Nullable
        public static @Nullable CFArrayRef CMMetadataDataTypeRegistryGetBaseDataTypes()
        [@function] CMMetadataDataTypeRegistryGetBaseDataTypes Returns an array of base data type identifiers. There are a set of base data types that seed the data type registry. All valid data types will have their conformance search end with a base data type. API-Since: 8.0
      • CMMetadataDataTypeRegistryDataTypeIsBaseDataType

        public static byte CMMetadataDataTypeRegistryDataTypeIsBaseDataType​(@NotNull
                                                                            @NotNull CFStringRef dataType)
        [@function] CMMetadataDataTypeRegistryDataTypeIsBaseDataType Tests a data type identifier to see if it represents a base data type. This is simply a convenience method to test to see if a given data type identifier is in the array returned by CMMetadataDataTypeRegistryGetBaseDataTypes. API-Since: 8.0
      • CMMetadataDataTypeRegistryGetBaseDataTypeForConformingDataType

        @NotNull
        public static @NotNull CFStringRef CMMetadataDataTypeRegistryGetBaseDataTypeForConformingDataType​(@NotNull
                                                                                                          @NotNull CFStringRef dataType)
        [@function] CMMetadataDataTypeRegistryGetBaseDataTypeForConformingDataType Returns the base data type identifier that the given data type conforms to. There are a set of base data types that seed the data type registry. All valid data types will have their conformance search end with a base data type. API-Since: 8.0
      • CMAudioClockCreate

        public static int CMAudioClockCreate​(@Nullable
                                             @Nullable CFAllocatorRef allocator,
                                             @NotNull
                                             @NotNull org.moe.natj.general.ptr.Ptr<CMClockRef> clockOut)
        [@function] CMAudioClockCreate Creates a clock that advances at the same rate as audio output. This clock will not drift from audio output, but may drift from CMClockGetHostTimeClock(). When audio output is completely stopped, the clock continues to advance, tracking CMClockGetHostTimeClock() until audio output starts up again. This clock is suitable for use as AVPlayer.sourceClock when synchronizing video-only playback with audio played through other APIs or objects.
        Parameters:
        allocator - A CFAllocator to use to allocate the clock. Pass kCFAllocatorDefault or NULL to use the default allocator.
        clockOut - Points to a CMClockRef to receive the newly created clock. The caller is responsible for calling CFRelease to release this clock. API-Since: 6.0
      • kCMTimeInvalid

        public static CMTime kCMTimeInvalid()
        API-Since: 4.0
      • kCMTimeIndefinite

        public static CMTime kCMTimeIndefinite()
        API-Since: 4.0
      • kCMTimePositiveInfinity

        public static CMTime kCMTimePositiveInfinity()
        API-Since: 4.0
      • kCMTimeNegativeInfinity

        public static CMTime kCMTimeNegativeInfinity()
        API-Since: 4.0
      • kCMTimeZero

        public static CMTime kCMTimeZero()
        API-Since: 4.0
      • kCMTimeValueKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeValueKey()
        [@constant] kCMTimeValueKey CFDictionary key for value field of CMTime (CFNumber containing int64_t) API-Since: 4.0
      • kCMTimeScaleKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeScaleKey()
        [@constant] kCMTimeScaleKey CFDictionary key for timescale field of CMTime (CFNumber containing int32_t) API-Since: 4.0
      • kCMTimeEpochKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeEpochKey()
        [@constant] kCMTimeEpochKey CFDictionary key for epoch field of CMTime (CFNumber containing int64_t) API-Since: 4.0
      • kCMTimeFlagsKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeFlagsKey()
        [@constant] kCMTimeFlagsKey CFDictionary key for flags field of CMTime (CFNumber containing uint32_t) API-Since: 4.0
      • kCMTimeRangeZero

        public static CMTimeRange kCMTimeRangeZero()
        API-Since: 4.0
      • kCMTimeRangeInvalid

        public static CMTimeRange kCMTimeRangeInvalid()
        API-Since: 4.0
      • kCMTimeRangeStartKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeRangeStartKey()
        [@constant] kCMTimeRangeStartKey CFDictionary key for start field of a CMTimeRange (CMTime) API-Since: 4.0
      • kCMTimeRangeDurationKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeRangeDurationKey()
        [@constant] kCMTimeRangeDurationKey CFDictionary key for timescale field of a CMTimeRange (CMTime) API-Since: 4.0
      • kCMTimeMappingInvalid

        public static CMTimeMapping kCMTimeMappingInvalid()
        API-Since: 9.0
      • kCMTimeMappingSourceKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeMappingSourceKey()
        [@constant] kCMTimeMappingSourceKey CFDictionary key for source field of a CMTimeMapping (CMTimeRange) API-Since: 9.0
      • kCMTimeMappingTargetKey

        @NotNull
        public static @NotNull CFStringRef kCMTimeMappingTargetKey()
        [@constant] kCMTimeMappingTargetKey CFDictionary key for target field of a CMTimeMapping (CMTimeRange) API-Since: 9.0
      • kCMFormatDescriptionExtension_OriginalCompressionSettings

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_OriginalCompressionSettings()
        CFDictionary API-Since: 4.0
      • kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms()
        CFDictionary of CFString (four-char-code, atom type) -> ( CFData (atom payload) or CFArray of CFData (atom payload) ) API-Since: 4.0
      • kCMFormatDescriptionExtension_VerbatimSampleDescription

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_VerbatimSampleDescription()
        CFData API-Since: 4.0
      • kCMFormatDescriptionExtension_VerbatimISOSampleEntry

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_VerbatimISOSampleEntry()
        CFData API-Since: 4.0
      • kCMFormatDescriptionExtension_FormatName

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_FormatName()
        CFString API-Since: 4.0
      • kCMFormatDescriptionExtension_Depth

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_Depth()
        CFNumber with depth value as directed by http://developer.apple.com/qa/qa2001/qa1183.html API-Since: 4.0
      • kCMFormatDescriptionExtension_CleanAperture

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_CleanAperture()
        Many of the following extension keys and values are the same as the corresponding CVImageBuffer attachment keys and values API-Since: 9.0
      • kCMFormatDescriptionKey_CleanApertureWidth

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureWidth()
        API-Since: 9.0
      • kCMFormatDescriptionKey_CleanApertureHeight

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureHeight()
        API-Since: 9.0
      • kCMFormatDescriptionKey_CleanApertureHorizontalOffset

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureHorizontalOffset()
        API-Since: 9.0
      • kCMFormatDescriptionKey_CleanApertureVerticalOffset

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureVerticalOffset()
        API-Since: 9.0
      • kCMFormatDescriptionKey_CleanApertureWidthRational

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureWidthRational()
        CFArray of 2 CFNumbers: numerator, denominator API-Since: 4.0
      • kCMFormatDescriptionKey_CleanApertureHeightRational

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureHeightRational()
        CFArray of 2 CFNumbers: numerator, denominator API-Since: 4.0
      • kCMFormatDescriptionKey_CleanApertureHorizontalOffsetRational

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureHorizontalOffsetRational()
        CFArray of 2 CFNumbers: numerator, denominator API-Since: 4.0
      • kCMFormatDescriptionKey_CleanApertureVerticalOffsetRational

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_CleanApertureVerticalOffsetRational()
        CFArray of 2 CFNumbers: numerator, denominator API-Since: 4.0
      • kCMFormatDescriptionExtension_FieldCount

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_FieldCount()
        API-Since: 9.0
      • kCMFormatDescriptionExtension_FieldDetail

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_FieldDetail()
        API-Since: 9.0
      • kCMFormatDescriptionFieldDetail_TemporalTopFirst

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionFieldDetail_TemporalTopFirst()
        API-Since: 9.0
      • kCMFormatDescriptionFieldDetail_TemporalBottomFirst

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionFieldDetail_TemporalBottomFirst()
        API-Since: 9.0
      • kCMFormatDescriptionFieldDetail_SpatialFirstLineEarly

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionFieldDetail_SpatialFirstLineEarly()
        API-Since: 9.0
      • kCMFormatDescriptionFieldDetail_SpatialFirstLineLate

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionFieldDetail_SpatialFirstLineLate()
        API-Since: 9.0
      • kCMFormatDescriptionExtension_PixelAspectRatio

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_PixelAspectRatio()
        API-Since: 9.0
      • kCMFormatDescriptionKey_PixelAspectRatioHorizontalSpacing

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_PixelAspectRatioHorizontalSpacing()
        API-Since: 9.0
      • kCMFormatDescriptionKey_PixelAspectRatioVerticalSpacing

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionKey_PixelAspectRatioVerticalSpacing()
        API-Since: 9.0
      • kCMFormatDescriptionExtension_ColorPrimaries

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ColorPrimaries()
        API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_ITU_R_709_2

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_ITU_R_709_2()
        API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_EBU_3213

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_EBU_3213()
        API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_SMPTE_C

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_SMPTE_C()
        API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_DCI_P3

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_DCI_P3()
        same as kCVImageBufferColorPrimaries_DCI_P3 API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_P3_D65

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_P3_D65()
        same as kCVImageBufferColorPrimaries_P3_D65 API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_ITU_R_2020

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_ITU_R_2020()
        same as kCVImageBufferColorPrimaries_ITU_R_2020 API-Since: 9.0
      • kCMFormatDescriptionColorPrimaries_P22

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionColorPrimaries_P22()
        same as kCVImageBufferColorPrimaries_P22 API-Since: 6.0
      • kCMFormatDescriptionExtension_TransferFunction

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_TransferFunction()
        API-Since: 9.0
      • kCMFormatDescriptionTransferFunction_ITU_R_709_2

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_709_2()
        API-Since: 9.0
      • kCMFormatDescriptionTransferFunction_SMPTE_240M_1995

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_SMPTE_240M_1995()
        API-Since: 9.0
      • kCMFormatDescriptionTransferFunction_UseGamma

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_UseGamma()
        API-Since: 9.0
      • kCMFormatDescriptionTransferFunction_ITU_R_2020

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_2020()
        same as kCVImageBufferTransferFunction_ITU_R_2020. note: semantically equivalent to kCMFormatDescriptionTransferFunction_ITU_R_709_2, which is preferred. API-Since: 9.0
      • kCMFormatDescriptionTransferFunction_SMPTE_ST_428_1

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_SMPTE_ST_428_1()
        same as kCVImageBufferTransferFunction_SMPTE_ST_428_1 API-Since: 10.0
      • kCMFormatDescriptionExtension_GammaLevel

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_GammaLevel()
        API-Since: 9.0
      • kCMFormatDescriptionExtension_YCbCrMatrix

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_YCbCrMatrix()
        API-Since: 9.0
      • kCMFormatDescriptionYCbCrMatrix_ITU_R_709_2

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionYCbCrMatrix_ITU_R_709_2()
        API-Since: 9.0
      • kCMFormatDescriptionYCbCrMatrix_ITU_R_601_4

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionYCbCrMatrix_ITU_R_601_4()
        API-Since: 9.0
      • kCMFormatDescriptionYCbCrMatrix_SMPTE_240M_1995

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionYCbCrMatrix_SMPTE_240M_1995()
        API-Since: 9.0
      • kCMFormatDescriptionYCbCrMatrix_ITU_R_2020

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionYCbCrMatrix_ITU_R_2020()
        same as kCVImageBufferYCbCrMatrix_ITU_R_2020 API-Since: 9.0
      • kCMFormatDescriptionExtension_FullRangeVideo

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_FullRangeVideo()
        CFBoolean; by default, false for YCbCr-based compressed formats, indicating that pixel values are video-range rather than full-range API-Since: 4.3
      • kCMFormatDescriptionExtension_ICCProfile

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ICCProfile()
        CFData API-Since: 4.0
      • kCMFormatDescriptionExtension_BytesPerRow

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_BytesPerRow()
        CFNumber describing the bytes per row of raster pixel data (not used for compressed, planar, tiled or downsampled formats) API-Since: 4.0
      • kCMFormatDescriptionExtension_ChromaLocationTopField

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ChromaLocationTopField()
        Chroma siting information. For progressive images, only the TopField value is used. API-Since: 9.0
      • kCMFormatDescriptionExtension_ChromaLocationBottomField

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ChromaLocationBottomField()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_Left

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_Left()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_Center

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_Center()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_TopLeft

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_TopLeft()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_Top

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_Top()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_BottomLeft

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_BottomLeft()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_Bottom

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_Bottom()
        API-Since: 9.0
      • kCMFormatDescriptionChromaLocation_DV420

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionChromaLocation_DV420()
        API-Since: 9.0
      • kCMFormatDescriptionConformsToMPEG2VideoProfile

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionConformsToMPEG2VideoProfile()
        CFNumber specifying a kCMMPEG2VideoProfile_* API-Since: 4.0
      • kCMFormatDescriptionExtension_TemporalQuality

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_TemporalQuality()
        CFNumber API-Since: 4.0
      • kCMFormatDescriptionExtension_SpatialQuality

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_SpatialQuality()
        CFNumber API-Since: 4.0
      • kCMFormatDescriptionExtension_VerbatimImageDescription

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_VerbatimImageDescription()
        API-Since: 9.0
      • kCMFormatDescriptionExtension_Version

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_Version()
        CFNumber API-Since: 4.0
      • kCMFormatDescriptionExtension_RevisionLevel

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_RevisionLevel()
        CFNumber API-Since: 4.0
      • kCMFormatDescriptionExtension_Vendor

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_Vendor()
        CFString of fourCC API-Since: 4.0
      • kCMFormatDescriptionVendor_Apple

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionVendor_Apple()
        API-Since: 4.0
      • kCMTextFormatDescriptionExtension_DisplayFlags

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_DisplayFlags()
        CFNumber (SInt32 holding CMTextDisplayFlags) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_BackgroundColor

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_BackgroundColor()
        CFDictionary API-Since: 4.0
      • kCMTextFormatDescriptionColor_Red

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionColor_Red()
        CFNumber (SInt8 for 3G), (SInt16 for QT) API-Since: 4.0
      • kCMTextFormatDescriptionColor_Green

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionColor_Green()
        CFNumber (SInt8 for 3G), (SInt16 for QT) API-Since: 4.0
      • kCMTextFormatDescriptionColor_Blue

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionColor_Blue()
        CFNumber (SInt8 for 3G), (SInt16 for QT) API-Since: 4.0
      • kCMTextFormatDescriptionColor_Alpha

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionColor_Alpha()
        CFNumber (SInt8 for 3G), not applicable for QT text. API-Since: 4.0
      • kCMTextFormatDescriptionExtension_DefaultTextBox

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_DefaultTextBox()
        CFDictionary API-Since: 4.0
      • kCMTextFormatDescriptionRect_Top

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionRect_Top()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionRect_Left

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionRect_Left()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionRect_Bottom

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionRect_Bottom()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionRect_Right

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionRect_Right()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_DefaultStyle

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_DefaultStyle()
        CFDictionary API-Since: 4.0
      • kCMTextFormatDescriptionStyle_StartChar

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_StartChar()
        CFNumber (SInt16 for 3G), (SInt32 for QT) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_Font

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_Font()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_FontFace

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_FontFace()
        CFNumber (SInt8) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_ForegroundColor

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_ForegroundColor()
        CFDictionary (kCMTextFormatDescriptionColor_Red, kCMTextFormatDescriptionColor_Green, etc) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_FontSize

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_FontSize()
        CFNumber (SInt8 for 3G), (SInt16 for QT) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_HorizontalJustification

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_HorizontalJustification()
        CFNumber (SInt8 holding a CMTextJustificationValue) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_VerticalJustification

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_VerticalJustification()
        CFNumber (SInt8 holding a CMTextJustificationValue) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_EndChar

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_EndChar()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_FontTable

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_FontTable()
        CFDictionary (Keys are FontIDs as CFStrings, vals are font names as CFStrings) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_TextJustification

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_TextJustification()
        CFNumber (SInt32 holding a CMTextJustificationValue) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_Height

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_Height()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionStyle_Ascent

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionStyle_Ascent()
        CFNumber (SInt16) API-Since: 4.0
      • kCMTextFormatDescriptionExtension_DefaultFontName

        @NotNull
        public static @NotNull CFStringRef kCMTextFormatDescriptionExtension_DefaultFontName()
        CFString API-Since: 4.0
      • kCMTimeCodeFormatDescriptionExtension_SourceReferenceName

        @NotNull
        public static @NotNull CFStringRef kCMTimeCodeFormatDescriptionExtension_SourceReferenceName()
        CFDictionary containing the following two keys API-Since: 4.0
      • kCMTimeCodeFormatDescriptionKey_Value

        @NotNull
        public static @NotNull CFStringRef kCMTimeCodeFormatDescriptionKey_Value()
        CFString API-Since: 4.0
      • kCMTimeCodeFormatDescriptionKey_LangCode

        @NotNull
        public static @NotNull CFStringRef kCMTimeCodeFormatDescriptionKey_LangCode()
        CFNumber API-Since: 4.0
      • kCMFormatDescriptionExtensionKey_MetadataKeyTable

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtensionKey_MetadataKeyTable()
        API-Since: 4.0
      • kCMMetadataFormatDescriptionKey_Namespace

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_Namespace()
        CFNumber(OSType) native endian API-Since: 4.0
      • kCMMetadataFormatDescriptionKey_Value

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_Value()
        CFData API-Since: 4.0
      • kCMMetadataFormatDescriptionKey_LocalID

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_LocalID()
        CFNumber(OSType) native endian API-Since: 4.0
      • kCMMetadataFormatDescriptionKey_DataType

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_DataType()
        CFData API-Since: 8.0
      • kCMMetadataFormatDescriptionKey_DataTypeNamespace

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_DataTypeNamespace()
        CFNumber(SInt32) native endian API-Since: 8.0
      • kCMMetadataFormatDescriptionKey_ConformingDataTypes

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_ConformingDataTypes()
        CFArray(CFDictionary) of DataType and DataTypeNamespace API-Since: 8.0
      • kCMMetadataFormatDescriptionKey_LanguageTag

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_LanguageTag()
        CFString API-Since: 8.0
      • kCMMetadataFormatDescriptionKey_StructuralDependency

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_StructuralDependency()
        CFDictionary API-Since: 9.0
      • kCMMetadataFormatDescriptionKey_SetupData

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionKey_SetupData()
        CFData API-Since: 9.0
      • kCMMetadataFormatDescription_StructuralDependencyKey_DependencyIsInvalidFlag

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescription_StructuralDependencyKey_DependencyIsInvalidFlag()
        CFBoolean API-Since: 9.0
      • kCMMetadataFormatDescriptionMetadataSpecificationKey_Identifier

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionMetadataSpecificationKey_Identifier()
        CFString API-Since: 8.0
      • kCMMetadataFormatDescriptionMetadataSpecificationKey_DataType

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionMetadataSpecificationKey_DataType()
        CFString API-Since: 8.0
      • kCMMetadataFormatDescriptionMetadataSpecificationKey_ExtendedLanguageTag

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionMetadataSpecificationKey_ExtendedLanguageTag()
        CFString in BCP 47 format API-Since: 8.0
      • kCMMetadataFormatDescriptionMetadataSpecificationKey_StructuralDependency

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionMetadataSpecificationKey_StructuralDependency()
        CFDictionary API-Since: 9.0
      • kCMMetadataFormatDescriptionMetadataSpecificationKey_SetupData

        @NotNull
        public static @NotNull CFStringRef kCMMetadataFormatDescriptionMetadataSpecificationKey_SetupData()
        CFData API-Since: 9.0
      • kCMTimingInfoInvalid

        public static CMSampleTimingInfo kCMTimingInfoInvalid()
        API-Since: 4.0
      • kCMSampleBufferNotification_DataBecameReady

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferNotification_DataBecameReady()
        [@constant] kCMSampleBufferNotification_DataBecameReady Posted on a CMSampleBuffer by CMSampleBufferSetDataReady when the buffer becomes ready. API-Since: 4.0
      • kCMSampleBufferNotification_DataFailed

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferNotification_DataFailed()
        [@constant] kCMSampleBufferNotification_DataFailed Posted on a CMSampleBuffer by CMSampleBufferSetDataFailed to report that the buffer will never become ready. API-Since: 8.0
      • kCMSampleBufferNotificationParameter_OSStatus

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferNotificationParameter_OSStatus()
        API-Since: 8.0
      • kCMSampleBufferConduitNotification_InhibitOutputUntil

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotification_InhibitOutputUntil()
        payload: CFDictionary containing: API-Since: 4.0
      • kCMSampleBufferConduitNotificationParameter_ResumeTag

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotificationParameter_ResumeTag()
        payload: CFNumber API-Since: 4.0
      • kCMSampleBufferConduitNotification_ResetOutput

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotification_ResetOutput()
        [@constant] kCMSampleBufferConduitNotification_ResetOutput Posted on a conduit of CMSampleBuffers (eg, a CMBufferQueue) to request invalidation of pending output data. API-Since: 4.0
      • kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged()
        payload: CFDictionary containing: API-Since: 4.3
      • kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange()
        payload: CFBoolean API-Since: 4.3
      • kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS()
        payload: CFDictionary(CMTime) API-Since: 4.3
      • kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS()
        payload: CFDictionary(CMTime) API-Since: 5.0
      • kCMSampleBufferConsumerNotification_BufferConsumed

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferConsumerNotification_BufferConsumed()
        payload: CFDictionary API-Since: 4.0
      • kCMSampleAttachmentKey_NotSync

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_NotSync()
        CFBoolean (absence of this key implies Sync) API-Since: 4.0
      • kCMSampleAttachmentKey_PartialSync

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_PartialSync()
        CFBoolean (absence of this key implies not Partial Sync. If NotSync is false, PartialSync should be ignored.) API-Since: 4.0
      • kCMSampleAttachmentKey_HasRedundantCoding

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HasRedundantCoding()
        kCFBooleanTrue, kCFBooleanFalse, or absent if unknown API-Since: 4.0
      • kCMSampleAttachmentKey_IsDependedOnByOthers

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_IsDependedOnByOthers()
        kCFBooleanTrue, kCFBooleanFalse, or absent if unknown API-Since: 4.0
      • kCMSampleAttachmentKey_DependsOnOthers

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_DependsOnOthers()
        kCFBooleanTrue (e.g., non-I-frame), kCFBooleanFalse (e.g. I-frame), or absent if unknown API-Since: 4.0
      • kCMSampleAttachmentKey_EarlierDisplayTimesAllowed

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_EarlierDisplayTimesAllowed()
        CFBoolean API-Since: 4.0
      • kCMSampleAttachmentKey_DisplayImmediately

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_DisplayImmediately()
        CFBoolean API-Since: 4.0
      • kCMSampleAttachmentKey_DoNotDisplay

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_DoNotDisplay()
        CFBoolean API-Since: 4.0
      • kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding()
        CFBoolean API-Since: 4.0
      • kCMSampleBufferAttachmentKey_DrainAfterDecoding

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_DrainAfterDecoding()
        CFBoolean API-Since: 4.0
      • kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed()
        CFDictionary (client-defined) API-Since: 4.0
      • kCMSampleBufferAttachmentKey_ResumeOutput

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_ResumeOutput()
        CFNumber (ResumeTag) API-Since: 4.0
      • kCMSampleBufferAttachmentKey_TransitionID

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_TransitionID()
        [@constant] kCMSampleBufferAttachmentKey_TransitionID Marks a transition from one source of buffers (eg. song) to another For example, during gapless playback of a list of songs, this attachment marks the first buffer from the next song. If this attachment is on a buffer containing no samples, the first following buffer that contains samples is the buffer that contains the first samples from the next song. The value of this attachment is a CFTypeRef. This transition identifier should be unique within a playlist, so each transition in a playlist is uniquely identifiable. A CFNumberRef counter that increments with each transition is a simple example. API-Since: 4.0
      • kCMSampleBufferAttachmentKey_TrimDurationAtStart

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_TrimDurationAtStart()
        CFDictionary/CMTime, default 0 API-Since: 4.0
      • kCMSampleBufferAttachmentKey_TrimDurationAtEnd

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_TrimDurationAtEnd()
        CFDictionary/CMTime, default 0 API-Since: 4.0
      • kCMSampleBufferAttachmentKey_SpeedMultiplier

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_SpeedMultiplier()
        CFNumber, positive, default 1 API-Since: 4.0
      • kCMSampleBufferAttachmentKey_Reverse

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_Reverse()
        CFBoolean, default false API-Since: 4.0
      • kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence()
        CFBoolean, default false API-Since: 4.0
      • kCMSampleBufferAttachmentKey_EmptyMedia

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_EmptyMedia()
        CFBoolean, default false API-Since: 4.0
      • kCMSampleBufferAttachmentKey_PermanentEmptyMedia

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_PermanentEmptyMedia()
        CFBoolean, default false API-Since: 4.0
      • kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately()
        [@constant] kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately Tells that the empty marker should be dequeued immediately regardless of its timestamp. Marker sample buffers with this attachment in addition to kCMSampleBufferAttachmentKey_EmptyMedia are used to tell that the empty sample buffer should be dequeued immediately regardless of its timestamp. This attachment should only be used with sample buffers with the kCMSampleBufferAttachmentKey_EmptyMedia attachment. API-Since: 4.0
      • kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration()
        CFBoolean, default false API-Since: 4.0
      • kCMSampleBufferAttachmentKey_SampleReferenceURL

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_SampleReferenceURL()
        CFURL API-Since: 4.0
      • kCMSampleBufferAttachmentKey_SampleReferenceByteOffset

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_SampleReferenceByteOffset()
        CFNumber, byte offset from beginning of URL to contiguous data API-Since: 4.0
      • kCMSampleBufferAttachmentKey_GradualDecoderRefresh

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_GradualDecoderRefresh()
        CFNumber, audio decoder refresh count API-Since: 4.3
      • kCMSampleBufferAttachmentKey_DroppedFrameReason

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_DroppedFrameReason()
        CFString, frame drop reason API-Since: 6.0
      • kCMSampleBufferDroppedFrameReason_FrameWasLate

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferDroppedFrameReason_FrameWasLate()
        [@constant] kCMSampleBufferDroppedFrameReason_FrameWasLate The frame was dropped because it was late The value of kCMSampleBufferAttachmentKey_DroppedFrameReason if a video capture client has indicated that late video frames should be dropped and the current frame is late. This condition is typically caused by the client's processing taking too long. API-Since: 6.0
      • kCMSampleBufferDroppedFrameReason_OutOfBuffers

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferDroppedFrameReason_OutOfBuffers()
        [@constant] kCMSampleBufferDroppedFrameReason_OutOfBuffers The frame was dropped because the module providing frames is out of buffers The value of kCMSampleBufferAttachmentKey_DroppedFrameReason if the module providing sample buffers has run out of source buffers. This condition is typically caused by the client holding onto buffers for too long and can be alleviated by returning buffers to the provider. API-Since: 6.0
      • kCMSampleBufferDroppedFrameReason_Discontinuity

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferDroppedFrameReason_Discontinuity()
        [@constant] kCMSampleBufferDroppedFrameReason_Discontinuity An unknown number of frames were dropped The value of kCMSampleBufferAttachmentKey_DroppedFrameReason if the module providing sample buffers has experienced a discontinuity, and an unknown number of frames have been lost. This condition is typically caused by the system being too busy. API-Since: 6.0
      • kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo()
        [@constant] kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo Indicates additional information regarding the dropped video frame. Sample buffers with this attachment contain no image or data buffer. They mark a dropped video frame. If present, this attachment provides additional information about the kCMSampleBufferAttachmentKey_DroppedFrameReason. API-Since: 7.0
      • kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch()
        [@constant] kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch A discontinuity was caused by a camera mode switch. The value of kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo if the module providing sample buffers has experienced a discontinuity due to a camera mode switch. Short discontinuities of this type can occur when the session is configured for still image capture on some devices. API-Since: 7.0
      • kCMSampleBufferAttachmentKey_StillImageLensStabilizationInfo

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_StillImageLensStabilizationInfo()
        CFString, one of kCMSampleBufferLensStabilizationInfo_* API-Since: 9.0
      • kCMSampleBufferLensStabilizationInfo_Active

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferLensStabilizationInfo_Active()
        CFString API-Since: 9.0
      • kCMSampleBufferLensStabilizationInfo_OutOfRange

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferLensStabilizationInfo_OutOfRange()
        CFString API-Since: 9.0
      • kCMSampleBufferLensStabilizationInfo_Unavailable

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferLensStabilizationInfo_Unavailable()
        CFString API-Since: 9.0
      • kCMSampleBufferLensStabilizationInfo_Off

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferLensStabilizationInfo_Off()
        CFString API-Since: 9.0
      • kCMSampleBufferAttachmentKey_ForceKeyFrame

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_ForceKeyFrame()
        [@constant] kCMSampleBufferAttachmentKey_ForceKeyFrame Indicates that the current or next video sample buffer should be forced to be encoded as a key frame. A value of kCFBooleanTrue for kCMSampleBufferAttachmentKey_ForceKeyFrame indicates that the current or next video sample buffer processed in the stream should be forced to be encoded as a key frame. If this attachment is present and kCFBooleanTrue on a sample buffer with a video frame, that video frame will be forced to become a key frame. If the sample buffer for which this is present and kCFBooleanTrue does not have a valid video frame, the next sample buffer processed that contains a valid video frame will be encoded as a key frame. Usual care should be taken when setting attachments on sample buffers whose orgins and destinations are ambiguous. For example, CMSetAttachment() is not thread-safe, and CMSampleBuffers may be used in multiple sample buffer streams in a given system. This can lead to crashes during concurrent access and/or unexpected behavior on alternate sample buffer streams. Therefore, unless the orgin and destination of a sample buffer is known, the general recommended practice is to synthesize an empty sample buffer with this attachment alone and insert it into the sample buffer stream ahead of the concrete sample buffer rather than setting this attachment on the concrete sample buffer itself. API-Since: 8.0
      • kCMTimebaseNotification_EffectiveRateChanged

        @NotNull
        public static @NotNull CFStringRef kCMTimebaseNotification_EffectiveRateChanged()
        Posted by a timebase after a change in effective rate. API-Since: 6.0
      • kCMTimebaseNotification_TimeJumped

        @NotNull
        public static @NotNull CFStringRef kCMTimebaseNotification_TimeJumped()
        Posted by a timebase after a discontinuous time jump. API-Since: 6.0
      • kCMTimebaseNotificationKey_EventTime

        @NotNull
        public static @NotNull CFStringRef kCMTimebaseNotificationKey_EventTime()
        Payload key for the time at which a change in effective rate or a discontinuous time jump occurred. API-Since: 7.0
      • kCMImageDescriptionFlavor_QuickTimeMovie

        @NotNull
        public static @NotNull CFStringRef kCMImageDescriptionFlavor_QuickTimeMovie()
        equivalent to NULL API-Since: 8.0
      • kCMImageDescriptionFlavor_ISOFamily

        @NotNull
        public static @NotNull CFStringRef kCMImageDescriptionFlavor_ISOFamily()
        MP4, etc API-Since: 8.0
      • kCMImageDescriptionFlavor_3GPFamily

        @NotNull
        public static @NotNull CFStringRef kCMImageDescriptionFlavor_3GPFamily()
        3GPP (implies ISO) API-Since: 8.0
      • kCMSoundDescriptionFlavor_QuickTimeMovie

        @NotNull
        public static @NotNull CFStringRef kCMSoundDescriptionFlavor_QuickTimeMovie()
        equivalent to NULL API-Since: 8.0
      • kCMSoundDescriptionFlavor_QuickTimeMovieV2

        @NotNull
        public static @NotNull CFStringRef kCMSoundDescriptionFlavor_QuickTimeMovieV2()
        [@constant] kCMSoundDescriptionFlavor_QuickTimeMovieV2 Chooses the QuickTime Movie Sound Description V2 format. A V2 sound description will be written. V2 Sound Descriptions contain no legacy CBR layout, and use 'lpcm' for all flavors of PCM. API-Since: 8.0
      • kCMSoundDescriptionFlavor_ISOFamily

        @NotNull
        public static @NotNull CFStringRef kCMSoundDescriptionFlavor_ISOFamily()
        MP4, etc API-Since: 8.0
      • kCMSoundDescriptionFlavor_3GPFamily

        @NotNull
        public static @NotNull CFStringRef kCMSoundDescriptionFlavor_3GPFamily()
        3GPP (implies ISO) API-Since: 8.0
      • kCMMemoryPoolOption_AgeOutPeriod

        @NotNull
        public static @NotNull CFStringRef kCMMemoryPoolOption_AgeOutPeriod()
        CFNumber (seconds) API-Since: 6.0
      • kCMTextMarkupAttribute_ForegroundColorARGB

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_ForegroundColorARGB()
        [@const] kCMTextMarkupAttribute_ForegroundColorARGB The foreground color for text. Value must be a CFArray of 4 CFNumbers representing alpha, red, green, and blue fields with values between 0.0 and 1.0. The red, green and blue components are interpreted in the sRGB color space. The alpha indicates the opacity from 0.0 for transparent to 1.0 for 100% opaque. API-Since: 6.0
      • kCMTextMarkupAttribute_BackgroundColorARGB

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_BackgroundColorARGB()
        [@const] kCMTextMarkupAttribute_BackgroundColorARGB The background color for the shape holding the text. Value must be a CFArray of 4 CFNumbers representing alpha, red, green, and blue fields with values between 0.0 and 1.0. The red, green and blue components are interpreted in the sRGB color space. The alpha indicates the opacity from 0.0 for transparent to 1.0 for 100% opaque. The color applies to the geometry (e.g., a box) containing the text. The container's background color may have an alpha of 0 so it is not displayed even though the text is displayed. The color behind individual characters is optionally controllable with the kCMTextMarkupAttribute_CharacterBackgroundColorARGB attribute. If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 6.0
      • kCMTextMarkupAttribute_CharacterBackgroundColorARGB

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_CharacterBackgroundColorARGB()
        [@const] kCMTextMarkupAttribute_CharacterBackgroundColorARGB The background color behind individual text characters. Value must be a CFArray of 4 CFNumbers representing alpha, red, green, and blue fields with values between 0.0 and 1.0. The red, green and blue components are interpreted in the sRGB color space. The alpha indicates the opacity from 0.0 for transparent to 1.0 for 100% opaque. API-Since: 7.0
      • kCMTextMarkupAttribute_BoldStyle

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_BoldStyle()
        [@const] kCMTextMarkupAttribute_BoldStyle Allows the setting of a bold style to be applied. Value must be a CFBoolean. The default is kCFBooleanFalse. If this attribute is kCFBooleanTrue, the text will be drawn with a bold style. Other styles such as italic may or may not be used as well. API-Since: 6.0
      • kCMTextMarkupAttribute_ItalicStyle

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_ItalicStyle()
        [@const] kCMTextMarkupAttribute_ItalicStyle Allows the setting of an italic style to be applied. Value must be a CFBoolean. The default is kCFBooleanFalse. If this attribute is kCFBooleanTrue, the text will be rendered with an italic style. Other styles such as bold may or may not be used as well. API-Since: 6.0
      • kCMTextMarkupAttribute_UnderlineStyle

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_UnderlineStyle()
        [@const] kCMTextMarkupAttribute_UnderlineStyle Allows the setting of an underline to be applied at render time. Value must be a CFBoolean. The default is kCFBooleanFalse. If this attribute is kCFBooleanTrue, the text will be rendered with an underline. Other styles such as bold may or may not be used as well. API-Since: 6.0
      • kCMTextMarkupAttribute_FontFamilyName

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_FontFamilyName()
        [@const] kCMTextMarkupAttribute_FontFamilyName The name of the font. Value must be a CFString holding the family name of an installed font (e.g., "Helvetica") that is used to render and/or measure text. When vended by legible output, an attributed string will have at most one of kCMTextMarkupAttribute_FontFamilyName or kCMTextMarkupAttribute_GenericFontFamilyName associated with each character. API-Since: 6.0
      • kCMTextMarkupAttribute_GenericFontFamilyName

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_GenericFontFamilyName()
        [@const] kCMTextMarkupAttribute_GenericFontFamilyName The attribute holding a generic font family identifier. Value must be a CFString holding a generic font family name that is one of the kCMTextMarkupGenericFontName_* constants. Generic fonts must be mapped to the family name of an installed font (e.g., kCMTextMarkupGenericFontName_SansSerif -> "Helvetica") before rendering and/or measuring text. When vended by legible output, an attributed string will have at most one of kCMTextMarkupAttribute_FontFamilyName or kCMTextMarkupAttribute_GenericFontFamilyName associated with each character. Overview of Generic Font Family Names ===================================== Some media formats allow the specification of font family names to be used to style text they carry. Sometimes, an external specification (e.g., CSS) may be used to style the text carried by the media format. In either case, the specification may be concrete, indicating an installed platform font (e.g., "Times New Roman", Helvetica). It may be abstract, indicating a category of font to use (e.g., serif, sans-serif). This abstract designation is often termed a "generic font family". CSS for example allows a 'font-family' property specification such as this: font-family: Helvetica, sans-serif; This uses both the concrete family name "Helvetica" and the generic family name "sans-serif". Generic font families may be common across media formats (e.g., both CSS and 3GPP timed text allow "sans-serif" and "serif"). Other formats may have generic font identifiers that do not align exactly (e.g., TTML allows "monospaceSerif and "monospaceSansSerif" in addition to "monospace"). Some formats might not carry names but have numeric values mapping to a generic font identifier. Simply put, different formats use different ways to express their generic fonts. The use of generic font families is also important for media accessibility. The Media Accessibility framework can map eight categories of abstract fonts to an installed font. Users may choose to override each of these categories to a different installed font. This remapping should work if the content or external styling indicates a generic font. It should not however try to remap a concrete font like "Helvetica". Consequently, it is important to distinguish between the generic and concrete fonts expressed by the author. To accommodate what is expressible in media formats and to support media accessibility overrides, generic font families can be specified with the kCMTextMarkupAttribute_GenericFontFamilyName attribute which carries the identifier for one of the various generic font specification forms supported across media formats. These generic font identifiers are the kCMTextMarkupGenericFontName_* prefixed constants also defined here. New identifers may be added in the future. Concrete fonts are specified using the kCMTextMarkupAttribute_FontFamilyName attribute also defined in this header. API-Since: 7.0
      • kCMTextMarkupGenericFontName_Default

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Default()
        Values for kCMTextMarkupAttribute_GenericFontFamilyName. [@const] kCMTextMarkupGenericFontName_Default The generic font name indicating the default font. The default font may also be chosen if no font family is specified (i.e., no kCMTextMarkupAttribute_FontFamilyName or kCMTextMarkupAttribute_GenericFontFamilyName is specified). [@const] kCMTextMarkupGenericFontName_Serif The generic font name indicating a font with serifs. The font may be proportional or monospaced. E.g., Times New Roman [@const] kCMTextMarkupGenericFontName_SansSerif The generic font name indicating a font without serifs. The font may be proportional or monospaced. E.g., Helvetica [@const] kCMTextMarkupGenericFontName_Monospace The generic font name indicating a monospaced font, with or without serifs. E.g., Courier [@const] kCMTextMarkupGenericFontName_ProportionalSerif The generic font name indicating a proportional font with serifs. [@const] kCMTextMarkupGenericFontName_ProportionalSansSerif The generic font name indicating a proportional font without serifs. [@const] kCMTextMarkupGenericFontName_MonospaceSerif The generic font name indicating a monospaced font with serifs. [@const] kCMTextMarkupGenericFontName_MonospaceSansSerif The generic font name indicating a monospaced font without serifs. [@const] kCMTextMarkupGenericFontName_Casual The generic font name indicating a "casual" font. E.g., Dom or Impress [@const] kCMTextMarkupGenericFontName_Cursive The generic font name indicating a cursive font. E.g., Coronet or Marigold [@const] kCMTextMarkupGenericFontName_Fantasy The generic font name indicating a "fantasy" font. [@const] kCMTextMarkupGenericFontName_SmallCapital The generic font name indicating a font with lowercase letters set as small capitals. E.g., Engravers Gothic API-Since: 7.0
      • kCMTextMarkupGenericFontName_Serif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Serif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_SansSerif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_SansSerif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_Monospace

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Monospace()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_ProportionalSerif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_ProportionalSerif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_ProportionalSansSerif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_ProportionalSansSerif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_MonospaceSerif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_MonospaceSerif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_MonospaceSansSerif

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_MonospaceSansSerif()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_Casual

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Casual()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_Cursive

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Cursive()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_Fantasy

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_Fantasy()
        API-Since: 7.0
      • kCMTextMarkupGenericFontName_SmallCapital

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupGenericFontName_SmallCapital()
        API-Since: 7.0
      • kCMTextMarkupAttribute_BaseFontSizePercentageRelativeToVideoHeight

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_BaseFontSizePercentageRelativeToVideoHeight()
        [@const] kCMTextMarkupAttribute_BaseFontSizePercentageRelativeToVideoHeight The base font size expressed as a percentage of the video height. Value must be a non-negative CFNumber. This is a number holding a percentage of the height of the video frame. For example, a value of 5 indicates that the base font size should be 5% of the height of the video. API-Since: 7.0
      • kCMTextMarkupAttribute_RelativeFontSize

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_RelativeFontSize()
        [@const] kCMTextMarkupAttribute_RelativeFontSize The font size expressed as a percentage of the current default font size. Value must be a non-negative CFNumber. This is a number holding a percentage of the size of the calculated default font size. A value of 120 indicates 20% larger than the default font size. A value of 80 indicates 80% of the default font size. The value 100 indicates no size difference and is the default. API-Since: 6.0
      • kCMTextMarkupAttribute_VerticalLayout

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_VerticalLayout()
        [@const] kCMTextMarkupAttribute_VerticalLayout The kind of vertical layout of the text block. Value must be a CFString. A CFString holding one of several values indicating the progression direction for new vertical lines of text. If this attribute is present, it indicates the writing direction is vertical. The attribute value indicates whether new vertical text lines are added from left to right or from right to left. If this attribute is missing, the writing direction is horizontal. If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 7.0
      • kCMTextVerticalLayout_LeftToRight

        @NotNull
        public static @NotNull CFStringRef kCMTextVerticalLayout_LeftToRight()
        Values for kCMTextMarkupAttribute_VerticalLayout. [@const] kCMTextVerticalLayout_LeftToRight Newly added vertical lines are added from the left toward the right. [@const] kCMTextVerticalLayout_RightToLeft Newly added vertical lines are added from the right toward the left. API-Since: 7.0
      • kCMTextVerticalLayout_RightToLeft

        @NotNull
        public static @NotNull CFStringRef kCMTextVerticalLayout_RightToLeft()
        API-Since: 7.0
      • kCMTextMarkupAttribute_Alignment

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_Alignment()
        [@const] kCMTextMarkupAttribute_Alignment The alignment of text in the writing direction of the first line of text. Value must be a CFString. A CFString holding one of several values indicating the alignment in the writing direction of the first line of text of the cue. The writing direction is indicated by the value (or absence) of the kCMTextMarkupAttribute_VerticalLayout. If this attribute is missing, the kCMTextMarkupAlignmentType_Middle value should be used as the default. If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 7.0
      • kCMTextMarkupAlignmentType_Start

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAlignmentType_Start()
        Values for kCMTextMarkupAttribute_Alignment. [@const] kCMTextMarkupAlignmentType_Start The text is visually aligned at its starting side. For horizontally written text, the alignment is left for left-to-right text and right for right-to-left text. For vertical text, alignment is always at the top. [@const] kCMTextMarkupAlignmentType_Middle The text is visually center-aligned (i.e., aligned between its starting and ending sides). [@const] kCMTextMarkupAlignmentType_End The text is visually aligned at its ending side. For horizontally written text, the alignment is right for left-to-right text and left for right-to-left text. For vertical text, alignment is always at the bottom. [@const] kCMTextMarkupAlignmentType_Left For horizontally written text, the text alignment is always visually left-aligned (i.e., left-to-right and right-to-left are treated uniformly). For vertical text, this is equivalent to kCMTextMarkupAlignmentType_Start. While readers should be prepared to account for kCMTextMarkupAlignmentType_Left being equivalent to kCMTextMarkupAlignmentType_Start for vertical text, authors are discouraged from using kCMTextMarkupAlignmentType_Left for vertical text. [@const] kCMTextMarkupAlignmentType_Right For horizontally written text, the text alignment is always visually right-aligned (i.e., left-to-right and right-to-left are treated uniformly). For vertical text, this is equivalent to kCMTextMarkupAlignmentType_End. While readers should be prepared to account for kCMTextMarkupAlignmentType_Right being equivalent to kCMTextMarkupAlignmentType_End for vertical text, authors are discouraged from using kCMTextMarkupAlignmentType_Right for vertical text. API-Since: 7.0
      • kCMTextMarkupAlignmentType_Middle

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAlignmentType_Middle()
        API-Since: 7.0
      • kCMTextMarkupAlignmentType_End

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAlignmentType_End()
        API-Since: 7.0
      • kCMTextMarkupAlignmentType_Left

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAlignmentType_Left()
        API-Since: 7.0
      • kCMTextMarkupAlignmentType_Right

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAlignmentType_Right()
        API-Since: 7.0
      • kCMTextMarkupAttribute_TextPositionPercentageRelativeToWritingDirection

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_TextPositionPercentageRelativeToWritingDirection()
        [@const] kCMTextMarkupAttribute_TextPositionPercentageRelativeToWritingDirection The placement of the block of text specified as a percentage in the writing direction. Value must be a non-negative CFNumber. A CFNumber expressing the position of the center of the text in the writing direction as a percentage of the video dimensions in the writing direction. For horizontal cues, this is the horizontal position. For vertical, it is the vertical position. The percentage is calculated from the edge of the frame where the text begins (so for left-to-right English, it is the left edge). If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 7.0
      • kCMTextMarkupAttribute_OrthogonalLinePositionPercentageRelativeToWritingDirection

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_OrthogonalLinePositionPercentageRelativeToWritingDirection()
        [@const] kCMTextMarkupAttribute_OrthogonalLinePositionPercentageRelativeToWritingDirection The placement of the block of text's first line specified as a percentage in the direction orthogonal to the writing direction. Value must be a non-negative CFNumber. A CFNumber expressing the position of the center of the cue relative to the writing direction. The line position is orthogonal (or perpendicular) to the writing direction (i.e., for a horizontal writing direction, it is vertical and for a vertical writing direction, is is horizontal). This attribute expresses the line position as a percentage of the dimensions of the video frame in the relevant direction. For example, 0% is the top of the video frame and 100% is the bottom of the video frame for horizontal writing layout. If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 7.0
      • kCMTextMarkupAttribute_WritingDirectionSizePercentage

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_WritingDirectionSizePercentage()
        [@const] kCMTextMarkupAttribute_WritingDirectionSizePercentage The dimension (e.g., width) of the bounding box containing the text expressed as a percentage. Value must be a non-negative CFNumber. A CFNumber expressing the width of the bounding box for text layout as a percentage of the video frame's dimension in the writing direction. For a horizontal writing direction, it is the width. For a vertical writing direction, it is the horizontal writing direction. If used, this attribute must be applied to the entire attributed string (i.e., CFRangeMake(0, CFAttributedStringGetLength(...))). API-Since: 7.0
      • kCMTextMarkupAttribute_CharacterEdgeStyle

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_CharacterEdgeStyle()
        [@const] kCMTextMarkupAttribute_CharacterEdgeStyle Allows the setting of the style of character edges at render time. Value must be a CFString. This controls the shape of the edges of drawn characters. Set a value of something other than kCMTextMarkupEdgeStyle_None to draw using an alternative shape for edges of characters from the set of constants prefixed with "kCMTextMarkupEdgeStyle_". These correspond to text edge styles available with Media Accessibility preferences (see ) although the values are not enumerated integers here. The absence of this attribute should be treated as though kCMTextMarkupCharacterEdgeStyle_None is specified. API-Since: 7.0
      • kCMTextMarkupCharacterEdgeStyle_None

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupCharacterEdgeStyle_None()
        Values for kCMTextMarkupAttribute_CharacterEdgeStyle. [@const] kCMTextMarkupCharacterEdgeStyle_None The character edge style indicating no edge style. [@const] kCMTextMarkupCharacterEdgeStyle_Raised The character edge style indicating a raised edge style should be drawn. [@const] kCMTextMarkupCharacterEdgeStyle_Depressed The character edge style indicating a depressed edge style should be drawn. [@const] kCMTextMarkupCharacterEdgeStyle_Uniform The character edge style indicating a uniform border around the character should be drawn. [@const] kCMTextMarkupCharacterEdgeStyle_DropShadow The character edge style indicating a drop shadow should be drawn. API-Since: 7.0
      • kCMTextMarkupCharacterEdgeStyle_Raised

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupCharacterEdgeStyle_Raised()
        API-Since: 7.0
      • kCMTextMarkupCharacterEdgeStyle_Depressed

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupCharacterEdgeStyle_Depressed()
        API-Since: 7.0
      • kCMTextMarkupCharacterEdgeStyle_Uniform

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupCharacterEdgeStyle_Uniform()
        API-Since: 7.0
      • kCMTextMarkupCharacterEdgeStyle_DropShadow

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupCharacterEdgeStyle_DropShadow()
        API-Since: 7.0
      • kCMMetadataKeySpace_QuickTimeUserData

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_QuickTimeUserData()
        [@const] kCMMetadataKeySpace_QuickTimeUserData Metadata keyspace for QuickTime User Data keys. [@const] kCMMetadataKeySpace_ISOUserData Metadata keyspace for MPEG-4 User Data keys. [@const] kCMMetadataKeySpace_QuickTimeMetadata Metadata keyspace for QuickTime Metadata keys. [@const] kCMMetadataKeySpace_iTunes Metadata keyspace for iTunes keys. [@const] kCMMetadataKeySpace_ID3 Metadata keyspace for ID3 keys. [@const] kCMMetadataKeySpace_Icy Metadata keyspace for ShoutCast keys. [@const] kCMMetadataKeySpace_HLSDateRange Metadata keyspace for HLS DateRange tags. API-Since: 8.0
      • kCMMetadataKeySpace_ISOUserData

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_ISOUserData()
        API-Since: 8.0
      • kCMMetadataKeySpace_QuickTimeMetadata

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_QuickTimeMetadata()
        API-Since: 8.0
      • kCMMetadataKeySpace_iTunes

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_iTunes()
        API-Since: 8.0
      • kCMMetadataKeySpace_ID3

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_ID3()
        API-Since: 8.0
      • kCMMetadataKeySpace_Icy

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_Icy()
        API-Since: 8.0
      • kCMMetadataKeySpace_HLSDateRange

        @NotNull
        public static @NotNull CFStringRef kCMMetadataKeySpace_HLSDateRange()
        API-Since: 9.3
      • kCMMetadataIdentifier_QuickTimeMetadataLocation_ISO6709

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataLocation_ISO6709()
        [@const] kCMMetadataIdentifier_QuickTimeMetadataLocation_ISO6709 Location information in ISO-6709 format. [@const] kCMMetadataIdentifier_QuickTimeMetadataDirection_Facing Direction the observer is facing. API-Since: 8.0
      • kCMMetadataIdentifier_QuickTimeMetadataDirection_Facing

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataDirection_Facing()
        API-Since: 8.0
      • kCMMetadataIdentifier_QuickTimeMetadataPreferredAffineTransform

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataPreferredAffineTransform()
        [@const] kCMMetadataIdentifier_QuickTimeMetadataPreferredAffineTransform An affine transform that can be used in place of a track matrix for displaying a video track, to better reflect the current orientation of a video camera with respect to a scene. For example, if the camera is rotated after a recording has started, the presence of this metadata will allow a player to adjust its rendering at the time the rotation occurred. API-Since: 8.0
      • kCMMetadataIdentifier_QuickTimeMetadataVideoOrientation

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataVideoOrientation()
        [@const] kCMMetadataIdentifier_QuickTimeMetadataVideoOrientation Video orientation as defined by TIFF/EXIF, which is enumerated by CGImagePropertyOrientation (see ). API-Since: 9.0
      • kCMMetadataBaseDataType_RawData

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_RawData()
        [@const] kCMMetadataBaseDataType_RawData A sequence of bytes whose interpretation based upon an agreement between the reader and the writer. [@const] kCMMetadataBaseDataType_UTF8 UTF-8 string. [@const] kCMMetadataBaseDataType_UTF16 UTF-16 string. [@const] kCMMetadataBaseDataType_GIF GIF image. [@const] kCMMetadataBaseDataType_JPEG JPEG image. [@const] kCMMetadataBaseDataType_PNG PNG image. [@const] kCMMetadataBaseDataType_BMP BMP image. [@const] kCMMetadataBaseDataType_Float32 32-bit big endian floating point number. [@const] kCMMetadataBaseDataType_Float64 64-bit big endian floating point number. [@const] kCMMetadataBaseDataType_SInt8 8-bit signed integer. [@const] kCMMetadataBaseDataType_SInt16 16-bit big endian signed integer. [@const] kCMMetadataBaseDataType_SInt32 32-bit big endian signed integer. [@const] kCMMetadataBaseDataType_SInt64 64-bit big endian signed integer. [@const] kCMMetadataBaseDataType_UInt8 8-bit unsigned integer. [@const] kCMMetadataBaseDataType_UInt16 16-bit big endian unsigned integer. [@const] kCMMetadataBaseDataType_UInt32 32-bit big endian unsigned integer. [@const] kCMMetadataBaseDataType_UInt64 64-bit big endian unsigned integer. [@const] kCMMetadataBaseDataType_PointF32 Consists of two 32-bit big endian floating point values, the x and y values, respectively. [@const] kCMMetadataBaseDataType_DimensionsF32 Consists of a 32-bit big endian floating point x value followed by a 32-bit floating point y value. [@const] kCMMetadataBaseDataType_RectF32 Consists of four 32-bit big endian floating point values, the origin's x, origin's y, width and height values, respectively. May also be interpreted as a 32-bit floating point origin followed by a 32-bit floating point dimension. [@const] kCMMetadataDataType_AffineTransformF64 A 3x3 matrix of 64-bit big endian floating point numbers stored in row-major order that specify an affine transform. [@const] kCMMetadataBaseDataType_PolygonF32 Three or more pairs of 32-bit floating point numbers (x and y values) that define the verticies of a polygon. [@const] kCMMetadataBaseDataType_PolylineF32 Two or more pairs of 32-bit floating point numbers (x and y values) that define a multi-segmented line. [@const] kCMMetadataBaseDataType_JSON UTF-8 encoded JSON data. [@const] kCMMetadataBaseDataType_PerspectiveTransformF64 A 3x3 matrix of 64-bit big endian floating point numbers stored in row-major order that specify a perspective transform. API-Since: 8.0
      • kCMMetadataBaseDataType_UTF8

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UTF8()
        API-Since: 8.0
      • kCMMetadataBaseDataType_UTF16

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UTF16()
        API-Since: 8.0
      • kCMMetadataBaseDataType_GIF

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_GIF()
        API-Since: 8.0
      • kCMMetadataBaseDataType_JPEG

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_JPEG()
        API-Since: 8.0
      • kCMMetadataBaseDataType_PNG

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_PNG()
        API-Since: 8.0
      • kCMMetadataBaseDataType_BMP

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_BMP()
        API-Since: 8.0
      • kCMMetadataBaseDataType_Float32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_Float32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_Float64

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_Float64()
        API-Since: 8.0
      • kCMMetadataBaseDataType_SInt8

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_SInt8()
        API-Since: 8.0
      • kCMMetadataBaseDataType_SInt16

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_SInt16()
        API-Since: 8.0
      • kCMMetadataBaseDataType_SInt32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_SInt32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_SInt64

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_SInt64()
        API-Since: 8.0
      • kCMMetadataBaseDataType_UInt8

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UInt8()
        API-Since: 8.0
      • kCMMetadataBaseDataType_UInt16

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UInt16()
        API-Since: 8.0
      • kCMMetadataBaseDataType_UInt32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UInt32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_UInt64

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_UInt64()
        API-Since: 8.0
      • kCMMetadataBaseDataType_PointF32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_PointF32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_DimensionsF32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_DimensionsF32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_RectF32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_RectF32()
        API-Since: 8.0
      • kCMMetadataBaseDataType_AffineTransformF64

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_AffineTransformF64()
        API-Since: 8.0
      • kCMMetadataBaseDataType_PolygonF32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_PolygonF32()
        API-Since: 9.0
      • kCMMetadataBaseDataType_PolylineF32

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_PolylineF32()
        API-Since: 9.0
      • kCMMetadataBaseDataType_JSON

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_JSON()
        API-Since: 9.0
      • kCMMetadataDataType_QuickTimeMetadataLocation_ISO6709

        @NotNull
        public static @NotNull CFStringRef kCMMetadataDataType_QuickTimeMetadataLocation_ISO6709()
        [@const] kCMMetadataDataType_Location_ISO6709 A string supplying location information in ISO-6709 format. Conforms to kCMMetadataBaseDataType_UTF8. [@const] kCMMetadataDataType_Direction A string supplying degrees offset from magnetic North. Conforms to kCMMetadataBaseDataType_UTF8. API-Since: 8.0
      • kCMMetadataDataType_QuickTimeMetadataDirection

        @NotNull
        public static @NotNull CFStringRef kCMMetadataDataType_QuickTimeMetadataDirection()
        API-Since: 8.0
      • CMVideoFormatDescriptionCreateFromHEVCParameterSets

        public static int CMVideoFormatDescriptionCreateFromHEVCParameterSets​(@Nullable
                                                                              @Nullable CFAllocatorRef allocator,
                                                                              long parameterSetCount,
                                                                              @NotNull
                                                                              @NotNull java.lang.String[] parameterSetPointers,
                                                                              @NotNull
                                                                              @NotNull org.moe.natj.general.ptr.ConstNUIntPtr parameterSetSizes,
                                                                              int NALUnitHeaderLength,
                                                                              @Nullable
                                                                              @Nullable CFDictionaryRef extensions,
                                                                              @NotNull
                                                                              @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMVideoFormatDescriptionCreateFromHEVCParameterSets Creates a format description for a video media stream described by HEVC (H.265) parameter set NAL units. This function parses the dimensions provided by the parameter sets and creates a format description suitable for a raw H.265 stream. The parameter sets' data can come from raw NAL units and must have any emulation prevention bytes needed. The supported NAL unit types to be included in the format description are 32 (video parameter set), 33 (sequence parameter set), 34 (picture parameter set), 39 (prefix SEI) and 40 (suffix SEI). At least one of each parameter set must be provided. API-Since: 11.0
      • CMVideoFormatDescriptionGetHEVCParameterSetAtIndex

        public static int CMVideoFormatDescriptionGetHEVCParameterSetAtIndex​(@NotNull
                                                                             @NotNull CMFormatDescriptionRef videoDesc,
                                                                             long parameterSetIndex,
                                                                             @Nullable
                                                                             @Nullable java.lang.String[] parameterSetPointerOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.NUIntPtr parameterSetSizeOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.NUIntPtr parameterSetCountOut,
                                                                             @Nullable
                                                                             @Nullable org.moe.natj.general.ptr.IntPtr NALUnitHeaderLengthOut)
        [@function] CMVideoFormatDescriptionGetHEVCParameterSetAtIndex Returns a parameter set contained in a HEVC (H.265) format description. This function parses the HEVC decoder configuration record contained in a H.265 video format description and returns the NAL unit at the given index from it. These NAL units are typically parameter sets (e.g. VPS, SPS, PPS), but may contain others as specified by ISO/IEC 14496-15 (e.g. user-data SEI). Both parameterSetPointerOut and parameterSetSizeOut may be NULL, parameterSetCountOut will return the total number of parameter set NAL units contained in the HEVC decoder configuration record. The parameter set NAL units returned will already have any emulation prevention bytes needed. The pointer returned in parameterSetPointerOut points to internal memory of videoDesc, and may only be accessed as long as a retain on videoDesc is held. API-Since: 11.0
      • kCMFormatDescriptionTransferFunction_SMPTE_ST_2084_PQ

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_SMPTE_ST_2084_PQ()
        same as kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ API-Since: 11.0
      • kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG()
        same as kCVImageBufferTransferFunction_ITU_R_2100_HLG API-Since: 11.0
      • kCMFormatDescriptionExtension_MasteringDisplayColorVolume

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_MasteringDisplayColorVolume()
        CFData(24 bytes); big-endian structure; same as kCVImageBufferMasteringDisplayColorVolumeKey; matches payload of ISO/IEC 23008-2:2015(E), D.2.28 Mastering display colour volume SEI message API-Since: 11.0
      • kCMFormatDescriptionExtension_ContentLightLevelInfo

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ContentLightLevelInfo()
        CFData(4 bytes); big-endian structure; same as kCVImageBufferContentLightLevelInfoKey API-Since: 11.0
      • kCMSampleAttachmentKey_HEVCTemporalLevelInfo

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HEVCTemporalLevelInfo()
        CFDictionary(kCMHEVCTemporalLevelInfoKey_*), optional. Corresponds to 'tscl' sample group. API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_TemporalLevel

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_TemporalLevel()
        CFNumber(Int) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_ProfileSpace

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileSpace()
        CFNumber(Int) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_TierFlag

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_TierFlag()
        CFNumber(Int) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_ProfileIndex

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileIndex()
        CFNumber(Int) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_ProfileCompatibilityFlags

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_ProfileCompatibilityFlags()
        CFData(4 bytes) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_ConstraintIndicatorFlags

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_ConstraintIndicatorFlags()
        CFData(6 bytes) API-Since: 11.0
      • kCMHEVCTemporalLevelInfoKey_LevelIndex

        @NotNull
        public static @NotNull CFStringRef kCMHEVCTemporalLevelInfoKey_LevelIndex()
        CFNumber(Int) API-Since: 11.0
      • kCMSampleAttachmentKey_HEVCTemporalSubLayerAccess

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HEVCTemporalSubLayerAccess()
        CFBoolean, optional. Corresponds to 'tsas' sample group. API-Since: 11.0
      • kCMSampleAttachmentKey_HEVCStepwiseTemporalSubLayerAccess

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HEVCStepwiseTemporalSubLayerAccess()
        CFBoolean, optional. Corresponds to 'stsa' sample group. API-Since: 11.0
      • kCMSampleAttachmentKey_HEVCSyncSampleNALUnitType

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HEVCSyncSampleNALUnitType()
        CFNumber(Int), optional. Corresponds to 'sync' sample group. API-Since: 11.0
      • kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix

        @NotNull
        public static @NotNull CFStringRef kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix()
        CFData (matrix_float3x3) API-Since: 11.0
      • CMTimeFoldIntoRange

        public static CMTime CMTimeFoldIntoRange​(CMTime time,
                                                 CMTimeRange foldRange)
        [@function] CMTimeFoldIntoRange Folds a time into the given range. This can be used in looping time calculations. Note that for certain types of looping, you may want to NOT fold times that are prior to the loop range. That's up to the client. API-Since: 12.0
        Returns:
        A CMTime structure representing the translated duration.
      • CMSampleBufferCreateWithMakeDataReadyHandler

        public static int CMSampleBufferCreateWithMakeDataReadyHandler​(@Nullable
                                                                       @Nullable CFAllocatorRef allocator,
                                                                       @Nullable
                                                                       @Nullable CMBlockBufferRef dataBuffer,
                                                                       byte dataReady,
                                                                       @Nullable
                                                                       @Nullable CMFormatDescriptionRef formatDescription,
                                                                       long numSamples,
                                                                       long numSampleTimingEntries,
                                                                       @Nullable
                                                                       @Nullable CMSampleTimingInfo sampleTimingArray,
                                                                       long numSampleSizeEntries,
                                                                       @Nullable
                                                                       @Nullable org.moe.natj.general.ptr.ConstNUIntPtr sampleSizeArray,
                                                                       @NotNull
                                                                       @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut,
                                                                       @Nullable
                                                                       @Nullable CoreMedia.Block_CMSampleBufferCreateWithMakeDataReadyHandler makeDataReadyHandler)
        [@function] CMSampleBufferCreateWithMakeDataReadyHandler Creates a CMSampleBuffer. See CMSampleBufferCreate; this variant allows for passing a block to make the data ready. API-Since: 12.2
      • CMAudioSampleBufferCreateWithPacketDescriptionsAndMakeDataReadyHandler

        public static int CMAudioSampleBufferCreateWithPacketDescriptionsAndMakeDataReadyHandler​(@Nullable
                                                                                                 @Nullable CFAllocatorRef allocator,
                                                                                                 @Nullable
                                                                                                 @Nullable CMBlockBufferRef dataBuffer,
                                                                                                 byte dataReady,
                                                                                                 @NotNull
                                                                                                 @NotNull CMFormatDescriptionRef formatDescription,
                                                                                                 long numSamples,
                                                                                                 CMTime presentationTimeStamp,
                                                                                                 @Nullable
                                                                                                 @Nullable AudioStreamPacketDescription packetDescriptions,
                                                                                                 @NotNull
                                                                                                 @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut,
                                                                                                 @Nullable
                                                                                                 @Nullable CoreMedia.Block_CMAudioSampleBufferCreateWithPacketDescriptionsAndMakeDataReadyHandler makeDataReadyHandler)
        [@function] CMAudioSampleBufferCreateWithPacketDescriptionsAndMakeDataReadyHandler Creates an CMSampleBuffer containing audio given packetDescriptions instead of sizing and timing info See CMAudioSampleBufferCreateWithPacketDescriptions; this variant allows for passing a block to make the data ready. API-Since: 12.2
      • CMSampleBufferCreateForImageBufferWithMakeDataReadyHandler

        public static int CMSampleBufferCreateForImageBufferWithMakeDataReadyHandler​(@Nullable
                                                                                     @Nullable CFAllocatorRef allocator,
                                                                                     @NotNull
                                                                                     @NotNull CVBufferRef imageBuffer,
                                                                                     byte dataReady,
                                                                                     @NotNull
                                                                                     @NotNull CMFormatDescriptionRef formatDescription,
                                                                                     @NotNull
                                                                                     @NotNull CMSampleTimingInfo sampleTiming,
                                                                                     @NotNull
                                                                                     @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sampleBufferOut,
                                                                                     @Nullable
                                                                                     @Nullable CoreMedia.Block_CMSampleBufferCreateForImageBufferWithMakeDataReadyHandler makeDataReadyHandler)
        [@function] CMSampleBufferCreateForImageBufferWithMakeDataReadyHandler Creates a CMSampleBuffer that contains a CVImageBuffer instead of a CMBlockBuffer. See CMSampleBufferCreateForImageBuffer; this variant allows for passing a block to make the data ready. API-Since: 12.2
      • CMTimebaseSetMasterClock

        @Deprecated
        public static int CMTimebaseSetMasterClock​(@NotNull
                                                   @NotNull CMTimebaseRef timebase,
                                                   @NotNull
                                                   @NotNull CMClockRef newMasterClock)
        Deprecated.
        API-Since: 6.0 Deprecated-Since: 8.0
      • CMTimebaseSetMasterTimebase

        @Deprecated
        public static int CMTimebaseSetMasterTimebase​(@NotNull
                                                      @NotNull CMTimebaseRef timebase,
                                                      @NotNull
                                                      @NotNull CMTimebaseRef newMasterTimebase)
        Deprecated.
        API-Since: 6.0 Deprecated-Since: 8.0
      • CMBufferQueueCreateWithHandlers

        public static int CMBufferQueueCreateWithHandlers​(@Nullable
                                                          @Nullable CFAllocatorRef allocator,
                                                          long capacity,
                                                          @NotNull
                                                          @NotNull org.moe.natj.general.ptr.VoidPtr handlers,
                                                          @NotNull
                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMBufferQueueRef> queueOut)
        [@function] CMBufferQueueCreateWithHandlers Creates a CMBufferQueue object. On return, the caller owns the returned CMBufferQueue, and must release it when done with it. API-Since: 12.2
      • CMBufferQueueInstallTriggerHandler

        public static int CMBufferQueueInstallTriggerHandler​(@NotNull
                                                             @NotNull CMBufferQueueRef queue,
                                                             int condition,
                                                             CMTime time,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.Ptr<CMBufferQueueTriggerToken> triggerTokenOut,
                                                             @Nullable
                                                             @Nullable CoreMedia.Block_CMBufferQueueInstallTriggerHandler handler)
        [@function] CMBufferQueueInstallTriggerHandler Installs a trigger on a CMBufferQueue. The returned trigger token can be passed to CMBufferQueueTestTrigger and CMBufferQueueRemoveTrigger. The triggerTokenOut parameter can be NULL (client doesn't need to test or remove trigger), and the handler parameter can be NULL (client doesn't need callbacks, but rather will explicitly test the trigger). One of these two parameters must be non-NULL, however, since an untestable trigger that does not perform a callback is meaningless. If the trigger condition is already true, CMBufferQueueInstallTrigger will call the handler. If it does this, it will first write the trigger token to *triggerTokenOut. API-Since: 12.2
      • CMBufferQueueInstallTriggerHandlerWithIntegerThreshold

        public static int CMBufferQueueInstallTriggerHandlerWithIntegerThreshold​(@NotNull
                                                                                 @NotNull CMBufferQueueRef queue,
                                                                                 int condition,
                                                                                 long threshold,
                                                                                 @Nullable
                                                                                 @Nullable org.moe.natj.general.ptr.Ptr<CMBufferQueueTriggerToken> triggerTokenOut,
                                                                                 @Nullable
                                                                                 @Nullable CoreMedia.Block_CMBufferQueueInstallTriggerHandlerWithIntegerThreshold handler)
        [@function] CMBufferQueueInstallTriggerHandlerWithIntegerThreshold Installs a trigger on a CMBufferQueue. This function behaves the same way as CMBufferQueueInstallTriggerHandler() except the trigger is evaluated against the integer value rather than the time value. API-Since: 12.2
      • CMBufferQueueSetValidationHandler

        public static int CMBufferQueueSetValidationHandler​(@NotNull
                                                            @NotNull CMBufferQueueRef queue,
                                                            @NotNull
                                                            @NotNull CoreMedia.Block_CMBufferQueueSetValidationHandler handler)
        [@function] CMBufferQueueSetValidationHandler Sets a block that CMBufferQueueEnqueue will call to validate buffers before adding them to the queue. Both a validation callback and a validation handler can be set at the same time, in which case they will both be called when enqueueing buffers. They both need to return noErr for the buffer to be enqueued. API-Since: 12.2
      • kCMFormatDescriptionTransferFunction_Linear

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_Linear()
        same as kCVImageBufferTransferFunction_Linear API-Since: 12.0
      • kCMFormatDescriptionTransferFunction_sRGB

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionTransferFunction_sRGB()
        same as kCVImageBufferTransferFunction_sRGB API-Since: 13.0
      • kCMFormatDescriptionExtension_AlternativeTransferCharacteristics

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_AlternativeTransferCharacteristics()
        CFString (usually kCMFormatDescriptionTransferFunction_ITU_R_2100_HLG when used); corresponds to D.2.38 Alternative Transfer Characteristics SEI message API-Since: 12.0
      • kCMFormatDescriptionExtension_AuxiliaryTypeInfo

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_AuxiliaryTypeInfo()
        API-Since: 13.0
      • kCMFormatDescriptionExtension_AlphaChannelMode

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_AlphaChannelMode()
        one of: API-Since: 13.0
      • kCMFormatDescriptionAlphaChannelMode_StraightAlpha

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionAlphaChannelMode_StraightAlpha()
        API-Since: 13.0
      • kCMFormatDescriptionAlphaChannelMode_PremultipliedAlpha

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionAlphaChannelMode_PremultipliedAlpha()
        API-Since: 13.0
      • kCMFormatDescriptionExtension_ContainsAlphaChannel

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ContainsAlphaChannel()
        CFBoolean; used to signal the presence of alpha channel in the bitstream. API-Since: 13.0
      • kCMSampleAttachmentKey_AudioIndependentSampleDecoderRefreshCount

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_AudioIndependentSampleDecoderRefreshCount()
        CFNumber(Int), optional. API-Since: 13.0
      • kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransform

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransform()
        [@const] kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransform A perspective transform that can be used to adjust a Live Photo still image to match the Live Photo movie. Expected data type is kCMMetadataBaseDataType_PerspectiveTransformF64. API-Since: 13.0
      • kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransformReferenceDimensions

        @NotNull
        public static @NotNull CFStringRef kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransformReferenceDimensions()
        [@const] kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransformReferenceDimensions The dimensions of the image used to generate kCMMetadataIdentifier_QuickTimeMetadataLivePhotoStillImageTransform. Expected data type is kCMMetadataBaseDataType_DimensionsF32. API-Since: 13.2
      • kCMMetadataBaseDataType_PerspectiveTransformF64

        @NotNull
        public static @NotNull CFStringRef kCMMetadataBaseDataType_PerspectiveTransformF64()
        API-Since: 13.0
      • kCMFormatDescriptionExtension_ProtectedContentOriginalFormat

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ProtectedContentOriginalFormat()
        CNNumberRef as FourCharCode API-Since: 14.0
      • CMTimebaseCreateWithSourceClock

        public static int CMTimebaseCreateWithSourceClock​(@Nullable
                                                          @Nullable CFAllocatorRef allocator,
                                                          @NotNull
                                                          @NotNull CMClockRef sourceClock,
                                                          @NotNull
                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMTimebaseRef> timebaseOut)
        API-Since: 6.0
      • CMTimebaseCreateWithSourceTimebase

        public static int CMTimebaseCreateWithSourceTimebase​(@Nullable
                                                             @Nullable CFAllocatorRef allocator,
                                                             @NotNull
                                                             @NotNull CMTimebaseRef sourceTimebase,
                                                             @NotNull
                                                             @NotNull org.moe.natj.general.ptr.Ptr<CMTimebaseRef> timebaseOut)
        API-Since: 6.0
      • CMTimebaseCopySourceTimebase

        @Nullable
        public static @Nullable CMTimebaseRef CMTimebaseCopySourceTimebase​(@NotNull
                                                                           @NotNull CMTimebaseRef timebase)
        API-Since: 9.0
      • CMTimebaseCopySourceClock

        @Nullable
        public static @Nullable CMClockRef CMTimebaseCopySourceClock​(@NotNull
                                                                     @NotNull CMTimebaseRef timebase)
        API-Since: 9.0
      • CMTimebaseCopySource

        @NotNull
        public static @NotNull org.moe.natj.general.ptr.ConstVoidPtr CMTimebaseCopySource​(@NotNull
                                                                                          @NotNull CMTimebaseRef timebase)
        API-Since: 9.0
      • CMTimebaseCopyUltimateSourceClock

        @NotNull
        public static @NotNull CMClockRef CMTimebaseCopyUltimateSourceClock​(@NotNull
                                                                            @NotNull CMTimebaseRef timebase)
        API-Since: 9.0
      • CMTimebaseSetSourceClock

        public static int CMTimebaseSetSourceClock​(@NotNull
                                                   @NotNull CMTimebaseRef timebase,
                                                   @NotNull
                                                   @NotNull CMClockRef newSourceClock)
        API-Since: 6.0
      • CMTimebaseSetSourceTimebase

        public static int CMTimebaseSetSourceTimebase​(@NotNull
                                                      @NotNull CMTimebaseRef timebase,
                                                      @NotNull
                                                      @NotNull CMTimebaseRef newSourceTimebase)
        API-Since: 6.0
      • kCMFormatDescriptionExtension_BitsPerComponent

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_BitsPerComponent()
        CFNumber (such as 8, 10, 12, 16, etc). Bit-depth per component -- if there are components with different bit depths this should be the deepest. Do not rely on this extension always being present, as it often isn't. API-Since: 15.0
      • kCMFormatDescriptionExtension_HorizontalFieldOfView

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HorizontalFieldOfView()
        CFNumber; horizontal field of view in thousandths of a degree (i.e., 123456 is 123.456 degrees). API-Since: 15.0
      • kCMFormatDescriptionExtension_AmbientViewingEnvironment

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_AmbientViewingEnvironment()
        CFData(8 bytes); big-endian structure; same as kCVImageBufferAmbientViewingEnvironmentKey; matches payload of ISO/IEC 23008-2:2017, D.2.39 ambient viewing environment SEI message API-Since: 15.0
      • kCMSampleAttachmentKey_CryptorSubsampleAuxiliaryData

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_CryptorSubsampleAuxiliaryData()
        CFData API-Since: 15.0
      • kCMSampleAttachmentKey_HDR10PlusPerFrameData

        @NotNull
        public static @NotNull CFStringRef kCMSampleAttachmentKey_HDR10PlusPerFrameData()
        CFData API-Since: 16.0
      • kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions

        @NotNull
        public static @NotNull CFStringRef kCMImageDescriptionFlavor_ISOFamilyWithAppleExtensions()
        M4A, M4V, etc (implies ISO) API-Since: 16.0
      • kCMTextMarkupAttribute_FontFamilyNameList

        @NotNull
        public static @NotNull CFStringRef kCMTextMarkupAttribute_FontFamilyNameList()
        [@const] kCMTextMarkupAttribute_FontFamilyNameList The array of font name(s) and if that name is a generic or a platform name. Value must be a CFArray holding CFDictionaries that are used to render and/or measure text. Each dictionary entry has a font family name and a font kind value. The font kind value can be either 0 for generic font family or 1 for platform font family corresponding to the font family name. The CFArray value can hold multiple font names as a fallback where the author prefers specific fonts. If the renderer does not support the first font entry, it tries the following. For example, the array includes InexistantFont and Times New Roman font names, it is expected the renderer to select the "Times New Roman" font for drawing caption. API-Since: 16.0
      • CMVideoFormatDescriptionCopyTagCollectionArray

        public static int CMVideoFormatDescriptionCopyTagCollectionArray​(@NotNull
                                                                         @NotNull CMFormatDescriptionRef formatDescription,
                                                                         @Nullable
                                                                         @Nullable org.moe.natj.general.ptr.Ptr<CFArrayRef> tagCollectionsOut)
        [@function] CMVideoFormatDescriptionCopyTagCollectionArray Copies the multi-image encoding properties as an array of CMTagCollections. On return, the caller owns the returned CFArrayRef and must release it when done with it. This function copies the VideoLayerIDs and LeftAndRightViewIDs from hvcC and 3D Reference Displays Info SEI in the formatDescription. The returned values can be used to enable the multi-image decoding with kVTDecompressionPropertyKey_RequestedMVHEVCVideoLayerIDs. It also gives the eye mapping information for the pixel buffers of the decoded CMTaggedBufferGroups.
        Parameters:
        formatDescription - CMVideoFormatDescription being interrogated.
        tagCollectionsOut - Returned TagCollections with CMTags such as kCMTagCategory_VideoLayerID and kCMTagCategory_StereoViewType.
        Returns:
        Array of CMTagCollections. The result will be NULL if the CMVideoFormatDescription does not contain multi-image encoding parameters, or if there is some other error. API-Since: 17.0
      • CMTagIsValid

        public static byte CMTagIsValid​(CMTag tag)
        [@function] CMTagIsValid Tests if a CMTag is valid.
        Parameters:
        tag - The CMTag to evaluate.
        Returns:
        Returns false if the tag's dataType is kCMTagDataType_Invalid, true otherwise. API-Since: 17.0
      • CMTagGetValueDataType

        public static int CMTagGetValueDataType​(CMTag tag)
        [@function] CMTagGetValueDataType Returns the dataType field of the CMTag.
        Parameters:
        tag - CMTag from which to extract the data type.
        Returns:
        kCMTagDataType_* value. API-Since: 17.0
      • CMTagGetCategory

        public static int CMTagGetCategory​(CMTag tag)
        [@function] CMTagGetCategory Returns the CMTagCategory field of the CMTag.
        Parameters:
        tag - CMTag to access.
        Returns:
        CMTagCategory of the tag. API-Since: 17.0
      • CMTagCategoryEqualToTagCategory

        public static byte CMTagCategoryEqualToTagCategory​(CMTag tag1,
                                                           CMTag tag2)
        [@function] CMTagCategoryEqualToTagCategory Tests if the CMTagCategory fields of two CMTags are equal. Function evaluates if two tag categories are structurally equivalent. This can also be performed using the == operator with the fields but this inline can be useful if one wants to catch invocations.
        Parameters:
        tag1 - First CMTag to test.
        tag2 - Second CMTag to test.
        Returns:
        Boolean indicating if the tag categories are equal. API-Since: 17.0
      • CMTagGetValue

        public static long CMTagGetValue​(CMTag tag)
        [@function] CMTagGetValue Returns the raw 64-bit CMTagValue field of the CMTag. The CMTagValue is returned without consideration for the encoded data type.
        Parameters:
        tag - CMTag to access.
        Returns:
        CMTagValue of the tag. API-Since: 17.0
      • CMTagHasCategory

        public static byte CMTagHasCategory​(CMTag tag,
                                            int category)
        [@function] CMTagHasCategory Returns true if the CMTag has the specified CMTagCategory.
        Parameters:
        tag - CMTag to evaluate.
        category - CMTagCategory to check for.
        Returns:
        CMTagCategory of the tag. API-Since: 17.0
      • CMTagHasSInt64Value

        public static byte CMTagHasSInt64Value​(CMTag tag)
        [@function] CMTagHasSInt64Value Checks if the tag represents a signed 64-bit value.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Returns true if the CMTag carries a signed 64-bit value indicated by a data type of kCMTagDataType_SInt64, false otherwise. API-Since: 17.0
      • CMTagGetSInt64Value

        public static long CMTagGetSInt64Value​(CMTag tag)
        [@function] CMTagGetSInt64Value Returns the signed 64-bit value carried by the CMTag. This should only be called on a CMTag with a data type of kCMTagDataType_SInt64. Calling it with a CMTag having another data type is undefined.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Signed 64-bit integer. API-Since: 17.0
      • CMTagHasFloat64Value

        public static byte CMTagHasFloat64Value​(CMTag tag)
        [@function] CMTagHasFloat64Value Checks if the tag represents a 64-bit float value.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Returns true if the CMTag carries a 64-bit float indicated by a data type of kCMTagDataType_Float64, false otherwise. API-Since: 17.0
      • CMTagGetFloat64Value

        public static double CMTagGetFloat64Value​(CMTag tag)
        [@function] CMTagGetFloat64Value Returns the 64-bit floating point value carried by the CMTag. This should only be called on a CMTag with a data type of kCMTagDataType_Float64. Calling it with a CMTag having another data type is undefined.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        64-bit float. API-Since: 17.0
      • CMTagHasOSTypeValue

        public static byte CMTagHasOSTypeValue​(CMTag tag)
        [@function] CMTagHasOSTypeValue Checks if the tag represents an OSType value.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Returns true if the CMTag carries an OSType indicated by a data type of kCMTagDataType_OSType, false otherwise. API-Since: 17.0
      • CMTagGetOSTypeValue

        public static int CMTagGetOSTypeValue​(CMTag tag)
        [@function] CMTagGetOSTypeValue Returns the single OSType value carried by the CMTag. This should only be called on a CMTag with a data type of kCMTagDataType_OSType. Calling it with a CMTag having another data type is undefined.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        OSType. API-Since: 17.0
      • CMTagHasFlagsValue

        public static byte CMTagHasFlagsValue​(CMTag tag)
        [@function] CMTagHasFlagsValue Checks if the tag represents an flags value.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Returns true if the CMTag carries 64 bits of flags indicated by a data type of kCMTagDataType_Flags, false otherwise. API-Since: 17.0
      • CMTagGetFlagsValue

        public static long CMTagGetFlagsValue​(CMTag tag)
        [@function] CMTagGetFlagsValue Returns the 64 bits of flags as an unsigned 64-bit integer carried by the CMTag. This should only be called on a CMTag with a data type of kCMTagDataType_Flags. Calling it with a CMTag having another data type is undefined.
        Parameters:
        tag - CMTag to evaluate.
        Returns:
        Unsigned 64-bit integer holding the flags value. API-Since: 17.0
      • CMTagMakeWithSInt64Value

        public static CMTag CMTagMakeWithSInt64Value​(int category,
                                                     long value)
        [@function] CMTagMakeWithSInt64Value Create a CMTag holding a signed 64-bit integer. This function creates a valid CMTag with the data type kCMTagDataType_SInt64 and have a signed 64-bit integer value.
        Parameters:
        category - CMTagCategory for the created CMTag.
        value - A signed 64-bit integer to encode in the returned CMTag.
        Returns:
        A CMTag. API-Since: 17.0
      • CMTagMakeWithFloat64Value

        public static CMTag CMTagMakeWithFloat64Value​(int category,
                                                      double value)
        [@function] CMTagMakeWithFloat64Value Create a CMTag holding a 64-bit float. This function creates a valid CMTag with the data type kCMTagDataType_Float64 and have a 64-bit floating point value.
        Parameters:
        category - CMTagCategory for the created CMTag.
        value - A 64-bit float to encode in the returned CMTag.
        Returns:
        A CMTag. API-Since: 17.0
      • CMTagMakeWithOSTypeValue

        public static CMTag CMTagMakeWithOSTypeValue​(int category,
                                                     int value)
        [@function] CMTagMakeWithOSTypeValue Create a CMTag holding an OSType. This function creates a valid CMTag with the data type kCMTagDataType_OSType and have an OSType value.
        Parameters:
        category - CMTagCategory for the created CMTag.
        value - An OSType to encode in the returned CMTag.
        Returns:
        A CMTag. API-Since: 17.0
      • CMTagMakeWithFlagsValue

        public static CMTag CMTagMakeWithFlagsValue​(int category,
                                                    long flagsForTag)
        [@function] CMTagMakeWithFlagsValue Create a CMTag holding a 64 bits of flags. This function creates a valid CMTag with the data type kCMTagDataType_Flags and has an unsigned 64-bit integer value holding the flags.
        Parameters:
        category - CMTagCategory for the created CMTag.
        flagsForTag - An unsigned 64-bit integer to encode in the returned CMTag.
        Returns:
        A CMTag. API-Since: 17.0
      • CMTagEqualToTag

        public static byte CMTagEqualToTag​(CMTag tag1,
                                           CMTag tag2)
        [@function] CMTagEqualToTag Tests if two CMTags are equal. Function evaluates if two tags are structurally equivalent. It performs a field by field comparison.
        Parameters:
        tag1 - First CMTag to test for equality.
        tag2 - Second CMTag to test for equality.
        Returns:
        Returns true if the two tags are equal, false otherwise. API-Since: 17.0
      • CMTagCompare

        public static long CMTagCompare​(CMTag tag1,
                                        CMTag tag2)
        [@function] CMTagCompare Compares two CMTags in an ordered fashion returning a CFComparisonResult based upon the ordering of the tags. The entirety of a CMTag can be compared against a second CMTag in an ordered way. The details of how the comparison is performed is an internal implementation detail. The comparison is performed as tag1 COMPARISON tag2 where COMPARISON is the ordering operation. The ordering will be stable under a release of the framework but may change in the future. Therefore, an ordered CMTag array serialized in one version of the framework should not be assumed to be ordered the same in another version of the framework. This is best handled by retrieving the original array of CMTags and then reinserting with the new order.
        Parameters:
        tag1 - First CMTag to compare in ordered fashion.
        tag2 - Second CMTag to compare in ordered fashion.
        Returns:
        The CFComparisonResult indicating the order of tag1 compared to tag2. API-Since: 17.0
      • CMTagCategoryValueEqualToValue

        public static byte CMTagCategoryValueEqualToValue​(CMTag tag1,
                                                          CMTag tag2)
        [@function] CMTagCategoryValueEqualToValue Compares two CMTagCategory values for equality. Equality can also be tested by comparing the values with == but this is provided for consistency with other tests here.
        Parameters:
        tag1 - First CMTag to test for equality.
        tag2 - Second CMTag to test for equality.
        Returns:
        Boolean indicating if the tag values are equal. API-Since: 17.0
      • CMTagHash

        public static long CMTagHash​(CMTag tag)
        [@function] CMTagHash Calculates a hash code for the CMTag.
        Parameters:
        tag - CMTag to hash.
        Returns:
        The created CFHashCode. API-Since: 17.0
      • CMTagCopyDescription

        @Nullable
        public static @Nullable CFStringRef CMTagCopyDescription​(@Nullable
                                                                 @Nullable CFAllocatorRef allocator,
                                                                 CMTag tag)
        [@function] CMTagCopyDescription Creates a CFString with a description of a CMTag (just like CFCopyDescription). This can be used from within CFShow on an object that contains CMTag fields. It is also useful from other client debugging code. The caller owns the returned CFString, and is responsible for releasing it. Descriptions are not localized so are likely suitable only for debugging.
        Parameters:
        allocator - CFAllocator to use in creating the description string. Pass kCFAllocatorDefault to use the default allocator.
        tag - CMTag to describe.
        Returns:
        The created CFString description. API-Since: 17.0
      • CMTagCopyAsDictionary

        @Nullable
        public static @Nullable CFDictionaryRef CMTagCopyAsDictionary​(CMTag tag,
                                                                      @Nullable
                                                                      @Nullable CFAllocatorRef allocator)
        [@function] CMTagCopyAsDictionary Returns a CFDictionary version of a CMTag. This is useful when putting CMTag in CF container types. The caller owns the returned CFDictionary, and is responsible for releasing it.
        Parameters:
        tag - The CMTag from which to create the dictionary.
        allocator - CFAllocator with which to create a dictionary. Pass kCFAllocatorDefault to use the default allocator.
        Returns:
        A CFDictionary version of the CMTag. API-Since: 17.0
      • CMTagMakeFromDictionary

        public static CMTag CMTagMakeFromDictionary​(@NotNull
                                                    @NotNull CFDictionaryRef dict)
        [@function] CMTagMakeFromDictionary Reconstitutes a CMTag struct from a CFDictionary previously created by CMTagCopyAsDictionary. This is useful when getting CMTag from CF container types. If the CFDictionary does not have the requisite keyed values, kCMTagInvalid is returned.
        Parameters:
        dict - A CFDictionary from which to create a CMTag.
        Returns:
        The created CMTag. API-Since: 17.0
      • CMTagCollectionGetTypeID

        public static long CMTagCollectionGetTypeID()
        [@function] CMTagCollectionGetTypeID Obtains the CoreFoundation type ID for the CMTagCollection type. Obtains the CoreFoundation type ID for the CMTagCollection type.
        Returns:
        Returns the CFTypeID corresponding to CMTagCollection. API-Since: 17.0
      • CMTagCollectionCreate

        public static int CMTagCollectionCreate​(@Nullable
                                                @Nullable CFAllocatorRef allocator,
                                                @Nullable
                                                @Nullable CMTag tags,
                                                long tagCount,
                                                @NotNull
                                                @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> newCollectionOut)
        [@function] CMTagCollectionCreate Creates a CMTagCollectionRef described by a number of parameters. This can be used to construct a CMTagCollectionRef from zero or more CMTags.
        Parameters:
        allocator - CFAllocator to use to create the collection and internal data structures.
        tags - Zero or more CMTag structs to copy into the collection. May pass NULL if tagCount is also zero (0).
        tagCount - Number of tags in the 'tags' array.
        newCollectionOut - Address of a location to return the newly created CMTagCollectionRef. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCreateMutable

        public static int CMTagCollectionCreateMutable​(@Nullable
                                                       @Nullable CFAllocatorRef allocator,
                                                       long capacity,
                                                       @NotNull
                                                       @NotNull org.moe.natj.general.ptr.Ptr<CMMutableTagCollectionRef> newMutableCollectionOut)
        [@function] CMTagCollectionCreateMutable Creates a CMMutableTagCollectionRef. This can be used to construct a mutable CMTagCollectionRef with a capacity limit or without a capacity limit. A capacity greater than zero indicates a maximum number of CMTags the collection can contain. The actual number of tags may be less than this value depending upon how many tags have been added to the collection. If capacity is 0, the mutable collection can contain any number of tags.
        Parameters:
        allocator - CFAllocator to use to create the collection and internal data structures.
        capacity - Capacity limit set to zero to indicate no limit or a value greater than zero for a limit.
        newMutableCollectionOut - Address of a location to return the newly created CMMutabbleTagCollectionRef. The client is responsible for releasing the returned CMMutableTagCollection.
        Returns:
        OSStatus with error, or noErr if successful. API-Since: 17.0
      • CMTagCollectionCreateCopy

        public static int CMTagCollectionCreateCopy​(@NotNull
                                                    @NotNull CMTagCollectionRef tagCollection,
                                                    @Nullable
                                                    @Nullable CFAllocatorRef allocator,
                                                    @NotNull
                                                    @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> newCollectionCopyOut)
        [@function] CMTagCollectionCreateCopy Creates a duplicate CMTagCollectionRef. This can be used to construct a CMTagCollectionRef that contains all the same tags as another collection.
        Parameters:
        tagCollection - CMTagCollectionRef used to create the copy.
        allocator - CFAllocator used to create the copy.
        newCollectionCopyOut - Address of a location to return the newly created CMTagCollectionRef. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCreateMutableCopy

        public static int CMTagCollectionCreateMutableCopy​(@NotNull
                                                           @NotNull CMTagCollectionRef tagCollection,
                                                           @Nullable
                                                           @Nullable CFAllocatorRef allocator,
                                                           @NotNull
                                                           @NotNull org.moe.natj.general.ptr.Ptr<CMMutableTagCollectionRef> newMutableCollectionCopyOut)
        [@function] CMTagCollectionCreateMutableCopy Creates a duplicate mutable CMTagCollectionRef. This can be used to construct a CMMutableTagCollectionRef that contains all the same tags as another collection.
        Parameters:
        tagCollection - CMTagCollectionRef used to create the copy.
        allocator - CFAllocator used to create the copy.
        newMutableCollectionCopyOut - Address of a location to return the newly created CMMutableTagCollectionRef. The client is responsible for releasing the returned CMMutableTagCollection.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCopyDescription

        @Nullable
        public static @Nullable CFStringRef CMTagCollectionCopyDescription​(@Nullable
                                                                           @Nullable CFAllocatorRef allocator,
                                                                           @Nullable
                                                                           @Nullable CMTagCollectionRef tagCollection)
        [@function] CMTagCollectionCopyDescription Creates a CFString with a description of a CMTagCollection. This can be used from within CFShow on a CMTagCollection object. It is also useful from other client debugging code. The caller owns the returned CFString, and is responsible for releasing it. Descriptions are not localized so are likely suitable only for debugging.
        Parameters:
        allocator - CFAllocator to use in creating the description string.
        tagCollection - CMTagCollectionRef to describe.
        Returns:
        The created CFString description. API-Since: 17.0
      • CMTagCollectionGetCount

        public static long CMTagCollectionGetCount​(@NotNull
                                                   @NotNull CMTagCollectionRef tagCollection)
        [@function] CMTagCollectionGetCount Returns the number of CMTags held in the CMTagCollectionRef.
        Parameters:
        tagCollection - CMTagCollectionRef to evaluate for the tag count.
        Returns:
        CMItemCount holding the count. API-Since: 17.0
      • CMTagCollectionContainsTag

        public static byte CMTagCollectionContainsTag​(@NotNull
                                                      @NotNull CMTagCollectionRef tagCollection,
                                                      CMTag tag)
        [@function] CMTagCollectionContainsTag Checks if the tag collection contains a specific tag.
        Parameters:
        tagCollection - CMTagCollection to check.
        tag - CMTag to find.
        Returns:
        Returns true if the indicated CMTag is contained within the CMTagCollection, false otherwise. API-Since: 17.0
      • CMTagCollectionContainsTagsOfCollection

        public static byte CMTagCollectionContainsTagsOfCollection​(@NotNull
                                                                   @NotNull CMTagCollectionRef tagCollection,
                                                                   @NotNull
                                                                   @NotNull CMTagCollectionRef containedTagCollection)
        [@function] CMTagCollectionContainsTagsOfCollection Checks if all the tags in a tag collection are present in another tag collection. Tests if a collection of tags specified by a CMTagCollection are contained within another tag collection in its entirety. Partial containment will report false. Complete containment will report true.
        Parameters:
        tagCollection - CMTagCollectionRef used to check.
        containedTagCollection - CMTagCollectionRef whose contents should be checked for containment in tagCollection.
        Returns:
        Returns true if all CMTags in a collection are contained within the specified CMTagCollection, false otherwise. API-Since: 17.0
      • CMTagCollectionContainsSpecifiedTags

        public static byte CMTagCollectionContainsSpecifiedTags​(@NotNull
                                                                @NotNull CMTagCollectionRef tagCollection,
                                                                @NotNull
                                                                @NotNull CMTag containedTags,
                                                                long containedTagCount)
        [@function] CMTagCollectionContainsSpecifiedTags Checks if all the specified tags are contained in a tag collection. Tests if the tags specified by a buffer of CMTags are contained within another tag collection in its entirety. Partial containment will report false. Complete containment will report true.
        Parameters:
        tagCollection - CMTagCollectionRef to check.
        containedTags - The non-NULL address to a CMTag array whose CMTags should be checked for containment in tagCollection.
        containedTagCount - The number of CMTag elements in the buffer containedTags. Zero is allowed but will report true.
        Returns:
        Returns true if all CMTags in a buffer of CMTags are contained within the CMTagCollection, false otherwise. API-Since: 17.0
      • CMTagCollectionContainsCategory

        public static byte CMTagCollectionContainsCategory​(@NotNull
                                                           @NotNull CMTagCollectionRef tagCollection,
                                                           int category)
        [@function] CMTagCollectionContainsCategory Tests if a CMTagCategory is used by any CMTags within the tag container.
        Parameters:
        tagCollection - CMTagCollectionRef to check.
        category - CMTagCategory whose value should be checked for containment in tagCollection.
        Returns:
        Returns true if tagCollection contains at least one CMTag with the specified category, false otherwise. API-Since: 17.0
      • CMTagCollectionGetCountOfCategory

        public static long CMTagCollectionGetCountOfCategory​(@NotNull
                                                             @NotNull CMTagCollectionRef tagCollection,
                                                             int category)
        [@function] CMTagCollectionGetCountOfCategory Counts an returns the number of tags in the tag collection matching the specified category. Returns the count of tags having the specified category. It will return 0 if there are no tags.
        Parameters:
        tagCollection - CMTagCollectionRef to evaluate.
        category - CMTagCategory to check for.
        Returns:
        Returns the count of tags having the specified category. API-Since: 17.0
      • CMTagCollectionGetTags

        public static int CMTagCollectionGetTags​(@NotNull
                                                 @NotNull CMTagCollectionRef tagCollection,
                                                 @NotNull
                                                 @NotNull CMTag tagBuffer,
                                                 long tagBufferCount,
                                                 @Nullable
                                                 @Nullable org.moe.natj.general.ptr.NIntPtr numberOfTagsCopied)
        [@function] CMTagCollectionGetTags Retrieve all CMTags and copy into a supplied buffer. The function retrieves a specified number of CMTags from the CMTagCollectionRef and copies them to a supplied buffer. The routine populates a provided sized buffer with each CMTag in the collection. If the provided buffer is smaller than needed to retrieve all tags, the routine will fill the buffer, return the number actually copied and return kCMTagCollectionError_ExhaustedBufferSize. If the provided buffer is larger than the number of CMTags in the collection to retrieve, the routine will fill the buffer with the number of available CMTags, return the number copied and fill the remainder of the buffer with kCMTagInvalid while returning noErr.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        tagBuffer - A non-NULL address of a buffer to fill with CMTags with CMTagCategory 'category'.
        tagBufferCount - The number of CMTags the buffer 'tagBuffer' can hold.
        numberOfTagsCopied - The address of a CMItemCount that is filled with the number of tags retrieved, may be NULL.
        Returns:
        OSStatus with an error or noErr if successful. API-Since: 17.0
      • CMTagCollectionGetTagsWithCategory

        public static int CMTagCollectionGetTagsWithCategory​(@NotNull
                                                             @NotNull CMTagCollectionRef tagCollection,
                                                             int category,
                                                             @NotNull
                                                             @NotNull CMTag tagBuffer,
                                                             long tagBufferCount,
                                                             @Nullable
                                                             @Nullable org.moe.natj.general.ptr.NIntPtr numberOfTagsCopied)
        [@function] CMTagCollectionGetTagsWithCategory Retrieve CMTags having a specified CMTagCategory and copy to a supplied buffer. Populates a provided buffer with each CMTag in the collection that has the specified CMTagCategory. If the provided buffer is smaller than needed, the routine will fill the buffer, return the number of CMTags actually copied and return kCMTagCollectionError_ExhaustedBufferSize. If the provided buffer is larger than needed, it will fill the buffer with the number of available CMTags, return the number copied and fill the remainder of the buffer with kCMTagInvalid.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        category - CMTagCategory to match.
        tagBuffer - A non-NULL address of a buffer to fill with CMTags with CMTagCategory 'category'.
        tagBufferCount - The number of CMTags the buffer 'tagBuffer' can hold.
        numberOfTagsCopied - The address of a CMItemCount that is filled with the number of tags retrieved, may be NULL.
        Returns:
        OSStatus with an error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCountTagsWithFilterFunction

        public static long CMTagCollectionCountTagsWithFilterFunction​(@NotNull
                                                                      @NotNull CMTagCollectionRef tagCollection,
                                                                      @NotNull
                                                                      @NotNull CoreMedia.Function_CMTagCollectionCountTagsWithFilterFunction filterApplier,
                                                                      @Nullable
                                                                      @Nullable org.moe.natj.general.ptr.VoidPtr context)
        [@function] CMTagCollectionCountTagsWithFilterFunction Count the number of tags satisfying a callback. Iterates over the CMTags of the tag collection calling the supplied callback and incrementing a counter for each tag satisfying the callback. Returns this counter value upon completing iteration.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        filterApplier - The CMTagCollectionTagFilterFunction callback to call with each tag.
        context - A void * or NULL to pass to applier.
        Returns:
        CMItemCount indicating the number of CMTags satisfying 'filterApplier'. API-Since: 17.0
      • CMTagCollectionGetTagsWithFilterFunction

        public static int CMTagCollectionGetTagsWithFilterFunction​(@NotNull
                                                                   @NotNull CMTagCollectionRef tagCollection,
                                                                   @NotNull
                                                                   @NotNull CMTag tagBuffer,
                                                                   long tagBufferCount,
                                                                   @Nullable
                                                                   @Nullable org.moe.natj.general.ptr.NIntPtr numberOfTagsCopied,
                                                                   @NotNull
                                                                   @NotNull CoreMedia.Function_CMTagCollectionGetTagsWithFilterFunction filter,
                                                                   @Nullable
                                                                   @Nullable org.moe.natj.general.ptr.VoidPtr context)
        [@function] CMTagCollectionGetTagsWithFilterFunction Retrieve CMTags satisfying a callback function and copy them to a supplied buffer. Applies a CMTagCollectionTagFilterFunction predicate and populates a provided buffer with each CMTag that for each tag when the filter returns true. If the provided buffer is smaller than the number of tags the predicate satisfies, the routine will fill the buffer, return the copy CMTags actually copied and return kCMTagCollectionError_ExhaustedBufferSize. If the provided buffer is larger than needed, it will fill the buffer with the number of available CMTags, fill the remainder of the buffer with kCMTagInvalid and return a result of noErr.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        tagBuffer - A non-NULL address of a buffer to fill with CMTags with CMTagCategory 'category'.
        tagBufferCount - The number of CMTags the buffer 'tagBuffer' can hold.
        numberOfTagsCopied - The address of a CMItemCount that is filled with the number of tags retrieved, may be NULL.
        filter - The CMTagCollectionTagFilterFunction callback to call with each tag.
        context - A void * or NULL to pass to filter.
        Returns:
        OSStatus with an error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCopyTagsOfCategories

        public static int CMTagCollectionCopyTagsOfCategories​(@Nullable
                                                              @Nullable CFAllocatorRef allocator,
                                                              @NotNull
                                                              @NotNull CMTagCollectionRef tagCollection,
                                                              @NotNull
                                                              @NotNull org.moe.natj.general.ptr.ConstIntPtr categories,
                                                              long categoriesCount,
                                                              @NotNull
                                                              @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> collectionWithTagsOfCategories)
        [@function] CMTagCollectionCopyTagsOfCategories Copies all tags belonging to a specified list of CMTagCategory from one tag collection to a newly created tag collection. This routine copies all tags belonging to a specified list of CMTagCategory from one tag collection to a newly created tag collection.
        Parameters:
        allocator - CFAllocatorRef to use in allocations of the operation.
        tagCollection - CMTagCollectionRef from which to copy tags.
        categories - A non-NULL address of a buffer containing a list of CMTagCategory.
        categoriesCount - The number of CMTagCategory the buffer 'categories' is holding.
        collectionWithTagsOfCategories - The address of a CMTagCollectionRef that contains all tags copied from 'tagCollection'. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionApply

        public static void CMTagCollectionApply​(@NotNull
                                                @NotNull CMTagCollectionRef tagCollection,
                                                @NotNull
                                                @NotNull CoreMedia.Function_CMTagCollectionApply applier,
                                                @Nullable
                                                @Nullable org.moe.natj.general.ptr.VoidPtr context)
        [@function] CMTagCollectionApply Iterate over a tag collection calling the provided callback. Iterates over the CMTags of the tag collection executing the callback with each tag.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        applier - The CMTagCollectionApplierFunction callback to call with each tag.
        context - A void * or NULL to pass to applier. API-Since: 17.0
      • CMTagCollectionApplyUntil

        public static CMTag CMTagCollectionApplyUntil​(@NotNull
                                                      @NotNull CMTagCollectionRef tagCollection,
                                                      @NotNull
                                                      @NotNull CoreMedia.Function_CMTagCollectionApplyUntil applier,
                                                      @Nullable
                                                      @Nullable org.moe.natj.general.ptr.VoidPtr context)
        [@function] CMTagCollectionApplyUntil Iterate over a tag collection until the callback is satisfied. Function iterates over the CMTags of the tag collection until the function returns true and then returns the CMTag at that position. Once the callback is satisfied by returning true, CMTagCollectionApplyUntil() stops iteration and returns the CMTag that evaluated to true. If no CMTags satisfy the callback, the value kCMTagInvalid will be returned.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        applier - The CMTagCollectionTagFilterFunction callback to call with each tag.
        context - A void * or NULL to pass to applier.
        Returns:
        CMTag having the value of the first tag the callback returned true for or kCMTagInvalid if none was found. API-Since: 17.0
      • CMTagCollectionIsEmpty

        public static byte CMTagCollectionIsEmpty​(@NotNull
                                                  @NotNull CMTagCollectionRef tagCollection)
        [@function] CMTagCollectionIsEmpty Reports if the tag collection contains no tags. This is a convenience name for set like use but is the same as the expression: CMTagCollectionIsEmptyGetCount() == 0.
        Parameters:
        tagCollection - CMTagCollectionRef to iterate.
        Returns:
        True if there are no tags, false otherwise. API-Since: 17.0
      • CMTagCollectionCreateIntersection

        public static int CMTagCollectionCreateIntersection​(@Nullable
                                                            @Nullable CMTagCollectionRef tagCollection1,
                                                            @Nullable
                                                            @Nullable CMTagCollectionRef tagCollection2,
                                                            @NotNull
                                                            @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> tagCollectionOut)
        [@function] CMTagCollectionCreateIntersection Calculates the intersection of two tag collections to produce a new tag collection. This routine creates an intersection of two tag collection by finding common tags among two source tag collections and produces a new tag collection containing those common tags.
        Parameters:
        tagCollection1 - CMTagCollectionRef to use in the intersection operation.
        tagCollection2 - CMTagCollectionRef to use in the intersection operation.
        tagCollectionOut - The address of a CMTagCollectionRef that contains all tags that are common to 'tagCollection1' and 'tagCollection2'. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionCreateUnion

        public static int CMTagCollectionCreateUnion​(@Nullable
                                                     @Nullable CMTagCollectionRef tagCollection1,
                                                     @Nullable
                                                     @Nullable CMTagCollectionRef tagCollection2,
                                                     @NotNull
                                                     @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> tagCollectionOut)
        [@function] CMTagCollectionCreateUnion Calculates the union of two tag collections to produce a new tag collection. This routine creates an union of two tag collection by adding all tags from two tag collections and produces a new tag collection containing all the tags. Duplicate tags will not be added twice. Note that if no tags are common among the source tag collections, the new tag collection will contain as many tags as the sum of the number of tags in each source tag collection. If two source tag collections contain the same tags, the resulting tag collection will have the same number of tags as each source tag collection.
        Parameters:
        tagCollection1 - CMTagCollectionRef to use in the union operation.
        tagCollection2 - CMTagCollectionRef to use in the union operation.
        tagCollectionOut - The address of a CMTagCollectionRef that contains all tags that are common to 'tagCollection1' and 'tagCollection2'. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionCreateDifference

        public static int CMTagCollectionCreateDifference​(@Nullable
                                                          @Nullable CMTagCollectionRef tagCollectionMinuend,
                                                          @Nullable
                                                          @Nullable CMTagCollectionRef tagCollectionSubtrahend,
                                                          @NotNull
                                                          @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> tagCollectionOut)
        [@function] CMTagCollectionCreateDifference Calculates the difference of two tag collections to produce a new tag collection. This routine creates the difference by considering a first source tag collection and removing all tags found in the first tag collection to produce a new tag collection containing only the tags not in the second tag collection. Note that if the second tag collection has no tags found in the first tag collection, the produced tag collection will have the same tags as the first tag collection. If the second tag collection is empty, the produced tag collection will also have the same tags as the first tag collection. If the second tag collection contains all the tags found in the source tag collection, the produced tag collection will be empty. The order of parameters is important. Given two tag collections 'A' and 'B', the calculaton of 'A' - 'B' is not the same as 'B' - 'A'.
        Parameters:
        tagCollectionMinuend - CMTagCollectionRef from which to remove tags.
        tagCollectionSubtrahend - CMTagCollectionRef to consult to determine tags to remove from 'tagCollectionMinuend'.
        tagCollectionOut - The address of a CMTagCollectionRef that contains tags from a first tag collection without tags found in a second tag collection. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionCreateExclusiveOr

        public static int CMTagCollectionCreateExclusiveOr​(@Nullable
                                                           @Nullable CMTagCollectionRef tagCollection1,
                                                           @Nullable
                                                           @Nullable CMTagCollectionRef tagCollection2,
                                                           @NotNull
                                                           @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> tagCollectionOut)
        [@function] CMTagCollectionCreateExclusiveOr Calculates the exclusive OR of two tag collections to produce a new tag collection. This routine determines tags that are in only one of two source tag collections and adds only those to produce a new tag collection. If both source tag collections have no tags in common, the produced tag collection will contain a union of both source tag collections. If both source tag collections have the same tags, the produced tag collection will be empty.
        Parameters:
        tagCollection1 - CMTagCollectionRef to use in the xor operation.
        tagCollection2 - CMTagCollectionRef to use in the xor operation.
        tagCollectionOut - The address of a CMTagCollectionRef that contains the xor of the tags from the two tag collections. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionAddTag

        public static int CMTagCollectionAddTag​(@NotNull
                                                @NotNull CMMutableTagCollectionRef tagCollection,
                                                CMTag tagToAdd)
        [@function] CMTagCollectionAddTag Adds a tag to a mutable tag collection guaranteeing it is only added once. This routine adds a CMTag to a CMMutableTagCollection. If the CMTag already exists in the tag collection, the tag is not added again. If the tag doesn't exist in the tag collection, the tag collection is updated to contain the tag. Note that there is no ordering for tags within a tag collection.
        Parameters:
        tagCollection - CMMutableTagCollectionRef to which to add a tag.
        tagToAdd - A CMTag to add to the tag collection.
        Returns:
        OSStatus indicating if the operation succeeded. Returns noErr if the tag was already in the collection. API-Since: 17.0
      • CMTagCollectionRemoveTag

        public static int CMTagCollectionRemoveTag​(@NotNull
                                                   @NotNull CMMutableTagCollectionRef tagCollection,
                                                   CMTag tagToRemove)
        [@function] CMTagCollectionRemoveTag Removes one tag from a mutable tag collection. This routine removes a CMTag if present from a CMMutableTagCollection. If the CMTag exists in the tag collection, the tag collection is updated to no longer contain the tag. If the tag doesn't exist in the tag collection, the tag collection is left unchanged. The OSStatus will return kCMTagCollectionError_TagNotFound if the tag does not exist in the collection or if the tag collection is empty.
        Parameters:
        tagCollection - CMMutableTagCollectionRef from which to remove a tag.
        tagToRemove - A CMTag to match to the tag collection.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionRemoveAllTags

        public static int CMTagCollectionRemoveAllTags​(@NotNull
                                                       @NotNull CMMutableTagCollectionRef tagCollection)
        [@function] CMTagCollectionRemoveAllTags Removes all tags from a mutable tag collection. This routine removes all CMTags from a CMMutableTagCollection producing an empty collection.
        Parameters:
        tagCollection - CMMutableTagCollectionRef from which to remove all tags.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionRemoveAllTagsOfCategory

        public static int CMTagCollectionRemoveAllTagsOfCategory​(@NotNull
                                                                 @NotNull CMMutableTagCollectionRef tagCollection,
                                                                 int category)
        [@function] CMTagCollectionRemoveAllTagsOfCategory Removes all tags having a specified category from a mutable tag collection. This routine removes all CMTags having a specified CMTagCategory from a CMMutableTagCollection perhaps producing an empty collection.
        Parameters:
        tagCollection - CMMutableTagCollectionRef from which to remove all tags.
        category - CMTagCategory to match.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionAddTagsFromCollection

        public static int CMTagCollectionAddTagsFromCollection​(@NotNull
                                                               @NotNull CMMutableTagCollectionRef tagCollection,
                                                               @NotNull
                                                               @NotNull CMTagCollectionRef collectionWithTagsToAdd)
        [@function] CMTagCollectionAddTagsFromCollection Add all tags from one tag collection to a mutable tag collection. Tags already existing in tagCollection will not be added.
        Parameters:
        tagCollection - CMMutableTagCollectionRef to which to add tags.
        collectionWithTagsToAdd - CMTagCollectionRef from which to copy all tags.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionAddTagsFromArray

        public static int CMTagCollectionAddTagsFromArray​(@NotNull
                                                          @NotNull CMMutableTagCollectionRef tagCollection,
                                                          @NotNull
                                                          @NotNull CMTag tags,
                                                          long tagCount)
        [@function] CMTagCollectionAddTagsFromArray Adds all tags specified in a C array to a mutable tag collection. Tags already existing in tagCollection will not be added.
        Parameters:
        tagCollection - CMMutableTagCollectionRef to which to add tags.
        tags - The address of a buffer of CMTags.
        tagCount - CMItemCount of the number of tags in 'tags' array.
        Returns:
        OSStatus indicating if the operation succeeded. API-Since: 17.0
      • CMTagCollectionCopyAsDictionary

        @Nullable
        public static @Nullable CFDictionaryRef CMTagCollectionCopyAsDictionary​(@NotNull
                                                                                @NotNull CMTagCollectionRef tagCollection,
                                                                                @Nullable
                                                                                @Nullable CFAllocatorRef allocator)
        [@function] CMTagCollectionCopyAsDictionary Returns a CFDictionary representation of a CMTagCollection. This is useful when putting CMTagCollections in CF container types.
        Parameters:
        tagCollection - CMTagCollection to serialize as a CFDictionary.
        allocator - CFAllocator with which to create a dictionary. Pass kCFAllocatorDefault to use the default allocator.
        Returns:
        A CFDictionaryRef holding the serialized contents of the CMTagCollection. The client is responsible for releasing the returned CFDictionary. API-Since: 17.0
      • CMTagCollectionCreateFromDictionary

        public static int CMTagCollectionCreateFromDictionary​(@NotNull
                                                              @NotNull CFDictionaryRef dict,
                                                              @Nullable
                                                              @Nullable CFAllocatorRef allocator,
                                                              @NotNull
                                                              @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> newCollectionOut)
        [@function] CMTagCollectionCreateFromDictionary Reconstitutes a CMTagCollection from a CFDictionary previously created by CMTagCollectionCopyAsDictionary. This is useful when getting CMTagCollection from CF container types. If the CFDictionary does not have the requisite keyed values, newCollectionOut will contain NULL.
        Parameters:
        dict - A CFDictionary from which to create a CMTagCollection.
        allocator - CFAllocator to use in allocation CMTagCollectionRef
        newCollectionOut - Address of an CMTagCollectionRef to return the newly created tag collection. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMTagCollectionCopyAsData

        @Nullable
        public static @Nullable CFDataRef CMTagCollectionCopyAsData​(@NotNull
                                                                    @NotNull CMTagCollectionRef tagCollection,
                                                                    @Nullable
                                                                    @Nullable CFAllocatorRef allocator)
        [@function] CMTagCollectionCopyAsData Returns a CFDataRef version of a CMTagCollection. This is useful when putting CMTagCollections in CF container types.
        Parameters:
        tagCollection - CMTagCollection to serialize as a CFData.
        allocator - CFAllocator with which to create a CFData. Pass kCFAllocatorDefault to use the default allocator.
        Returns:
        A CFDataRef holding the serialized contents of the CMTagCollection. The client is responsible for releasing the returned CFData. API-Since: 17.0
      • CMTagCollectionCreateFromData

        public static int CMTagCollectionCreateFromData​(@NotNull
                                                        @NotNull CFDataRef data,
                                                        @Nullable
                                                        @Nullable CFAllocatorRef allocator,
                                                        @NotNull
                                                        @NotNull org.moe.natj.general.ptr.Ptr<CMTagCollectionRef> newCollectionOut)
        [@function] CMTagCollectionCreateFromData Reconstitutes a CMTagCollection from a CFData previously created by CMTagCollectionCopyAsData. This is useful when getting CMTagCollection from CF container types. If the CFData does not have the requisite keyed values, newCollectionOut will contain NULL.
        Parameters:
        data - A CFData from which to create a CMTagCollection.
        allocator - CFAllocator to use in allocation CMTagCollectionRef. Pass kCFAllocatorDefault to use the default allocator.
        newCollectionOut - Address of an CMTagCollectionRef to return the newly created tag collection. The client is responsible for releasing the returned CMTagCollection.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMTaggedBufferGroupGetTypeID

        public static long CMTaggedBufferGroupGetTypeID()
        API-Since: 17.0
      • CMTaggedBufferGroupCreate

        public static int CMTaggedBufferGroupCreate​(@Nullable
                                                    @Nullable CFAllocatorRef allocator,
                                                    @NotNull
                                                    @NotNull CFArrayRef tagCollections,
                                                    @NotNull
                                                    @NotNull CFArrayRef buffers,
                                                    @NotNull
                                                    @NotNull org.moe.natj.general.ptr.Ptr<CMTaggedBufferGroupRef> groupOut)
        [@function] CMTaggedBufferGroupCreate Creates a new tagged buffer group.
        Parameters:
        allocator - The CFAllocator to use for allocating this buffer group. May be NULL.
        tagCollections - A CFArray of CMTagCollections for the buffers.
        buffers - A CFArray of buffers, each of type CMSampleBuffer or CVPixelBuffer. The group will retain these sample buffers and pixel buffers. The number of tagCollections must match the number of buffers.
        groupOut - The newly created group will be placed here. The caller has a responsibility to call CFRelease on it.
        Returns:
        Returns noErr on success. API-Since: 17.0
      • CMTaggedBufferGroupCreateCombined

        public static int CMTaggedBufferGroupCreateCombined​(@Nullable
                                                            @Nullable CFAllocatorRef allocator,
                                                            @NotNull
                                                            @NotNull CFArrayRef taggedBufferGroups,
                                                            @NotNull
                                                            @NotNull org.moe.natj.general.ptr.Ptr<CMTaggedBufferGroupRef> groupOut)
        [@function] CMTaggedBufferGroupCreateCombined Creates a new tagged buffer group by combining all the tagged buffer groups in an array.
        Parameters:
        allocator - The CFAllocator to use for allocating this buffer group. May be NULL.
        taggedBufferGroups - A CFArray of CMTaggedBufferGroups.
        groupOut - The newly created group will be placed here. The caller has a responsibility to call CFRelease on it.
        Returns:
        Returns noErr on success. API-Since: 17.0
      • CMTaggedBufferGroupGetCount

        public static long CMTaggedBufferGroupGetCount​(@NotNull
                                                       @NotNull CMTaggedBufferGroupRef group)
        [@function] CMTaggedBufferGroupGetCount Returns the number of buffers in a CMTaggedBufferGroup.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the count from.
        Returns:
        Returns the number of buffers, or 0 on failure or if the group is empty. API-Since: 17.0
      • CMTaggedBufferGroupGetTagCollectionAtIndex

        @Nullable
        public static @Nullable CMTagCollectionRef CMTaggedBufferGroupGetTagCollectionAtIndex​(@NotNull
                                                                                              @NotNull CMTaggedBufferGroupRef group,
                                                                                              long index)
        [@function] CMTaggedBufferGroupGetTagCollectionAtIndex Returns a CMTagCollection from a CMTaggedBufferGroup by sequential indexing.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the tag collection from.
        index - An index from 0 to count-1.
        Returns:
        Returns the tag collection, or NULL on failure. API-Since: 17.0
      • CMTaggedBufferGroupGetCVPixelBufferAtIndex

        @Nullable
        public static @Nullable CVBufferRef CMTaggedBufferGroupGetCVPixelBufferAtIndex​(@NotNull
                                                                                       @NotNull CMTaggedBufferGroupRef group,
                                                                                       long index)
        [@function] CMTaggedBufferGroupGetCVPixelBufferAtIndex Returns a CVPixelBuffer from a CMTaggedBufferGroup by sequential indexing.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CVPixelBuffer from.
        index - An index from 0 to count-1.
        Returns:
        Returns the CVPixelBuffer, or NULL on failure (including if the buffer at this index is not a CVPixelBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetCVPixelBufferForTag

        @Nullable
        public static @Nullable CVBufferRef CMTaggedBufferGroupGetCVPixelBufferForTag​(@NotNull
                                                                                      @NotNull CMTaggedBufferGroupRef group,
                                                                                      CMTag tag,
                                                                                      @Nullable
                                                                                      @Nullable org.moe.natj.general.ptr.NIntPtr indexOut)
        [@function] CMTaggedBufferGroupGetCVPixelBufferForTag Returns a CVPixelBuffer from a CMTaggedBufferGroup by looking for a unique match for the provided tag.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CVPixelBuffer from.
        tag - The tag to look up. If more than one buffer's tag collection includes this tag, the lookup will fail.
        indexOut - On success, index of the returned CVPixelBuffer. May be NULL.
        Returns:
        Returns the CVPixelBuffer, or NULL on failure (including if the buffer at this index is not a CVPixelBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetCVPixelBufferForTagCollection

        @Nullable
        public static @Nullable CVBufferRef CMTaggedBufferGroupGetCVPixelBufferForTagCollection​(@NotNull
                                                                                                @NotNull CMTaggedBufferGroupRef group,
                                                                                                @NotNull
                                                                                                @NotNull CMTagCollectionRef tagCollection,
                                                                                                @Nullable
                                                                                                @Nullable org.moe.natj.general.ptr.NIntPtr indexOut)
        [@function] CMTaggedBufferGroupGetCVPixelBufferForTagCollection Returns a CVPixelBuffer from a CMTaggedBufferGroup by looking for a unique match for the provided tag collection.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CVPixelBuffer from.
        tagCollection - The tag collection to look up. If more than one buffer's tag collection includes this tag collection, the lookup will fail.
        indexOut - On success, index of the returned CVPixelBuffer. May be NULL.
        Returns:
        Returns the CVPixelBuffer, or NULL on failure (including if the buffer at this index is not a CVPixelBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetCMSampleBufferAtIndex

        @Nullable
        public static @Nullable CMSampleBufferRef CMTaggedBufferGroupGetCMSampleBufferAtIndex​(@NotNull
                                                                                              @NotNull CMTaggedBufferGroupRef group,
                                                                                              long index)
        [@function] CMTaggedBufferGroupGetCMSampleBufferAtIndex Returns a CMSampleBuffer from a CMTaggedBufferGroup by sequential indexing.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CMSampleBuffer from.
        index - An index from 0 to count-1.
        Returns:
        Returns the CMSampleBuffer, or NULL on failure (including if the buffer at this index is not a CMSampleBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetCMSampleBufferForTag

        @Nullable
        public static @Nullable CMSampleBufferRef CMTaggedBufferGroupGetCMSampleBufferForTag​(@NotNull
                                                                                             @NotNull CMTaggedBufferGroupRef group,
                                                                                             CMTag tag,
                                                                                             @Nullable
                                                                                             @Nullable org.moe.natj.general.ptr.NIntPtr indexOut)
        [@function] CMTaggedBufferGroupGetCMSampleBufferForTag Returns a CMSampleBuffer from a CMTaggedBufferGroup by looking for a unique match for the provided tag.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CMSampleBuffer from.
        tag - The tag to look up. If more than one buffer's tag collection includes this tag, the lookup will fail.
        indexOut - On success, index of the returned CMSampleBuffer. May be NULL.
        Returns:
        Returns the CMSampleBuffer, or NULL on failure (including if the buffer at this index is not a CMSampleBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetCMSampleBufferForTagCollection

        @Nullable
        public static @Nullable CMSampleBufferRef CMTaggedBufferGroupGetCMSampleBufferForTagCollection​(@NotNull
                                                                                                       @NotNull CMTaggedBufferGroupRef group,
                                                                                                       @NotNull
                                                                                                       @NotNull CMTagCollectionRef tagCollection,
                                                                                                       @Nullable
                                                                                                       @Nullable org.moe.natj.general.ptr.NIntPtr indexOut)
        [@function] CMTaggedBufferGroupGetCMSampleBufferForTagCollection Returns a CMSampleBuffer from a CMTaggedBufferGroup by looking for a unique match for the provided tag collection.
        Parameters:
        group - The CMTaggedBufferGroupRef to retrieve the CMSampleBuffer from.
        tagCollection - The tag collection to look up. If more than one buffer's tag collection includes this tag collection, the lookup will fail.
        indexOut - On success, index of the returned CMSampleBuffer. May be NULL.
        Returns:
        Returns the CMSampleBuffer, or NULL on failure (including if the buffer at this index is not a CMSampleBuffer). API-Since: 17.0
      • CMTaggedBufferGroupGetNumberOfMatchesForTagCollection

        public static long CMTaggedBufferGroupGetNumberOfMatchesForTagCollection​(@NotNull
                                                                                 @NotNull CMTaggedBufferGroupRef group,
                                                                                 @NotNull
                                                                                 @NotNull CMTagCollectionRef tagCollection)
        [@function] CMTaggedBufferGroupGetNumberOfMatchesForTagCollection Returns the number of matches that a tag collection has in a CMTaggedBufferGroup. If the returned count is less than or greater than 1, buffer lookups using this tag collection will fail and return NULL, since the lookups must be unique and unambiguous.
        Parameters:
        group - The CMTaggedBufferGroupRef to examine.
        tagCollection - The tag collection to look up.
        Returns:
        Returns the number of entries in the CMTaggedBufferGroup that match tagCollection. API-Since: 17.0
      • CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroup

        public static int CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroup​(@Nullable
                                                                                         @Nullable CFAllocatorRef allocator,
                                                                                         @NotNull
                                                                                         @NotNull CMTaggedBufferGroupRef taggedBufferGroup,
                                                                                         @NotNull
                                                                                         @NotNull org.moe.natj.general.ptr.Ptr<CMFormatDescriptionRef> formatDescriptionOut)
        [@function] CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroup Creates a format description for a CMTaggedBufferGroup. The returned CMTaggedBufferGroupFormatDescription could be used to create a CMSampleBuffer wrapping the CMTaggedBufferGroup using CMSampleBufferCreateForTaggedBufferGroup. If you are going to call CMSampleBufferCreateForTaggedBufferGroup on a series of matching CMTaggedBufferGroups, it is more efficient to create the CMTaggedBufferGroupFormatDescription once and use it for all of the CMSampleBuffers. The caller owns the returned CMFormatDescription, and must release it when done with it. API-Since: 17.0
        Parameters:
        allocator - CFAllocator to be used when creating the CMFormatDescription. Pass kCFAllocatorDefault to use the default allocator.
        taggedBufferGroup - The tagged buffer group for which we are creating the format description.
        formatDescriptionOut - Returned newly-created tagged buffer group CMFormatDescription
      • CMTaggedBufferGroupFormatDescriptionMatchesTaggedBufferGroup

        public static byte CMTaggedBufferGroupFormatDescriptionMatchesTaggedBufferGroup​(@NotNull
                                                                                        @NotNull CMFormatDescriptionRef desc,
                                                                                        @NotNull
                                                                                        @NotNull CMTaggedBufferGroupRef taggedBufferGroup)
        [@function] CMTaggedBufferGroupFormatDescriptionMatchesTaggedBufferGroup Checks to see if a given format description matches a tagged buffer group. Returns true if the CMTaggedBufferGroupFormatDescription could be used to create a CMSampleBuffer wrapping the CMTaggedBufferGroup using CMSampleBufferCreateForTaggedBufferGroup. API-Since: 17.0
        Parameters:
        desc - The format description to validate.
        taggedBufferGroup - The tagged buffer group to validate against.
      • CMSampleBufferCreateForTaggedBufferGroup

        public static int CMSampleBufferCreateForTaggedBufferGroup​(@Nullable
                                                                   @Nullable CFAllocatorRef allocator,
                                                                   @NotNull
                                                                   @NotNull CMTaggedBufferGroupRef taggedBufferGroup,
                                                                   CMTime sbufPTS,
                                                                   CMTime sbufDuration,
                                                                   @NotNull
                                                                   @NotNull CMFormatDescriptionRef formatDescription,
                                                                   @NotNull
                                                                   @NotNull org.moe.natj.general.ptr.Ptr<CMSampleBufferRef> sBufOut)
        [@function] CMSampleBufferCreateForTaggedBufferGroup Creates a new CMSampleBuffer object with the specified CMTaggedBufferGroup.
        Parameters:
        allocator - CFAllocator with which to create the CMSampleBuffer object. Pass kCFAllocatorDefault to use the default allocator.
        taggedBufferGroup - The CMTaggedBufferGroup to be stored in the sample buffer. The CMSampleBuffer will retain the CMTaggedBufferGroup internally.
        sbufPTS - Media time PTS of the sample buffer.
        sbufDuration - Media time duration of the sample buffer. Can be kCMTimeInvalid if not known or not defined.
        formatDescription - A CMTaggedBufferGroupFormatDescription describing the CMTaggedBufferGroup. You may create this with CMTaggedBufferGroupFormatDescriptionCreateForTaggedBufferGroup. If you are creating a lot of CMSampleBuffers containing matching CMTaggedBufferGroups, it is more efficient to create the CMTaggedBufferGroupFormatDescription once and use it for all of the CMSampleBuffers. You may call CMTaggedBufferGroupFormatDescriptionMatchesTaggedBufferGroup to confirm that a reused CMTaggedBufferGroupFormatDescription matches a new CMTaggedBufferGroup.
        sBufOut - Returned newly created CMSampleBuffer.
        Returns:
        OSStatus with error or noErr if successful. API-Since: 17.0
      • CMSampleBufferGetTaggedBufferGroup

        @Nullable
        public static @Nullable CMTaggedBufferGroupRef CMSampleBufferGetTaggedBufferGroup​(@NotNull
                                                                                          @NotNull CMSampleBufferRef sbuf)
        [@function] CMSampleBufferGetTaggedBufferGroup Returns a CMSampleBuffer's TaggedBufferGroup of media data. The caller does not own the returned CMTaggedBufferGroup, and must retain it explicitly if the caller needs to maintain a reference to it.
        Parameters:
        sbuf - CMSampleBuffer being interrogated.
        Returns:
        CMTaggedBufferGroup of media data. The result will be NULL if the CMSampleBuffer does not contain a CMTaggedBufferGroup, or if there is some other error. API-Since: 17.0
      • CMBufferQueueCopyHead

        @Nullable
        public static @Nullable org.moe.natj.general.ptr.ConstVoidPtr CMBufferQueueCopyHead​(@NotNull
                                                                                            @NotNull CMBufferQueueRef queue)
        [@function] CMBufferQueueCopyHead Retrieves & retains the next-to-dequeue buffer from a CMBufferQueue but leaves it in the queue. This follows CF "Copy" semantics -- it retains the returned buffer. Note that with non-FIFO queues it's not guaranteed that the next dequeue will return this particular buffer (if an intervening Enqueue adds a buffer that will dequeue next).
        Returns:
        The retained buffer. Will be NULL if the queue is empty. API-Since: 17.0
      • kCMFormatDescriptionExtension_ContentColorVolume

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_ContentColorVolume()
        CFData; big-endian structure; same as kCVImageBufferContentColorVolumeKey (to be added); matches payload of ITU-T-H.265:11/2019, D.2.40 Content Colour Volume SEI message API-Since: 17.0
      • kCMFormatDescriptionExtension_LogTransferFunction

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_LogTransferFunction()
        [@constant] kCMFormatDescriptionExtension_LogTransferFunction Indicates that the transfer function or gamma of the content is a log format and identifies the specific log curve. The value is a CFString holding fully specified reverse DNS identifier. Content captured in Apple Log will have this key set to kCMFormatDescriptionLogTransferFunction_AppleLog. [@constant] kCMFormatDescriptionLogTransferFunction_AppleLog Indicates the Apple Log identifier. You can download the Apple Log Profile White Paper from the Apple Developer Downloads website. API-Since: 17.2
      • kCMFormatDescriptionLogTransferFunction_AppleLog

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionLogTransferFunction_AppleLog()
        same as kCVImageBufferLogTransferFunction_AppleLog API-Since: 17.2
      • kCMFormatDescriptionExtension_HeroEye

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HeroEye()
        CFString, one of API-Since: 17.0
      • kCMFormatDescriptionHeroEye_Left

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionHeroEye_Left()
        API-Since: 17.0
      • kCMFormatDescriptionHeroEye_Right

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionHeroEye_Right()
        API-Since: 17.0
      • kCMFormatDescriptionExtension_StereoCameraBaseline

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_StereoCameraBaseline()
        CFNumber(uint32) as micrometers API-Since: 17.0
      • kCMFormatDescriptionExtension_HorizontalDisparityAdjustment

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HorizontalDisparityAdjustment()
        CFNumber(int32) from -10000 to 10000 for the uniform range [-1.0...1.0] API-Since: 17.0
      • kCMFormatDescriptionExtension_HasLeftStereoEyeView

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HasLeftStereoEyeView()
        CFBoolean API-Since: 17.0
      • kCMFormatDescriptionExtension_HasRightStereoEyeView

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HasRightStereoEyeView()
        CFBoolean API-Since: 17.0
      • kCMFormatDescriptionExtension_HasAdditionalViews

        @NotNull
        public static @NotNull CFStringRef kCMFormatDescriptionExtension_HasAdditionalViews()
        CFBoolean API-Since: 17.0
      • kCMTagInvalid

        public static CMTag kCMTagInvalid()
        [@constant] kCMTagInvalid CMTag with an unspecified or "null" value. API-Since: 17.0
      • kCMTagMediaTypeVideo

        public static CMTag kCMTagMediaTypeVideo()
        [@constant] kCMTagMediaTypeVideo A CMTag of category kCMTagCategory_MediaType and the value kCMMediaType_Video (OSType). API-Since: 17.0
      • kCMTagMediaSubTypeMebx

        public static CMTag kCMTagMediaSubTypeMebx()
        [@constant] kCMTagMediaSubTypeMebx A CMTag of category kCMTagCategory_MediaType and the value kCMMetadataFormatType_Boxed (OSType). API-Since: 17.0
      • kCMTagMediaTypeAudio

        public static CMTag kCMTagMediaTypeAudio()
        [@constant] kCMTagMediaTypeAudio A CMTag of category kCMTagCategory_MediaType and the value kCMMediaType_Audio (OSType). API-Since: 17.0
      • kCMTagMediaTypeMetadata

        public static CMTag kCMTagMediaTypeMetadata()
        [@constant] kCMTagMediaTypeMetadata A CMTag of category kCMTagCategory_MediaType and the value kCMMediaType_Metadata (OSType). API-Since: 17.0
      • kCMTagStereoLeftEye

        public static CMTag kCMTagStereoLeftEye()
        [@constant] kCMTagStereoLeftEye A CMTag of category kCMTagCategory_StereoView and the value kCMTagStereoViewComponent_LeftEye (Flags). API-Since: 17.0
      • kCMTagStereoRightEye

        public static CMTag kCMTagStereoRightEye()
        [@constant] kCMTagStereoRightEye A CMTag of category kCMTagCategory_StereoView and the value kCMTagStereoViewComponent_RightEye (Flags). API-Since: 17.0
      • kCMTagStereoLeftAndRightEye

        public static CMTag kCMTagStereoLeftAndRightEye()
        [@constant] kCMTagStereoLeftAndRightEye A CMTag of category kCMTagCategory_StereoView and the value of the bitwise OR of kCMTagStereoViewComponent_LeftEye and kCMTagStereoViewComponent_RightEye (Flags). API-Since: 17.0
      • kCMTagStereoNone

        public static CMTag kCMTagStereoNone()
        [@constant] kCMTagStereoNone A CMTag of category kCMTagCategory_StereoView and the value of kCMTagStereoViewComponent_None. (Flags) API-Since: 17.0
      • kCMTagStereoInterpretationOrderReversed

        public static CMTag kCMTagStereoInterpretationOrderReversed()
        [@constant] kCMTagStereoInterpretationOrderReversed A CMTag of category kCMTagCategory_StereoViewInterpretation and the value of kCMStereoViewInterpretation_StereoOrderReversed (Flags). API-Since: 17.0
      • kCMTagProjectionTypeRectangular

        public static CMTag kCMTagProjectionTypeRectangular()
        [@constant] kCMTagProjectionTypeRectangular A CMTag of category kCMTagCategory_ProjectionType and the value kCMTagProjectionType_Rectangular (OSType). API-Since: 17.0
      • kCMTagProjectionTypeEquirectangular

        public static CMTag kCMTagProjectionTypeEquirectangular()
        [@constant] kCMTagProjectionTypeEquirectangular A CMTag of category kCMTagCategory_ProjectionType and the value kCMTagProjectionType_Equirectangular (OSType). API-Since: 17.0
      • kCMTagProjectionTypeFisheye

        public static CMTag kCMTagProjectionTypeFisheye()
        [@constant] kCMTagProjectionTypeFisheye A CMTag of category kCMTagCategory_ProjectionType and the value kCMTagProjectionType_Fisheye (OSType). API-Since: 17.0
      • kCMTagPackingTypeNone

        public static CMTag kCMTagPackingTypeNone()
        [@constant] kCMTagPackingTypeNone A CMTag of category kCMTagCategory_PackingType and the value kCMTagPackingType_None (OStype). API-Since: 17.0
      • kCMTagPackingTypeSideBySide

        public static CMTag kCMTagPackingTypeSideBySide()
        [@constant] kCMTagPackingTypeSideBySide A CMTag of category kCMTagCategory_PackingType and the value kCMTagPackingType_SideBySide (OStype). API-Since: 17.0
      • kCMTagPackingTypeOverUnder

        public static CMTag kCMTagPackingTypeOverUnder()
        [@constant] kCMTagPackingTypeOverUnder A CMTag of category kCMTagCategory_PackingType and the value kCMTagPackingType_OverUnder (OStype). API-Since: 17.0
      • kCMTagValueKey

        @NotNull
        public static @NotNull CFStringRef kCMTagValueKey()
        [@constant] kCMTagValueKey CFDictionary key for value field of a CMTag. API-Since: 17.0
      • kCMTagCategoryKey

        @NotNull
        public static @NotNull CFStringRef kCMTagCategoryKey()
        [@constant] kCMTagCategoryKey CFDictionary key for category field of a CMTag. API-Since: 17.0
      • kCMTagDataTypeKey

        @NotNull
        public static @NotNull CFStringRef kCMTagDataTypeKey()
        [@constant] kCMTagDataTypeKey CFDictionary key for dataType field of a CMTag. API-Since: 17.0
      • kCMTagCollectionTagsArrayKey

        @NotNull
        public static @NotNull CFStringRef kCMTagCollectionTagsArrayKey()
        [@constant] kCMTagCollectionTagsArrayKey CFDictionary key for a CFArray of serialized CMTag dictionaries of a CMTagCollection as used with CMTagCollectionCopyAsDictionary API-Since: 17.0