Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы CoreMedia ссылка CMSampleBuffer

Опции
Развертывание Target:

На этой странице
Язык:

Ссылка CMSampleBuffer

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Swift

import CoreMedia

Objective C

@import CoreMedia;

Этот документ описывает API, который Вы используете, чтобы создать и управлять CMSampleBuffer непрозрачный тип.

CMSampleBuffers Базовые объекты Основы, содержащие нуль или более сжатый (или несжатый) выборки определенного типа среды (аудио, видео, мультиплексированное, и т.д.), которые используются для перемещения демонстрационных данных носителей через систему носителей. A CMSampleBuffer может содержать:

  • A CMBlockBuffer из одной или более выборок носителей, или

  • A CVImageBuffer, ссылка на описание формата для потока CMSampleBuffers, размер и информация синхронизации для каждой из содержавших выборок носителей, и и присоединения буферного уровня и демонстрационного уровня.

Демонстрационный буфер может содержать и присоединения демонстрационного уровня и буферного уровня. Присоединения демонстрационного уровня связаны с каждой отдельной выборкой (кадр) в буфере и включают информацию, такую как зависимости от видеокадра и метки времени. Можно считать и записать присоединения демонстрационного уровня с помощью CMSampleBufferGetSampleAttachmentsArray функция. Присоединения буферного уровня предоставляют информацию о буфере в целом, таком как скорость воспроизведения и действия, которые будут выполняться после потребления буфера. Можно читать и присоединения уровня буфера записи с помощью APIs, описанного в Ссылке CMAttachment и ключах, перечисленных под Демонстрационными Буферными Присоединяемыми Ключами.

Это возможно для a CMSampleBuffer для описания выборок, это еще не содержит. Например, некоторые мультимедийные службы могут иметь доступ к объему выборки, информации синхронизации и данным о формате, прежде чем будут считаны данные. Такие службы могут создать CMSampleBuffers с той информацией и вставляют их в очереди рано и присоединение (или заливка) CMBlockBuffers из данных носителей позже, когда данные становятся готовыми. С этой целью, CMSampleBuffers имейте понятие готовности данных, которая может быть протестирована, установите, вынужденный стать готовыми “теперь" и т.д. Это также возможно для a CMSampleBuffer содержать только специальное присоединение буферного уровня, описывающее событие мультимедийного потока (например, «разрыв: истощите и сбросьте декодер прежде, чем обработать следующее CMSampleBuffer”). Такое специальное присоединение может также быть присоединено регулярный CMSampleBuffers (т.е. которые содержат демонстрационные данные носителей), и если так, событие, которое они описывают, определяется для появления после выборок в этом CMSampleBuffer.

Функции

  • Создает a CMSampleBuffer содержа аудио для данного packetDescription вместо калибровки и информации синхронизации.

    Объявление

    Swift

    func CMAudioSampleBufferCreateWithPacketDescriptions(_ allocator: CFAllocator!, _ dataBuffer: CMBlockBuffer!, _ dataReady: Boolean, _ makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback, _ makeDataReadyRefcon: UnsafeMutablePointer<Void>, _ formatDescription: CMFormatDescription!, _ numSamples: CMItemCount, _ sbufPTS: CMTime, _ packetDescriptions: UnsafePointer<AudioStreamPacketDescription>, _ sBufOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMAudioSampleBufferCreateWithPacketDescriptions ( CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMTime sbufPTS, const AudioStreamPacketDescription *packetDescriptions, CMSampleBufferRef *sBufOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    dataBuffer

    CMBlockBuffer для данных носителей. Это может быть NULL, a CMBlockBuffer без резервной памяти, a CMBlockBuffer с резервной памятью, но никакими данными все же или a CMBlockBuffer это уже содержит данные носителей. Если CMBlockBuffer содержит данные носителей, dataReady должен быть true.

    dataReady

    Указывает действительно ли BlockBuffer уже содержит данные носителей.

    makeDataReadyCallback

    Обратный вызов это CMSampleBufferMakeDataReady должен вызвать для создания данных готовыми. Может быть NULL.

    makeDataReadyRefcon

    Ссылочная константа,CMSampleBufferMakeDataReady, то, что эта функция должна передать обратному вызову.

    formatDescription

    Описание формата данных носителей. Не может быть NULL.

    numSamples

    Число выборок в CMSampleBuffer. Не должен быть 0.

    sbufPTS

    Метка времени первой выборки в буфере. Должно быть числовое CMTime.

    packetDescriptions

    Массив packetDescriptions, один для каждого из numSamples. Может быть NULL если выборки, как известно, имеют постоянное число кадров на пакет и постоянный размер.

    sBufOut

    На выводе, точках к недавно создаваемому CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Обеспечивает оптимизацию CMSampleBufferCreate(), когда вызывающая сторона уже имеет packetDescriptions для аудиоданных. Эта подпрограмма будет использовать packetDescriptions для создания калибровки и синхронизации массивов, требуемых сделать демонстрационный буфер при необходимости.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Вызывает функцию для каждой отдельной выборки в демонстрационном буфере.

    Объявление

    Swift

    func CMSampleBufferCallForEachSample(_ sbuf: CMSampleBuffer!, _ refcon: CFunctionPointer<((CMSampleBuffer!, CMItemCount, UnsafeMutablePointer<Void>) -> OSStatus)>, _ refcon: UnsafeMutablePointer<Void>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCallForEachSample ( CMSampleBufferRef sbuf, OSStatus (*callback)( CMSampleBufferRef sampleBuffer, CMItemCount index, void *refcon), void *refcon );

    Параметры

    sbuf

    CMSampleBuffer это может содержать многократные выборки.

    refcon

    Функция, которую вызовут для каждой отдельной выборки.

    refcon

    Refcon, который будет передан функции обратного вызова.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Система создаст временные демонстрационные буферы для отдельных выборок. Каждый демонстрационный буфер будет относиться к демонстрационным данным и содержащий его синхронизацию, размер и присоединения. Функция обратного вызова может сохранить эти демонстрационные буферы при желании. Если функция обратного вызова возвратит ошибку, то итерация сразу остановится и функционировать возвраты ошибка, полученная от обратного вызова. Функция возвратится kCMSampleBufferError_CannotSubdivide ошибка, при отсутствии объемов выборки в предоставленном демонстрационном буфере. Это произойдет, например, если выборки в буфере будут состоящими из нескольких несмежных участков (например, нечередующееся аудио, где значения канала для единственной выборки рассеиваются через буфер).

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает a CMSampleBuffer содержа диапазон выборок от существующего CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferCopySampleBufferForRange(_ allocator: CFAllocator!, _ sbuf: CMSampleBuffer!, _ sampleRange: CFRange, _ sBufOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCopySampleBufferForRange ( CFAllocatorRef allocator, CMSampleBufferRef sbuf, CFRange sampleRange, CMSampleBufferRef *sBufOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    sbuf

    CMSampleBuffer содержа исходные выборки.

    sampleRange

    Диапазон выборок для копирования с sbuf, где демонстрационный 0 является первой выборкой в sbuf

    sBufOut

    На выводе, точках к недавно создаваемому CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Выборки, содержащие нечередующееся аудио, в настоящее время не поддерживаются.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferCreate(_ allocator: CFAllocator!, _ dataBuffer: CMBlockBuffer!, _ dataReady: Boolean, _ makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback, _ makeDataReadyRefcon: UnsafeMutablePointer<Void>, _ formatDescription: CMFormatDescription!, _ numSamples: CMItemCount, _ numSampleTimingEntries: CMItemCount, _ sampleTimingArray: UnsafePointer<CMSampleTimingInfo>, _ numSampleSizeEntries: CMItemCount, _ sampleSizeArray: UnsafePointer<Int>, _ sBufOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCreate ( CFAllocatorRef allocator, CMBlockBufferRef dataBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMFormatDescriptionRef formatDescription, CMItemCount numSamples, CMItemCount numSampleTimingEntries, const CMSampleTimingInfo *sampleTimingArray, CMItemCount numSampleSizeEntries, const size_t *sampleSizeArray, CMSampleBufferRef *sBufOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    dataBuffer

    CMBlockBuffer для данных носителей. Это может быть NULL, a CMBlockBuffer без резервной памяти, a CMBlockBuffer с резервной памятью, но никакими данными все же или a CMBlockBuffer это уже содержит данные носителей. Если CMBlockBuffer содержит данные носителей, dataReady должен быть true. Булевская переменная dataReady должен также быть true если dataBuffer Null и numSamples 0.

    dataReady

    Указывает, содержит ли BlockBuffer уже данные носителей

    makeDataReadyCallback

    Обратный вызов это CMSampleBufferMakeDataReady должен вызвать для создания данных готовыми. Может быть NULL.

    makeDataReadyRefcon

    Refcon CMSampleBufferMakeDataReady должен передать обратному вызову.

    formatDescription

    Описание формата данных носителей. Может быть NULL.

    numSamples

    Число выборок в CMSampleBuffer. Может быть нуль.

    numSampleTimingEntries

    Число записей в sampleTimingArray. Должен быть 0, 1, или numSamples.

    sampleTimingArray

    Массив CMSampleTimingInfo структуры, одна структура на выборку. Если все выборки имеют ту же продолжительность и находятся в порядке представления, можно передать сингл CMSampleTimingInfo структура с набором продолжительности к продолжительности одной выборки, presentationTimeStamp набор ко времени представления численно самой ранней выборки, и decodeTimeStamp набор к kCMTimeInvalid. Поведение не определено если выборки в a CMSampleBuffer (или даже в многократных буферах в том же потоке), имеют то же presentationTimeStamp. Может быть NULL.

    numSampleSizeEntries

    Число записей в sampleSizeArray. Должен быть 0, 1, или numSamples.

    sampleSizeArray

    Массив записей размера, одной записи на выборку. Если все выборки имеют тот же размер, можно передать единственную запись размера, содержащую размер одной выборки. Может быть NULL. Должен быть NULL, если выборки являются состоящими из нескольких несмежных участков в буфере (например, нечередующееся аудио, где значения канала для единственной выборки рассеиваются через буфер).

    sBufOut

    На выводе, точках к недавно создаваемому CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Если тот же самый элемент применяется ко всем выборкам, параметры массива (sampleSizeArray, sampleTimingArray) должны иметь только один элемент. Все параметры копируются. По возврату вызывающая сторона может выпустить их, освободить их или снова использовать их. По возврату вызывающей стороне принадлежит возвращенный CMSampleBuffer, и должен выпустить его, когда сделано с ним.

    Пример использования для видеокадров «в порядке дисплея»:

    • буфер данных: содержит 7 Движений кадры JPEG

    • dataFormatDescription: описывает Движение видео JPEG

    • dataFormatDescription: описывает Движение видео JPEG

    • numSamples: 7

    • numSampleTimingEntries: 1

    • sampleTimingArray: одна запись = {продолжительность = 1001/30000, presentationTimeStamp = 0/30000, decodeTimeStamp = недопустимый}

    • numSampleSizeEntries: 7

    • sampleSizeArray: {105840, 104456, 103464, 116460, 100412, 94808, 120400}

    Пример использования для видеокадров в порядка дисплея:

    • буфер данных: содержит 6 кадров H.264 в порядке декодирования (P2, B0, B1, I5, B3, B4)

    • dataFormatDescription: описывает видео H.264

    • numSamples: 6

    • numSampleTimingEntries: 6

    • sampleTimingArray: 6 записей = {

      • {продолжительность = 1001/30000, presentationTimeStamp = 12012/30000, decodeTimeStamp = 10010/30000},

      • {продолжительность = 1001/30000, presentationTimeStamp = 10010/30000, decodeTimeStamp = 11011/30000},

      • {продолжительность = 1001/30000, presentationTimeStamp = 11011/30000, decodeTimeStamp = 12012/30000},

      • {продолжительность = 1001/30000, presentationTimeStamp = 15015/30000, decodeTimeStamp = 13013/30000},

      • {продолжительность = 1001/30000, presentationTimeStamp = 13013/30000, decodeTimeStamp = 14014/30000},

      • {продолжительность = 1001/30000, presentationTimeStamp = 13013/30000, decodeTimeStamp = 14014/30000}}

    • numSampleSizeEntries: 6

    • sampleSizeArray: {10580, 1234, 1364, 75660, 1012, 988}

    Пример использования для сжатого аудио:

    • буфер данных: содержит 24, сжал пакеты AAC

    • dataFormatDescription: описывает аудио AAC на 44.1 кГц

    • numSamples: 24

    • numSampleTimingEntries: 1

    • sampleTimingArray: одна запись = {{продолжительность = 1024/44100, presentationTimeStamp = 0/44100, decodeTimeStamp = недопустимый}}

    • 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}

    Пример использования для несжатого чередованного аудио:

    • буфер данных: содержит 24 000 несжатых чередованных кадров стерео, каждый содержащий 2 Float32s =

      • {{L, R},

      • {L, R},

      • {L, R}...}

    • dataFormatDescription: описывает чередованное аудио Float32 на 48 кГц

    • numSamples: 24000

    • numSampleTimingEntries: 1

    • sampleTimingArray: одна запись = {{продолжительность = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = недопустимый}}

    • numSampleSizeEntries: 1

    • sampleSizeArray: {8}

    Пример использования для несжатого нечередующегося аудио:

    • буфер данных: содержит 24 000 несжатых нечередующихся кадров стерео, каждый содержащий 2 Float32s (состоящих из нескольких несмежных участков) =

      • {{L, L, L, L, L...},

      • {R, R, R, R, R...}}

    • dataFormatDescription: описывает Float32 на 48 кГц нечередующееся аудио

    • numSamples: 24000

    • numSampleTimingEntries: 1

    • sampleTimingArray: одна запись = {продолжительность = 1/48000, presentationTimeStamp = 0/48000, decodeTimeStamp = недопустимый}

    • numSampleSizeEntries: 0

    • sampleSizeArray: NULL (потому что выборки не непрерывны),

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает копию a CMSampleBuffer

    Объявление

    Swift

    func CMSampleBufferCreateCopy(_ allocator: CFAllocator!, _ sbuf: CMSampleBuffer!, _ sbufCopyOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCreateCopy ( CFAllocatorRef allocator, CMSampleBufferRef sbuf, CMSampleBufferRef *sbufCopyOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    sbuf

    CMSampleBuffer быть скопированным.

    sbufCopyOut

    На выводе, точках к недавно создаваемой копии CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Копия мелка: скалярные свойства (размеры и синхронизирующий) копируются непосредственно, буфер данных и форматируют описание, сохраняются, и присоединения, которые могут быть распространены, сохраняются словарем копии. Если sbuf's данные не готовы, копия будет установлена отследить свою готовность.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает копию CMSampleBuffer с новой информацией синхронизации.

    Объявление

    Swift

    func CMSampleBufferCreateCopyWithNewTiming(_ allocator: CFAllocator!, _ originalSBuf: CMSampleBuffer!, _ numSampleTimingEntries: CMItemCount, _ sampleTimingArray: UnsafePointer<CMSampleTimingInfo>, _ sBufCopyOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCreateCopyWithNewTiming ( CFAllocatorRef allocator, CMSampleBufferRef originalSBuf, CMItemCount numSampleTimingEntries, const CMSampleTimingInfo *sampleTimingArray, CMSampleBufferRef *sBufCopyOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    originalSBuf

    CMSampleBuffer содержа исходные выборки.

    numSampleTimingEntries

    Число записей в sampleTimingArray. Должен быть 0, 1, или numSamples в исходном sampleBuffer.

    sampleTimingArray

    Массив CMSampleTimingInfo структуры, одна структура на выборку. Если все выборки имеют ту же продолжительность и находятся в порядке представления, можно передать сингл CMSampleTimingInfo структура с набором продолжительности к продолжительности одной выборки, presentationTimeStamp набор ко времени представления численно самой ранней выборки, и decodeTimeStamp набор к kCMTimeInvalid. Поведение не определено если выборки в a CMSampleBuffer (или даже в многократных буферах в том же потоке), имеют тот же presentationTimeStamp. Может быть NULL.

    sBufCopyOut

    На выводе, точках к недавно создаваемой копии CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Это эмулирует CMSampleBufferCreateCopy, но изменяет синхронизацию. Если тот же самый элемент применяется ко всем выборкам, параметры массива (sampleTimingArray) должны иметь только один элемент. Все параметры копируются; по возврату вызывающая сторона может выпустить их, освободить их или снова использовать их. Любой outputPresentationTimestamp это было установлено на исходном Буфере, не будет скопирован, потому что это больше не релевантно. По возврату вызывающей стороне принадлежит возвращенный CMSampleBuffer, и должен выпустить его, когда сделано с ним.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает a CMSampleBuffer это содержит a CVImageBuffer вместо a CMBlockBuffer.

    Объявление

    Swift

    func CMSampleBufferCreateForImageBuffer(_ allocator: CFAllocator!, _ imageBuffer: CVImageBuffer!, _ dataReady: Boolean, _ makeDataReadyCallback: CMSampleBufferMakeDataReadyCallback, _ makeDataReadyRefcon: UnsafeMutablePointer<Void>, _ formatDescription: CMVideoFormatDescription!, _ sampleTiming: UnsafePointer<CMSampleTimingInfo>, _ sBufOut: UnsafeMutablePointer<Unmanaged<CMSampleBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferCreateForImageBuffer ( CFAllocatorRef allocator, CVImageBufferRef imageBuffer, Boolean dataReady, CMSampleBufferMakeDataReadyCallback makeDataReadyCallback, void *makeDataReadyRefcon, CMVideoFormatDescriptionRef formatDescription, const CMSampleTimingInfo *sampleTiming, CMSampleBufferRef *sBufOut );

    Параметры

    allocator

    Средство выделения для использования для выделения CMSampleBuffer объект. Передача kCFAllocatorDefault использовать средство выделения по умолчанию.

    imageBuffer

    CVImageBuffer для данных носителей. Это может быть a CVImageBuffer чье содержание еще не было представлено, или a CVImageBuffer это уже содержит данные носителей (когда dataReady должна быть истина). Может не быть NULL.

    dataReady

    Указывает действительно ли CVImageBuffer уже содержит данные носителей.

    makeDataReadyCallback

    Обратный вызов это CMSampleBufferMakeDataReady должен вызвать для создания данных готовыми. Может быть NULL.

    makeDataReadyRefcon

    Refcon CMSampleBufferMakeDataReady должен передать обратному вызову.

    formatDescription

    Описание формата данных носителей. Посмотрите обсуждение выше для ограничений. Может не быть NULL.

    sampleTiming

    A CMSampleTimingInfo структура, обеспечивающая информацию синхронизации для носителей, представленных CVImageBuffer.

    sBufOut

    На выводе, точках к недавно создаваемому CMSampleBuffer это содержит a CVImageBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Демонстрационные Буферные Коды Результата

    Обсуждение

    В отличие от a CMBlockBuffer который может сослаться на многие выборки, a CVImageBuffer определяется для ссылки только на одну выборку; поэтому эта подпрограмма имеет меньше параметров, чем CMSampleBufferCreate. Демонстрационная информация синхронизации, которая является вектором для CMSampleBufferCreate, состоит только из одного значения для этой подпрограммы. Понятие объема выборки не применяется к CVImageBuffers. Также, CMSampleBufferGetSampleSizeArray возвратится kCMSampleBufferError_BufferHasNoSampleSizes, и CMSampleBufferGetSampleSize возвратится 0. Поскольку CVImageBuffers содержите визуальные данные, предоставленное описание формата является a CMVideoFormatDescription. Описание формата должно быть соответствующим атрибутам и информации о форматировании, присоединенной к CVImageBuffer. Ширина, высота, и codecType должен соответствовать (для CVPixelBuffers типом кодека дают CVPixelBufferGetPixelFormatType(pixelBuffer); для другого CVImageBuffers, codecType должен быть 0). Расширения описания формата должны соответствовать буферные присоединения изображения для всех ключей в списке, возвращенномCMVideoFormatDescriptionGetExtensionKeysCommonWithImageBuffers. если отсутствующий в любом они должны отсутствовать в обоих.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвраты, действительно ли a CMSampleBuffer's данные готовы.

    Объявление

    Swift

    func CMSampleBufferDataIsReady(_ scuff: CMSampleBuffer!) -> Boolean

    Objective C

    Boolean CMSampleBufferDataIsReady ( CMSampleBufferRef sbuf );

    Параметры

    scuff

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Булевская переменная, указывающая, действительно ли CMSampleBuffer's данные готовы. True возвращается для специальных буферов маркера, eventhough у них нет данных. Если существует ошибка, false возвращается.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает AudioBufferList содержа данные от CMSampleBuffer, и a CMBlockBuffer какие ссылки (и управляет временем жизни), данные в этом AudioBufferList. Данные могут или не могут быть скопированы, в зависимости от смежности и 16-байтового выравнивания данных CMSampleBuffer. Буферы, помещенные в AudioBufferList, как гарантируют, будут непрерывны. Буферы в AudioBufferList составят 16 байтов, выровненных если kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment передается в.

    Объявление

    Swift

    func CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer(_ sbuf: CMSampleBuffer!, _ bufferListSizeNeededOut: UnsafeMutablePointer<Int>, _ bufferListOut: UnsafeMutablePointer<AudioBufferList>, _ bufferListSize: Int, _ bbufStructAllocator: CFAllocator!, _ bbufMemoryAllocator: CFAllocator!, _ flags: UInt32, _ blockBufferOut: UnsafeMutablePointer<Unmanaged<CMBlockBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer ( CMSampleBufferRef sbuf, size_t *bufferListSizeNeededOut, AudioBufferList *bufferListOut, size_t bufferListSize, CFAllocatorRef bbufStructAllocator, CFAllocatorRef bbufMemoryAllocator, uint32_t flags, CMBlockBufferRef *blockBufferOut );

    Параметры

    sbuf

    CMSampleBuffer быть полученным доступ.

    bufferListSizeNeededOut

    Получает размер AudioBufferList, требуемого размещать данные. Может быть NULL.

    bufferListOut

    Выделенный вызывающей стороной, измеренной, как указано bufferListSizeNeededOut. Это заполнено в указателями в сохраненный blockBufferOut. Может быть NULL.

    bufferListSize

    Размер bufferListOut выделенный клиентом. Если bufferListOut не NULL и bufferListSize недостаточно, kFigSampleBufferError_ArrayTooSmall возвращается.

    bbufStructAllocator

    Средство выделения для использования при создании CMBlockBuffer структура.

    bbufMemoryAllocator

    Средство выделения для использования для блока памяти, сохраненного CMBlockBuffer.

    flags

    Работа управления флагов.

    blockBufferOut

    Сохраненный CMBlockBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает массив AudioStreamPacketDescriptions поскольку переменные байты на пакет или переменную структурируют на пакетные аудиоданные в предоставленном CMSampleBuffer. Постоянная скорость передачи, постоянное аудио кадров на пакет приводит к возвращаемому значению noErr и никаких описаний пакета. Этот API является определенным для демонстрационных буферов формата аудио и возвратится kCMSampleBufferError_InvalidMediaTypeForOperation если вызвано с буфером неаудиосэмпла.

    Объявление

    Swift

    func CMSampleBufferGetAudioStreamPacketDescriptions(_ sbuf: CMSampleBuffer!, _ packetDescriptionsSize: Int, _ packetDescriptionsOut: UnsafeMutablePointer<AudioStreamPacketDescription>, _ packetDescriptionsSizeNeededOut: UnsafeMutablePointer<Int>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetAudioStreamPacketDescriptions ( CMSampleBufferRef sbuf, size_t packetDescriptionsSize, AudioStreamPacketDescription *packetDescriptionsOut, size_t *packetDescriptionsSizeNeededOut );

    Параметры

    sbuf

    CMSampleBuffer быть полученным доступ.

    packetDescriptionsSize

    Размер packetDescriptionsOut как выделено вызывающей стороной.

    packetDescriptionsOut

    Выделенный вызывающей стороной, получает описания пакета для выборок в CMSampleBuffer. Если не-NULL и packetDescriptionsSize является слишком маленьким, kFigSampleBufferError_ArrayTooSmall возвращается.

    packetDescriptionsSizeNeededOut

    Используемый для запросов для корректного размера, требуемого для packetDescriptionsOut. Может быть NULL.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Получает указатель на (и размер) постоянный массив AudioStreamPacketDescriptions поскольку переменные байты на пакет или переменную структурируют на пакетные аудиоданные в предоставленном CMSampleBuffer. Указатель будет оставаться допустимым настолько же долго как sbuf продолжает быть сохраненным. Постоянная скорость передачи, постоянное аудио кадров на пакет приводит к возвращаемому значению noErr и никакие описания пакета. Этот API является определенным для демонстрационных буферов формата аудио и возвратится kCMSampleBufferError_InvalidMediaTypeForOperation если вызвано с буфером неаудиосэмпла.

    Объявление

    Swift

    func CMSampleBufferGetAudioStreamPacketDescriptionsPtr(_ sbuf: CMSampleBuffer!, _ packetDescriptionsPtrOut: UnsafeMutablePointer<UnsafePointer<AudioStreamPacketDescription>>, _ packetDescriptionsSizeOut: UnsafeMutablePointer<Int>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetAudioStreamPacketDescriptionsPtr ( CMSampleBufferRef sbuf, const AudioStreamPacketDescription **packetDescriptionsPtrOut, size_t *packetDescriptionsSizeOut );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    packetDescriptionsPtrOut

    На выводе, содержит указатель на постоянный массив AudioStreamPacketDescriptions. Может быть NULL.

    packetDescriptionsSizeOut

    Размер в байтах постоянного массива AudioStreamPacketDescriptions. Может быть NULL.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает CMSampleBuffer CMBlockBuffer из данных носителей.

    Объявление

    Swift

    func CMSampleBufferGetDataBuffer(_ sbuf: CMSampleBuffer!) -> CMBlockBuffer!

    Objective C

    CMBlockBufferRef CMSampleBufferGetDataBuffer ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    CMBlockBuffer из данных носителей. Результат будет NULL если CMSampleBuffer не содержит a CMBlockBuffer, если CMSampleBuffer содержит a CVImageBuffer, или если существует некоторая другая ошибка.

    Обсуждение

    Вызывающей стороне не принадлежит возвращенный dataBuffer, и должен сохранить его явно, если вызывающая сторона должна поддержать ссылку на него.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает численно самую раннюю метку времени декодирования всех выборок в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetDecodeTimeStamp(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetDecodeTimeStamp ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Численно самое раннее демонстрационное декодирование устанавливает метку времени в CMSampleBuffer. kCMTimeInvalid если существует ошибка, возвращается.

    Обсуждение

    Возвращенная метка времени декодирования всегда является меткой времени декодирования первой выборки в буфере, так как даже из порядка представления выборки, как ожидают, будут в порядке декодирования в буфере.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает общую продолжительность a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetDuration(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetDuration ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Продолжительность CMSampleBuffer. kCMTimeInvalid если существует ошибка, возвращается.

    Обсуждение

    Если буфер содержит выборок порядка представления, любые разрывы во временной шкале представления не представлены в возвращенной продолжительности. Возвращенная продолжительность является просто суммой всех отдельных демонстрационных продолжительностей.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает описание формата выборок в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetFormatDescription(_ sbuf: CMSampleBuffer!) -> CMFormatDescription!

    Objective C

    CMFormatDescriptionRef CMSampleBufferGetFormatDescription ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Описание формата выборок в CMSampleBuffer. NULL если существует ошибка, возвращается.

    Обсуждение

    По возврату вызывающей стороне не принадлежит возвращенный formatDesc, и должен сохранить его явно, если вызывающая сторона должна поддержать ссылку на него.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает CMSampleBuffer CVImageBuffer из данных носителей.

    Объявление

    Swift

    func CMSampleBufferGetImageBuffer(_ sbuf: CMSampleBuffer!) -> CVImageBuffer!

    Objective C

    CVImageBufferRef CMSampleBufferGetImageBuffer ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    CVImageBuffer из данных носителей. Результат будет NULL если CMSampleBuffer не содержит a CVImageBuffer, если CMSampleBuffer содержит a CMBlockBuffer, или если существует некоторая другая ошибка.

    Обсуждение

    Вызывающая сторона не владеет возвращенным буфером данных и должна сохранить его явно, если вызывающая сторона должна поддержать ссылку на него.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает число выборок носителей в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetNumSamples(_ sbuf: CMSampleBuffer!) -> CMItemCount

    Objective C

    CMItemCount CMSampleBufferGetNumSamples ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Число выборок носителей в CMSampleBuffer. Если существует ошибка, 0 возвращается.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращается вывод декодируют метку времени CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetOutputDecodeTimeStamp(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetOutputDecodeTimeStamp ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Вывод декодирует метку времени CMSampleBuffer. CMInvalidTime если существует ошибка, возвращается.

    Обсуждение

    Для непротиворечивости с CMSampleBufferGetOutputPresentationTimeStamp, это вычисляется как: OutputPresentationTimeStamp + ((DecodeTimeStamp - PresentationTimeStamp) / SpeedMultiplier).

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает выходную продолжительность a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetOutputDuration(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetOutputDuration ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Выходная продолжительность CMSampleBuffer. kCMTimeInvalid если существует ошибка, возвращается.

    Обсуждение

    OutputDuration является продолжительностью минус любая обрезанная продолжительность, все разделенные на SpeedMultiplier: (Продолжительность - TrimDurationAtStart - TrimDurationAtEnd) / SpeedMultiplier.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает выходную метку времени представления CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetOutputPresentationTimeStamp(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetOutputPresentationTimeStamp ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Выходная метка времени представления CMSampleBuffer. kCMTimeInvalid если существует ошибка, возвращается.

    Обсуждение

    Выходная метка времени представления является временем, в которое декодируемый, обрезанный, расширенный и возможно инвертированные выборки должны начать быть представленным. Если CMSampleBufferGetOutputPresentationTimeStamp был вызван для явной установки вывода PTS, CMSampleBufferGetOutputPresentationTimeStamp возвраты это. В противном случае CMSampleBufferGetOutputPresentationTimeStamp вычисляет его результат как (PresentationTimeStamp + TrimDurationAtStart) если kCMSampleBufferAttachmentKey_Reverse kCFBooleanTrue, когда это вычисляет результат как (PresentationTimeStamp + Продолжительность - TrimDurationAtEnd). Они обычно корректны для нерасширенного, несмещенного воспроизведения. Для общего прямого воспроизведения в масштабированном редактировании, OutputPresentationTimeStamp должен быть установлен в: ((PresentationTimeStamp + TrimDurationAtStart - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime. Для общего обратного воспроизведения: ((PresentationTimeStamp + Продолжительность - TrimDurationAtEnd - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Получает массив вывода CMSampleTimingInfo структуры, один для каждой выборки в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetOutputSampleTimingInfoArray(_ sbuf: CMSampleBuffer!, _ timingArrayEntries: CMItemCount, _ timingArrayOut: UnsafeMutablePointer<CMSampleTimingInfo>, _ timingArrayEntriesNeededOut: UnsafeMutablePointer<CMItemCount>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetOutputSampleTimingInfoArray ( CMSampleBufferRef sbuf, CMItemCount timingArrayEntries, CMSampleTimingInfo *timingArrayOut, CMItemCount *timingArrayEntriesNeededOut );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    timingArrayEntries

    Число записей в синхронизации массива.

    timingArrayOut

    На выводе, точках к массиву CMSampleTimingInfo структуры для получения информации синхронизации.

    timingArrayEntriesNeededOut

    Число записей необходимо для результата.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Если только один CMSampleTimingInfo структура возвращается, она применяется ко всем выборкам в буфере. См. документацию CMSampleTimingInfo для подробных данных как сингл CMSampleTimingInfo структура может примениться к многократным выборкам. timingArrayOut должен быть выделен вызывающей стороной, и число выделенных записей должно быть передано в timingArrayEntries. Если timingArrayOut NULL, timingArrayEntriesNeededOut возвратит требуемое число записей. Точно так же, если *timingArrayEntriesNeededOut является слишком маленьким, kCMSampleBufferError_ArrayTooSmallбудет возвращен, и timingArrayEntriesNeededOut возвратит требуемое число записей. В любом случае вызывающая сторона может тогда сделать соответственно измеренный timingArrayOut и вызовите снова. Например, вызывающая сторона могла бы передать адрес a CMSampleTimingInfo структура на штабеле (как timingArrayOut), и 1 как timingArrayEntries. Если все выборки являются поддающимися описанию с синглом CMSampleTimingInfo структура (или существует только одна выборка в CMSampleBuffer), этот вызов успешно выполнится. В противном случае это перестанет работать и возвратит число записей, требуемых в timingArrayEntriesNeededOut. Только в этом случае будет вызывающая сторона фактически должна выделить массив. Если нет никакого timingInfo в этом CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo будет возвращен, и *timingArrayEntriesNeededOut будет установлен в 0.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает численно самую раннюю метку времени представления всех выборок в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetPresentationTimeStamp(_ sbuf: CMSampleBuffer!) -> CMTime

    Objective C

    CMTime CMSampleBufferGetPresentationTimeStamp ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Численно самое раннее демонстрационное представление устанавливает метку времени в CMSampleBuffer. kCMTimeInvalid если существует ошибка, возвращается.

    Обсуждение

    Для выборок «в порядке представления», это - метка времени представления первой выборки. Для выборок порядка представления, это - метка времени представления выборки, которая будет представлена сначала, который является не обязательно первой выборкой в буфере.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает ссылку на a CMSampleBuffer's неизменный массив непостоянных демонстрационных присоединяемых словарей (один словарь на выборку в CMSampleBuffer).

    Объявление

    Swift

    func CMSampleBufferGetSampleAttachmentsArray(_ sbuf: CMSampleBuffer!, _ createIfNecessary: Boolean) -> CFArray!

    Objective C

    CFArrayRef CMSampleBufferGetSampleAttachmentsArray ( CMSampleBufferRef sbuf, Boolean createIfNecessary );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    createIfNecessary

    Указывает, должен ли пустой массив быть создан (если еще нет никаких демонстрационных присоединений).

    Возвращаемое значение

    Ссылка на CMSampleBuffer's неизменный массив непостоянных демонстрационных присоединяемых словарей (один словарь на выборку в CMSampleBuffer). NULL если существует ошибка, возвращается

    Обсуждение

    Присоединения могут тогда быть добавлены/удалены непосредственно вызывающей стороной, с помощью Базовой Основы APIs. По возврату вызывающая сторона не владеет возвращенным массивом присоединяемых словарей и должна сохранить его, если вызывающая сторона должна поддержать ссылку на него. Если еще нет никаких демонстрационных присоединений, и createIfNecessary является истиной, новым CFArray содержа N пустой CFMutableDictionaries возвращается (где N является числом выборок в CMSampleBuffer), так, чтобы присоединения могли быть добавлены непосредственно вызывающей стороной. Если еще нет никаких демонстрационных присоединений, и createIfNecessary ложь, NULL возвращается. Один раз CFArray был создан, последующие вызовы возвратят его, даже если не будет все еще никаких демонстрационных присоединений в массиве.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает размер в байтах указанной выборки в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetSampleSize(_ sbuf: CMSampleBuffer!, _ sampleIndex: CMItemIndex) -> Int

    Objective C

    size_t CMSampleBufferGetSampleSize ( CMSampleBufferRef sbuf, CMItemIndex sampleIndex );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным

    sampleIndex

    Демонстрационный индекс (0 первая выборка в sbuf),

    Возвращаемое значение

    Размер в байтах указанной выборки в CMSampleBuffer. Если демонстрационный индекс не находится в диапазоне 0.. numSamples-1, размер 0 будет возвращен. Если нет никаких объемов выборки в этом CMSampleBuffer, размер 0 будет возвращен. Это будет истиной, например, если выборки в буфере будут состоящими из нескольких несмежных участков (например, нечередующееся аудио, где значения канала для единственной выборки рассеиваются через буфер), или если это CMSampleBuffer содержит a CVImageBuffer.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Получает массив объемов выборки, один для каждой выборки в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetSampleSizeArray(_ sbuf: CMSampleBuffer!, _ sizeArrayEntries: CMItemCount, _ sizeArrayOut: UnsafeMutablePointer<Int>, _ sizeArrayEntriesNeededOut: UnsafeMutablePointer<CMItemCount>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetSampleSizeArray ( CMSampleBufferRef sbuf, CMItemCount sizeArrayEntries, size_t *sizeArrayOut, CMItemCount *sizeArrayEntriesNeededOut );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    sizeArrayEntries

    Число записей в sizeArray.

    sizeArrayOut

    Ссылка на массив size_t значения для получения объемов выборки.

    sizeArrayEntriesNeededOut

    Число записей необходимо для результата.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Если только одна запись размера возвращается, все выборки в буфере имеют этот размер. sizeArrayOut должен быть выделен вызывающей стороной, и число выделенных записей должно быть передано в sizeArrayEntries. Если sizeArrayOut NULL, sizeArrayEntriesNeededOut возвратит требуемое число записей. Точно так же, если sizeArrayEntries является слишком маленьким, kCMSampleBufferError_ArrayTooSmall будет возвращен, и sizeArrayEntriesNeededOut возвратит требуемое число записей. Вызывающая сторона может тогда сделать соответственно измеренный sizeArrayOut и вызовите снова. Например, вызывающая сторона могла бы передать адрес a size_t переменная на штабеле (как sizeArrayOut), и 1 как sizeArrayEntries. Если все выборки являются тем же размером (или существует только одна выборка в CMSampleBuffer), этот вызов успешно выполнился бы. В противном случае это перестанет работать и возвратит число записей, требуемых в sizeArrayEntriesNeededOut. Только в этом случае (многократные выборки различных размеров) будет, вызывающая сторона должна выделить массив. 0 записей будут возвращены, если выборки в буфере будут состоящими из нескольких несмежных участков (например, нечередующееся аудио, где значения канала для единственной выборки рассеиваются через буфер). Если нет никаких объемов выборки в этом CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleSizes будет возвращен, и *sizeArrayEntriesNeededOut будет установлен в 0. Это будет истиной, например, если выборки в буфере будут состоящими из нескольких несмежных участков (например, нечередующееся аудио, где значения канала для единственной выборки рассеиваются через буфер), или если это CMSampleBuffer содержит a CVImageBuffer.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Получает a CMSampleTimingInfo структура, описывающая указанную выборку в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetSampleTimingInfo(_ sbuf: CMSampleBuffer!, _ sampleIndex: CMItemIndex, _ timingInfoOut: UnsafeMutablePointer<CMSampleTimingInfo>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetSampleTimingInfo ( CMSampleBufferRef sbuf, CMItemIndex sampleIndex, CMSampleTimingInfo *timingInfoOut );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    sampleIndex

    Демонстрационный индекс (0 первая выборка в sbuf).

    timingInfoOut

    На выводе, точках к синглу CMSampleTimingInfo структура для получения информации синхронизации.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Демонстрационно-специфичное CMSampleTimingInfo структура будет возвращена (т.е. с демонстрационно-специфичным presentationTimeStamp и decodeTimeStamp), даже если сингл CMSampleTimingInfo структура использовалась во время создания для описания всех выборок в буфере. timingInfo структура должна быть выделена вызывающей стороной. Если демонстрационный индекс не находится в диапазоне 0.. numSamples-1, kCMSampleBufferError_SampleIndexOutOfRangeбудет возвращен. Если существует нет timingInfo в этом CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo будет возвращен.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Получает массив CMSampleTimingInfo структуры, один для каждой выборки в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetSampleTimingInfoArray(_ sbuf: CMSampleBuffer!, _ timingArrayEntries: CMItemCount, _ timingArrayOut: UnsafeMutablePointer<CMSampleTimingInfo>, _ timingArrayEntriesNeededOut: UnsafeMutablePointer<CMItemCount>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferGetSampleTimingInfoArray ( CMSampleBufferRef sbuf, CMItemCount timingArrayEntries, CMSampleTimingInfo *timingArrayOut, CMItemCount *timingArrayEntriesNeededOut );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    timingArrayEntries

    Число записей в timingArray

    timingArrayOut

    На выводе, точках к массиву CMSampleTimingInfo структуры для получения информации синхронизации

    timingArrayEntriesNeededOut

    Число записей необходимо для результата.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Если только одна структура CMSampleTimingInfo возвращается, она применяется ко всем выборкам в буфере. См. документацию CMSampleTimingInfo для подробных данных как сингл CMSampleTimingInfo структура может примениться к многократным выборкам. timingArrayOut должен быть выделен вызывающей стороной, и число выделенных записей должно быть передано в timingArrayEntries. Если timingArrayOut NULL, timingArrayEntriesNeededOut возвратит требуемое число записей. Точно так же, если *timingArrayEntriesNeededOut is слишком маленький, kCMSampleBufferError_ArrayTooSmallбудет возвращен, и timingArrayEntriesNeededOut возвратит требуемое число записей. В любом случае вызывающая сторона может тогда сделать соответственно измеренный timingArrayOut и вызовите снова. Например, вызывающая сторона могла бы передать адрес a CMSampleTimingInfo структура на штабеле (как timingArrayOut), и 1 как timingArrayEntries. Если все выборки являются поддающимися описанию с синглом CMSampleTimingInfo структура (или существует только одна выборка в CMSampleBuffer), этот вызов успешно выполнится. В противном случае это перестанет работать и возвратит число записей, требуемых в timingArrayEntriesNeededOut. Только в этом случае будет вызывающая сторона фактически должна выделить массив. Если существует нет timingInfo в этом CMSampleBuffer, kCMSampleBufferError_BufferHasNoSampleTimingInfo будет возвращен, и timingArrayEntriesNeededOut будет установлен в 0.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвращает общий размер в байтах демонстрационных данных в a CMSampleBuffer.

    Объявление

    Swift

    func CMSampleBufferGetTotalSampleSize(_ sbuf: CMSampleBuffer!) -> Int

    Objective C

    size_t CMSampleBufferGetTotalSampleSize ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Общий размер в байтах демонстрационных данных в CMSampleBuffer. Если нет никаких объемов выборки в этом CMSampleBuffer, размер 0 будет возвращен.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Возвраты CFTypeID из CMSampleBuffer объекты.

    Объявление

    Swift

    func CMSampleBufferGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CMSampleBufferGetTypeID ( void );

    Возвращаемое значение

    CFTypeID из CMSampleBuffer объекты.

    Обсуждение

    Можно проверить если a CFTypeRef объект фактически a CMSampleBuffer путем сравнения CFGetTypeID(object) с CMSampleBufferGetTypeID().

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Делает демонстрационный буфер недопустимым, вызывая любой установленный обратный вызов аннулирования.

    Объявление

    Swift

    func CMSampleBufferInvalidate(_ sbuf: CMSampleBuffer!) -> OSStatus

    Objective C

    OSStatus CMSampleBufferInvalidate ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Недопустимый демонстрационный буфер не может использоваться - все средства доступа возвратятся kCMSampleBufferError_Invalidated Это не хорошая идея сделать это к демонстрационному буферу, к которому другой модуль может получать доступ одновременно. Пример использования: обратный вызов аннулирования мог отменить незаконченный I/O.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Запросы, допустим ли демонстрационный буфер все еще.

    Объявление

    Swift

    func CMSampleBufferIsValid(_ sbuf: CMSampleBuffer!) -> Boolean

    Objective C

    Boolean CMSampleBufferIsValid ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным.

    Возвращаемое значение

    Булевская переменная, указывающая, допустим ли демонстрационный буфер все еще.

    Обсуждение

    Возвращает false если sbuf NULL или CMSampleBufferInvalidate(sbuf) был вызван, истина иначе. Не выполняет вида исчерпывающей проверки демонстрационного буфера.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Делает a CMSampleBuffer готовые данные, путем вызова клиента CMSampleBufferMakeDataReadyCallback.

    Объявление

    Swift

    func CMSampleBufferMakeDataReady(_ sbuf: CMSampleBuffer!) -> OSStatus

    Objective C

    OSStatus CMSampleBufferMakeDataReady ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    Изменяемый CMSampleBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    CMSampleBufferMakeDataReadyCallback передается в клиентом во время создания. Это должно возвратиться 0 в случае успеха, и в этом случае, CMSampleBufferMakeDataReady установит готовность данных CMSampleBuffer к истине.

    Пример использования: когда пора фактически использовать данные.

    Пример подпрограммы обратного вызова: подпрограмма, чтобы вынудить запланированное чтение завершиться.

    Если CMSampleBuffer не готов, и существует нет CMSampleBufferMakeDataReadyCallback для вызова kCMSampleBufferError_BufferNotReady будет возвращен. Точно так же, если CMSampleBuffer не готово, и CMSampleBufferMakeDataReadyCallback сбои и возвраты ошибка, kCMSampleBufferError_BufferNotReady будет возвращен.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Партнеры a CMSampleBuffer с CMBlockBuffer из данных носителей.

    Объявление

    Swift

    func CMSampleBufferSetDataBuffer(_ sbuf: CMSampleBuffer!, _ dataBuffer: CMBlockBuffer!) -> OSStatus

    Objective C

    OSStatus CMSampleBufferSetDataBuffer ( CMSampleBufferRef sbuf, CMBlockBufferRef dataBuffer );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    dataBuffer

    CMBlockBuffer из данных, связываемых с.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Если успешный, эта работа сохраняет dataBuffer. Это позволяет вызывающей стороне выпускать dataBuffer после вызова этого API, если это не имеет никакой дальнейшей потребности сослаться на него. Это - неперезаписываемая работа; это перестанет работать если CMSampleBuffer уже имеет a dataBuffer. Этот API позволяет a CMSampleBuffer для существования, с информацией синхронизации и данными о формате, перед, связанные данные обнаруживаются.

    Пример использования: Некоторые мультимедийные службы могут иметь доступ к объему выборки, синхронизации и данным о формате, прежде чем будут считаны данные. Такие службы могут создать CMSampleBuffers с той информацией и вставляют их в очереди рано и используют этот API для присоединения CMBlockBuffers позже, когда данные становятся готовыми.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Создает a CMBlockBuffer содержа копию данных от AudioBufferList. Наборы, копирующие как CMSampleBuffer's буфер данных. Получающийся буфер (ы) в демонстрационном буфере составит 16 байтов, выровненных если kCMSampleBufferFlag_AudioBufferList_Assure16ByteAlignment передается в.

    Объявление

    Swift

    func CMSampleBufferSetDataBufferFromAudioBufferList(_ sbuf: CMSampleBuffer!, _ bbufStructAllocator: CFAllocator!, _ bbufMemoryAllocator: CFAllocator!, _ flags: UInt32, _ bufferList: UnsafePointer<AudioBufferList>) -> OSStatus

    Objective C

    OSStatus CMSampleBufferSetDataBufferFromAudioBufferList ( CMSampleBufferRef sbuf, CFAllocatorRef bbufStructAllocator, CFAllocatorRef bbufMemoryAllocator, uint32_t flags, const AudioBufferList *bufferList );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    bbufStructAllocator

    Средство выделения для использования при создании CMBlockBuffer структура.

    bbufMemoryAllocator

    Средство выделения для использования для блока памяти, сохраненного CMBlockBuffer.

    flags

    Работа управления флагов.

    bufferList

    Буферный список, данные которого будут скопированы в новое CMBlockBuffer.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Знаки a CMSampleBuffer's данные как «готовые».

    Объявление

    Swift

    func CMSampleBufferSetDataReady(_ sbuf: CMSampleBuffer!) -> OSStatus

    Objective C

    OSStatus CMSampleBufferSetDataReady ( CMSampleBufferRef sbuf );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата

    Обсуждение

    Нет никакого способа отменить эту работу. Единственный способ получить «неготовое»CMSampleBuffer должен вызвать CMSampleBufferCreate с dataReady набором параметра ко лжи.

    Пример использования: в подпрограмме завершения чтения.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Наборы CMSampleBuffer’s обратный вызов аннулирования, во время которого вызывают CMSampleBufferInvalidate.

    Объявление

    Swift

    func CMSampleBufferSetInvalidateCallback(_ sbuf: CMSampleBuffer!, _ invalidateCallback: CMSampleBufferInvalidateCallback, _ invalidateRefCon: UInt64) -> OSStatus

    Objective C

    OSStatus CMSampleBufferSetInvalidateCallback ( CMSampleBufferRef sbuf, CMSampleBufferInvalidateCallback invalidateCallback, uint64_t invalidateRefCon );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    invalidateCallback

    Ссылка на функцию, во время которой вызовут CMSampleBufferInvalidate.

    invalidateRefCon

    Ссылочная константа, которая будет передана invalidateCallback.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Демонстрационный буфер может только иметь один обратный вызов аннулирования. Обратный вызов аннулирования НЕ вызывают во время обычного демонстрационного буферного завершения.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Устанавливает выходную метку времени представления, которая будет использоваться вместо расчетного значения.

    Объявление

    Swift

    func CMSampleBufferSetOutputPresentationTimeStamp(_ sbuf: CMSampleBuffer!, _ outputPresentationTimeStamp: CMTime) -> OSStatus

    Objective C

    OSStatus CMSampleBufferSetOutputPresentationTimeStamp ( CMSampleBufferRef sbuf, CMTime outputPresentationTimeStamp );

    Параметры

    sbuf

    CMSampleBuffer быть опрошенным

    outputPresentationTimeStamp

    Новое значение для OutputPresentationTimeStamp. Передача kCMTimeInvalid вернуться к вычислению по умолчанию.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    Выходная метка времени представления является временем, в которое декодируемый, обрезанный, расширенный и возможно инвертированные выборки должны начать быть представленным. По умолчанию это вычисляется путем вызова CMSampleBufferGetOutputPresentationTimeStamp. Вызвать CMSampleBufferSetOutputPresentationTimeStamp явно установить значение для CMSampleBufferGetOutputPresentationTimeStamp возвратиться.

    Для общего прямого воспроизведения в масштабированном редактировании OutputPresentationTimeStamp должен быть установлен в:

    ((PresentationTimeStamp + TrimDurationAtStart - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime.

    Для общего обратного воспроизведения OutputPresentationTimeStamp должен быть установлен в:

    ((PresentationTimeStamp + Duration - TrimDurationAtEnd - EditStartMediaTime) / EditSpeedMultiplier) + EditStartTrackTime.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

  • Партнеры a CMSampleBuffer's готовность данных с другим CMSampleBuffer's готовность данных.

    Объявление

    Swift

    func CMSampleBufferTrackDataReadiness(_ sbuf: CMSampleBuffer!, _ sbufToTrack: CMSampleBuffer!) -> OSStatus

    Objective C

    OSStatus CMSampleBufferTrackDataReadiness ( CMSampleBufferRef sbuf, CMSampleBufferRef sbufToTrack );

    Параметры

    sbuf

    CMSampleBuffer быть измененным.

    sbufToTrack

    CMSampleBuffer быть прослеженным.

    Возвращаемое значение

    Код результата. Посмотрите Коды Результата.

    Обсуждение

    После вызова этого API, если CMSampleBufferDataIsReady(sbuf) вызывают, он возвратится sbufToTrack's готовность данных. Если CMSampleBufferMakeDataReady(sbuf) вызывают, он сделает sbufToTrack готовые данные.

    Пример использования: Это позволяет разрывать мультивыборку CMSampleBuffer в единственную выборку CMSampleBuffers прежде чем данные готовы. Единственная выборка CMSampleBuffers все отследит мультивыборку CMSampleBuffer's готовность данных.

    Оператор импорта

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в iOS 4.0 и позже.

Типы данных

Прочие условия

  • Ссылка на неизменное CMSampleBufferRef объект.

    Объявление

    Swift

    typealias CMSampleBufferRef = CMSampleBuffer

    Objective C

    typedef struct opaqueCMSampleBuffer *CMSampleBufferRef;

    Обсуждение

    A CMSampleBuffer Базовый объект Основы, содержащий нуль или более сжатый (или несжатый) выборки определенного типа среды (аудио, видео, мультиплексированное, и т.д.).

    Доступность

    Доступный в iOS 4.0 и позже.

  • Набор информации синхронизации для выборки в a CMSampleBuffer.

    Объявление

    Swift

    struct CMSampleTimingInfo { var duration: CMTime var presentationTimeStamp: CMTime var decodeTimeStamp: CMTime init() init(duration duration: CMTime, presentationTimeStamp presentationTimeStamp: CMTime, decodeTimeStamp decodeTimeStamp: CMTime) }

    Objective C

    typedef struct { CMTime duration; CMTime presentationTimeStamp; CMTime decodeTimeStamp; } CMSampleTimingInfo;

    Поля

    duration

    Продолжительность выборки.

    Если единственная структура применяется к каждой из выборок, у них всех есть эта продолжительность.

    presentationTimeStamp

    Время, в которое будет представлена выборка.

    Если единственная структура применяется к каждой из выборок, у них всех есть эта продолжительность.

    decodeTimeStamp

    Время, в которое будет декодироваться выборка.

    Если выборки находятся в порядке представления, это должно быть установлено в kCMInvalidTime.

    Обсуждение

    Сингл CMSampleTimingInfo структура может описать каждую отдельную выборку в a CMSampleBuffer, если выборки все имеют ту же продолжительность и находятся в порядке представления без разрывов.

    Доступность

    Доступный в iOS 4.0 и позже.

Константы

  • Уведомления отправляются демонстрационными буферными объектами.

    Объявление

    Swift

    let kCMSampleBufferNotification_DataBecameReady: CFString! let kCMSampleBufferConduitNotification_InhibitOutputUntil: CFString! let kCMSampleBufferConduitNotification_ResetOutput: CFString! let kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged: CFString! let kCMSampleBufferConsumerNotification_BufferConsumed: CFString!

    Objective C

    const CFStringRef kCMSampleBufferNotification_DataBecameReady; const CFStringRef kCMSampleBufferConduitNotification_InhibitOutputUntil; const CFStringRef kCMSampleBufferConduitNotification_ResetOutput; const CFStringRef kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged; const CFStringRef kCMSampleBufferConsumerNotification_BufferConsumed;

    Константы

    • kCMSampleBufferNotification_DataBecameReady

      Отправленный на демонстрационном буфере CMSampleBufferSetDataReady функционируйте, когда буфер станет готовым.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferConduitNotification_InhibitOutputUntil

      Отправленный на кабелепроводе демонстрационных буферов для объявления о ближайшем разрыве.

      Кабелепровод демонстрационных буферов (например, буферная очередь; посмотрите Ссылка CMBufferQueue) отправляет это уведомление, когда происходит разрыв в декодировании. userInfo словарь для этого уведомления содержит kCMSampleBufferConduitNotificationParameter_ResumeTag ключ, значение которого указывает тег, указывающий, когда выведенный должен возобновиться.

      Первый демонстрационный буфер после разрыва должен иметь a kCMSampleBufferAttachmentKey_ResumeOutput присоединение, значение которого является тем же числом как тег резюме, о котором объявляют в этом уведомлении. Потребитель должен отбросить выходные данные, пока это не получает этот демонстрационный буфер. Если многократные уведомления об этом типе получены, последний указывает тег резюме.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferConduitNotification_ResetOutput

      Отправленный на кабелепроводе демонстрационных буферов для запроса аннулирования незаконченных выходных данных.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged

      Отправленный на кабелепроводе видео выборки буферизует для сообщения информации о диапазоне предстоящих выходных меток времени представления.

      Эта информация может быть важна для переупорядоченного кадром видео и для определенных типов декодирования, куда выборки передаются в различном порядке от порядка, они будут выведены на экран. Если необходимо обработать кадры в порядке представления, можно использовать эту информацию, чтобы гарантировать, чтобы Вы не обрабатывали кадр слишком рано (т.е. когда существуют предстоящие кадры, которые будут иметь более ранние метки времени представления, чем кадр, который будет обработан).

      userInfo словарь для этого уведомления содержит kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange ключ. Если значение для того ключа kCFBooleanTrue, словарь также содержит один или оба из kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS или kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS ключи, предоставляющие информацию о диапазоне перекрывающихся меток времени представления.

      Доступный в iOS 4.3 и позже.

    • kCMSampleBufferConsumerNotification_BufferConsumed

      Дополнительно отправленный, когда используется демонстрационный буфер.

      Если демонстрационный буфер имеет значение для kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed присоединение, объект, использующий демонстрационный буфер, должно отправить это уведомление с собой как объект уведомления и присоединяемое значение как userInfo словарь.

      Доступный в iOS 4.0 и позже.

  • Ключи, используемые в userInfo словари уведомлений отправляются демонстрационными буферными объектами.

    Объявление

    Swift

    let kCMSampleBufferConduitNotificationParameter_ResumeTag: CFString! let kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange: CFString! let kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS: CFString! let kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS: CFString!

    Objective C

    const CFStringRef kCMSampleBufferConduitNotificationParameter_ResumeTag; const CFStringRef kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange; const CFStringRef kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS; const CFStringRef kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS;

    Константы

    • kCMSampleBufferConduitNotificationParameter_ResumeTag

      Указывает тег, чтобы быть присоединенными к первому демонстрационному буферу после разрыва (тип CFNumber).

      Кабелепровод демонстрационных буферов отправляет kCMSampleBufferConduitNotification_InhibitOutputUntil уведомление, когда происходит разрыв в декодировании. Значение для этого ключа будет присоединено к первому демонстрационному буферу после разрыва с помощью kCMSampleBufferAttachmentKey_ResumeOutput присоединение, указывая, что клиенты должны возобновить вывод.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferConduitNotificationParameter_UpcomingOutputPTSRangeMayOverlapQueuedOutputPTSRange

      Указывает, что метки времени представления предстоящих выходных выборок могут перекрыть те из выборок, поставленных в очередь для вывода (тип CFBoolean).

      Этот ключ всегда присутствует в userInfo словарь для kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged уведомление. Если его значение kCFBooleanTrue, существует возможность, что предстоящие кадры могут иметь более ранние метки времени представления, чем кадры, ранее предоставленные для кабелепровода, и словарь также содержит один или оба из kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS или kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS ключи, предоставляющие дополнительную информацию. Если его значение kCFBooleanFalse, нет такой возможности.

      Доступный в iOS 4.3 и позже.

    • kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS

      Указывает минимальную метку времени представления предстоящих выходных выборок (тип CFDictionary).

      Этот ключ может присутствовать в userInfo словарь для для kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged уведомление в случаях, где предстоящие кадры могут иметь более ранние метки времени, чем ранее предоставленные. Его значение CFDictionary представление a CMTime объект (см. CMTimeMakeFromDictionary).

      Или этот ключ или kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS может быть опущен для отъезда диапазона открытым.

      Доступный в iOS 4.3 и позже.

    • kCMSampleBufferConduitNotificationParameter_MaxUpcomingOutputPTS

      Указывает максимальную метку времени представления предстоящих выходных выборок (тип CFDictionary).

      Этот ключ может присутствовать в userInfo словарь для для kCMSampleBufferConduitNotification_UpcomingOutputPTSRangeChanged уведомление в случаях, где предстоящие кадры могут иметь более ранние метки времени, чем ранее предоставленные. Его значение CFDictionary представление a CMTime объект (см. CMTimeMakeFromDictionary).

      Или этот ключ или kCMSampleBufferConduitNotificationParameter_MinUpcomingOutputPTS может быть опущен для отъезда диапазона открытым.

      Доступный в iOS 5.0 и позже.

  • Присоединения связались с отдельными выборками в буфере.

    Объявление

    Swift

    let kCMSampleAttachmentKey_NotSync: CFString! let kCMSampleAttachmentKey_PartialSync: CFString! let kCMSampleAttachmentKey_HasRedundantCoding: CFString! let kCMSampleAttachmentKey_IsDependedOnByOthers: CFString! let kCMSampleAttachmentKey_DependsOnOthers: CFString! let kCMSampleAttachmentKey_EarlierDisplayTimesAllowed: CFString! let kCMSampleAttachmentKey_DisplayImmediately: CFString! let kCMSampleAttachmentKey_DoNotDisplay: CFString!

    Objective C

    const CFStringRef kCMSampleAttachmentKey_NotSync; const CFStringRef kCMSampleAttachmentKey_PartialSync; const CFStringRef kCMSampleAttachmentKey_HasRedundantCoding; const CFStringRef kCMSampleAttachmentKey_IsDependedOnByOthers; const CFStringRef kCMSampleAttachmentKey_DependsOnOthers; const CFStringRef kCMSampleAttachmentKey_EarlierDisplayTimesAllowed; const CFStringRef kCMSampleAttachmentKey_DisplayImmediately; const CFStringRef kCMSampleAttachmentKey_DoNotDisplay;

    Константы

    • kCMSampleAttachmentKey_NotSync

      Указывает, является ли выборка синхронизирующей выборкой (тип CFBoolean, ложь по умолчанию).

      Синхронизирующая выборка, также известная как ключевой кадр или IDR (Мгновенное Обновление Декодирования), может декодироваться, не требуя, чтобы декодировались любые предыдущие выборки. Выборки после синхронизирующей выборки также не требуют, чтобы декодировались выборки до синхронизирующей выборки. Выборки, как предполагается, являются синхронизирующими выборками по умолчанию — устанавливает значение для этого ключа к kCFBooleanTrue для выборок, которые не должны быть обработаны как синхронизирующие выборки.

      Это присоединение считано из и записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_PartialSync

      Указывает, является ли выборка частичной синхронизирующей выборкой (тип CFBoolean, ложь по умолчанию).

      Частичная синхронизирующая выборка может декодироваться, не требуя, чтобы декодировались любые предыдущие выборки. Выборки после двух последовательных частичных синхронизирующих выборок также не требуют, чтобы декодировались выборки до пары. Для обработки выборки как частичной синхронизирующей выборки установите значение kCFBooleanTrue и для этого ключа и для kCMSampleAttachmentKey_NotSync ключ.

      Это присоединение считано из и записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_HasRedundantCoding

      Указывает, имеет ли выборка избыточное кодирование (тип CFBoolean).

      Этот ключ не имеет никакого значения по умолчанию. Если этот ключ не является существующей, избыточной информацией о кодировании для выборки, неизвестно.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_IsDependedOnByOthers

      Указывает, зависят ли другие выборки от этой выборки для декодирования (тип CFBoolean).

      Этот ключ не имеет никакого значения по умолчанию. Если этот ключ не является существующей, информацией о зависимостях для выборки, неизвестно. Если этот ключ присутствует, и его значение kCFBooleanFalse, кадр считают сбрасываемым.

      Это присоединение считано из и записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_DependsOnOthers

      Указывает, зависит ли выборка от других выборок для декодирования (тип CFBoolean).

      Этот ключ не имеет никакого значения по умолчанию. Если этот ключ не является существующей, информацией о зависимостях для выборки, неизвестно. Значение kCFBooleanFalse указывает, что выборка не зависит от других выборок (например, я структурируют). Значение kCFBooleanTrue указывает, что выборка действительно зависит от других выборок (например, кадр P или B).

      Это присоединение считано из и записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_EarlierDisplayTimesAllowed

      Указывает, могут ли более поздние выборки иметь более ранние времена дисплея (тип CFBoolean).

      Этот ключ не имеет никакого значения по умолчанию. Если этот ключ не присутствует, эта информация для выборки неизвестна.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_DisplayImmediately

      Указывает, должна ли выборка быть сразу выведена на экран (тип CFBoolean, ложь по умолчанию).

      Если этот ключ присутствует, выборка должна быть выведена на экран как можно скорее, а не согласно ее метке времени представления. Используйте это присоединение во время выполнения для запроса этого поведения от конвейера дисплея такой как AVSampleBufferDisplayLayer класс.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleAttachmentKey_DoNotDisplay

      Указывает, должна ли выборка декодироваться, но не выводиться на экран (тип CFBoolean, ложь по умолчанию).

      Используйте это присоединение во время выполнения для запроса этого поведения от конвейера дисплея такой как AVSampleBufferDisplayLayer класс.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    Обсуждение

    Можно получить и установить присоединения демонстрационного уровня в демонстрационном буфере с помощью CMSampleBufferGetSampleAttachmentsArray функция.

  • Присоединения буферного уровня связались с демонстрационным буфером.

    Объявление

    Swift

    let kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding: CFString! let kCMSampleBufferAttachmentKey_DrainAfterDecoding: CFString! let kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed: CFString! let kCMSampleBufferAttachmentKey_ResumeOutput: CFString! let kCMSampleBufferAttachmentKey_TransitionID: CFString! let kCMSampleBufferAttachmentKey_TrimDurationAtStart: CFString! let kCMSampleBufferAttachmentKey_TrimDurationAtEnd: CFString! let kCMSampleBufferAttachmentKey_SpeedMultiplier: CFString! let kCMSampleBufferAttachmentKey_Reverse: CFString! let kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence: CFString! let kCMSampleBufferAttachmentKey_EmptyMedia: CFString! let kCMSampleBufferAttachmentKey_PermanentEmptyMedia: CFString! let kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately: CFString! let kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration: CFString! let kCMSampleBufferAttachmentKey_SampleReferenceURL: CFString! let kCMSampleBufferAttachmentKey_SampleReferenceByteOffset: CFString! let kCMSampleBufferAttachmentKey_GradualDecoderRefresh: CFString! let kCMSampleBufferAttachmentKey_DroppedFrameReason: CFString! let kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo: CFString!

    Objective C

    const CFStringRef kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding; const CFStringRef kCMSampleBufferAttachmentKey_DrainAfterDecoding; const CFStringRef kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed; const CFStringRef kCMSampleBufferAttachmentKey_ResumeOutput; const CFStringRef kCMSampleBufferAttachmentKey_TransitionID; const CFStringRef kCMSampleBufferAttachmentKey_TrimDurationAtStart; const CFStringRef kCMSampleBufferAttachmentKey_TrimDurationAtEnd; const CFStringRef kCMSampleBufferAttachmentKey_SpeedMultiplier; const CFStringRef kCMSampleBufferAttachmentKey_Reverse; const CFStringRef kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence; const CFStringRef kCMSampleBufferAttachmentKey_EmptyMedia; const CFStringRef kCMSampleBufferAttachmentKey_PermanentEmptyMedia; const CFStringRef kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately; const CFStringRef kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration; const CFStringRef kCMSampleBufferAttachmentKey_SampleReferenceURL; const CFStringRef kCMSampleBufferAttachmentKey_SampleReferenceByteOffset; const CFStringRef kCMSampleBufferAttachmentKey_GradualDecoderRefresh; const CFStringRef kCMSampleBufferAttachmentKey_DroppedFrameReason; const CFStringRef kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo;

    Константы

    • kCMSampleBufferAttachmentKey_ResetDecoderBeforeDecoding

      Указывает, должен ли демонстрационный буфер быть сброшен прежде, чем декодировать (тип CFBoolean, ложь по умолчанию).

      Это присоединение используется во время выполнения, чтобы указать, что выборка следует, перерыв декодируют последовательность и что является надлежащим сбросить декодер прежде, чем декодировать эту выборку.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_DrainAfterDecoding

      Указывает, должен ли демонстрационный буфер быть истощен после декодирования типа CFBoolean, ложь по умолчанию).

      Это присоединение используется во время выполнения, чтобы указать, что выборка предшествует, перерыв декодируют последовательность и что является надлежащим истощить декодер после декодирования этой выборки.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_PostNotificationWhenConsumed

      Если настоящее, указывает, что декодируют конвейеры, должен отправить уведомление при потреблении демонстрационного буфера (тип CFDictionary).

      Это присоединение используется во время выполнения, чтобы запросить, чтобы конвейер декодирования отправил a kCMSampleBufferConsumerNotification_BufferConsumed уведомление, когда используется этот демонстрационный буфер. Значение для этого ключа используется в качестве userInfo словарь в уведомлении.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_ResumeOutput

      Если настоящее, указывает, что выводит, должен быть возобновлен после разрыва CFBoolean, ложь по умолчанию).

      Это присоединение используется во время выполнения, чтобы запросить, чтобы конвейер декодирования продолжил производить вывод после того, как разрыв объявил об использовании kCMSampleBufferConduitNotification_InhibitOutputUntil уведомление.

      Это присоединение не записано в медиа-файлы.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_TransitionID

      Отмечает переход от одного источника буферов другому.

      Например, во время сплошного воспроизведения списка песен, это присоединение отмечает первый буфер от следующей песни. Если это присоединение находится на буфере, содержащем выборки, первый следующий буфер, содержащий выборки, является буфером, содержащим первые выборки от следующей песни. Значение этого присоединения является a CFTypeRef. Этот идентификатор перехода должен быть уникальным в списке воспроизведения, таким образом, каждый переход в списке воспроизведения является уникально идентифицируемым. A CFNumberRef ответьте, который постепенно увеличивается с каждым переходом, простой пример.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_TrimDurationAtStart

      Продолжительность, которая должна быть удалена в начале демонстрационного буфера после декодирования.

      Если это присоединение не присутствует, продолжительность для обрезки является нулем (ничто удаленное). Это - a CMTime в Базовой Основе словарь форматируют, как сделано CMTimeCopyAsDictionary; использовать CMTimeMakeFromDictionary преобразовать в CMTime. В случаях, где весь вывод после декодирования демонстрационного буфера должен быть отброшен (например, выборки только декодируются к началу декодер) обычное соглашение состоит в том, чтобы установить kCMSampleBufferAttachmentKey_TrimDurationAtStart к целой продолжительности а не установить a kCMSampleBufferAttachmentKey_TrimDurationAtEnd присоединение.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_TrimDurationAtEnd

      Продолжительность, которая должна быть удалена в конце демонстрационного буфера после декодирования.

      Если это присоединение не присутствует, продолжительность для обрезки является нулем (ничто удаленное). Это - a CMTime в Базовой Основе словарь форматируют, как сделано CMTimeCopyAsDictionary; использовать CMTimeMakeFromDictionary преобразовать в CMTime.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_SpeedMultiplier

      Фактор, которым должно быть ускорено представление демонстрационного буфера (тип CFNumber, значение по умолчанию 1.0).

      Для нормального воспроизведения множитель скорости был бы 1.0 (который используется, если это присоединение не присутствует); для воспроизведения с удвоенной скоростью множитель скорости был бы 2.0, который разделил бы на два выходную продолжительность. Коэффициенты умножения скорости вступают в силу после обрезки; посмотрите CMSampleBufferGetOutputDuration. Обратите внимание на то, что это присоединение преимущественно предоставляет информацию о расширяющем продолжительность эффекте: по умолчанию это должно быть реализовано преобразованием уровня, но другие присоединения могут указать более богатые операции протяжения — например, масштабировавшись без сдвига подачи, или передать сдвиг, не изменяя продолжительность. Последовательности умноженных на скорость демонстрационных буферов должны иметь явные метки времени для разъяснения, когда каждый должен быть выведен (см. CMSampleBufferSetOutputPresentationTimeStamp).

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_Reverse

      Указывает, что декодируемое содержание демонстрационного буфера должно быть инвертировано (тип CFBoolean, ложь по умолчанию).

      Если это присоединение не присутствует, демонстрационный буфер должен играться вперед, как обычно. Реверсирование происходит после множителей скорости и обрезки.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_FillDiscontinuitiesWithSilence

      Заполните различие между несмежными демонстрационными буферами с тишиной (тип CFBoolean, ложь по умолчанию).

      Если демонстрационный буфер вводит буферную очередь и метку времени представления между предыдущим буфером, и буфер с этим присоединением являются несмежными, обрабатывают разрыв путем генерации тишины для разницы во времени.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_EmptyMedia

      Отмечает преднамеренно пустой интервал в последовательности выборок (тип CFBoolean, ложь по умолчанию).

      Когда пустой интервал начинается, выходная метка времени представления демонстрационного буфера указывает. Демонстрационные буферы маркера с этим присоединением используются для объявления о поступлении пустых редактирований.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_PermanentEmptyMedia

      Отмечает конец последовательности выборок (тип CFBoolean, ложь по умолчанию).

      Выборка маркера буферизует с этим присоединением в дополнение к kCMSampleBufferAttachmentKey_EmptyMedia используются, чтобы указать, что не ожидаются никакие дальнейшие выборки.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_DisplayEmptyMediaImmediately

      Говорит, что пустой маркер должен быть сразу исключен из очереди независимо от его метки времени (тип CFBoolean, ложь по умолчанию).

      Выборка маркера буферизует с этим присоединением в дополнение к kCMSampleBufferAttachmentKey_EmptyMedia используются, чтобы сказать, что пустой демонстрационный буфер должен быть сразу исключен из очереди независимо от его метки времени. Это присоединение должно только использоваться с демонстрационными буферами с kCMSampleBufferAttachmentKey_EmptyMedia присоединение.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_EndsPreviousSampleDuration

      Указывает, что метка времени декодирования демонстрационного буфера может использоваться для определения продолжительности предыдущего демонстрационного буфера (тип CFBoolean, ложь по умолчанию).

      Демонстрационные буферы маркера с этим присоединением могут использоваться в ситуациях, куда демонстрационные буферы передаются, прежде чем их продолжительность известна. В таких ситуациях обычно получатель может использовать метку времени каждого демонстрационного буфера для вычисления продолжительности предыдущего демонстрационного буфера. Демонстрационный буфер маркера с этим присоединением отправляется для обеспечения метки времени для вычисления продолжительности заключительного демонстрационного буфера.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_SampleReferenceURL

      Указывает URL, где демонстрационные данные (тип CFURL).

      Этот ключ только используется для демонстрационных буферов, представляющих демонстрационные ссылки.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_SampleReferenceByteOffset

      Указывает байтовое смещение, при котором начинаются демонстрационные данные (тип CFNumber).

      Этот ключ только используется для демонстрационных буферов, представляющих демонстрационные ссылки. Его значение является байтовым смещением с начала данных в URL, на который ссылаются, к непрерывным демонстрационным данным.

      Доступный в iOS 4.0 и позже.

    • kCMSampleBufferAttachmentKey_GradualDecoderRefresh

      Указывает количество обновления декодера (тип CFNumber).

      Демонстрационные буферы с этим присоединением могут использоваться для идентификации аудио количества обновления декодера.

      Доступный в iOS 4.3 и позже.

    • kCMSampleBufferAttachmentKey_DroppedFrameReason

      Указывает причину, текущий видеокадр был отброшен (тип CFString).

      Демонстрационные буферы с этим присоединением не содержат изображения или буфера данных. Они отмечают отброшенный видеокадр. Это присоединение идентифицирует причину, кадр был отброшен. Значение для этого ключа является одной из строковых констант в Демонстрационных Буферных Отброшенных Причинах Кадра.

      Доступный в iOS 6.0 и позже.

    • kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo

      Указывает дополнительную информацию относительно отброшенного видеокадра (тип CFString).

      Демонстрационные буферы с этим присоединением не содержат изображения или буфера данных. Они отмечают отброшенный видеокадр. Если настоящее, это присоединение предоставляет дополнительную информацию о причине, описанной kCMSampleBufferAttachmentKey_DroppedFrameReason ключ. Значение для этого ключа является одной из строковых констант в Демонстрационной Буферной Отброшенной Причине Кадра информация.

      Доступный в iOS 7.0 и позже.

    Обсуждение

    Чтобы получить и установить присоединения буферного уровня демонстрационного буфера, используйте функции, описанные в Ссылке CMAttachment.

  • Значения, обеспечивающие причину отброшенного кадра.

    Объявление

    Swift

    let kCMSampleBufferDroppedFrameReason_FrameWasLate: CFString! let kCMSampleBufferDroppedFrameReason_OutOfBuffers: CFString! let kCMSampleBufferDroppedFrameReason_Discontinuity: CFString!

    Objective C

    const CFStringRef kCMSampleBufferDroppedFrameReason_FrameWasLate; const CFStringRef kCMSampleBufferDroppedFrameReason_OutOfBuffers; const CFStringRef kCMSampleBufferDroppedFrameReason_Discontinuity;

    Константы

    • kCMSampleBufferDroppedFrameReason_FrameWasLate

      Кадр был отброшен, потому что было поздно.

      Клиент видеосъемки указал, что последние видеокадры должны быть отброшены, и текущий кадр поздний. Это условие обычно вызывается обработкой клиента, берущей слишком долго.

      Доступный в iOS 6.0 и позже.

    • kCMSampleBufferDroppedFrameReason_OutOfBuffers

      Кадр был отброшен, потому что обеспечение модуля структурирует, вне буферов.

      Модуль, обеспечивающий демонстрационные буферы, исчерпал исходные буферы. Это условие обычно вызывается клиентом, содержащим на буферы слишком долго, и может быть улучшено путем возврата буферов провайдеру.

      Доступный в iOS 6.0 и позже.

    • kCMSampleBufferDroppedFrameReason_Discontinuity

      Было отброшено неизвестное число кадров.

      Модуль, обеспечивающий демонстрационные буферы, испытал разрыв, и было потеряно неизвестное число кадров. Это условие обычно вызывается системой, являющейся слишком занятым.

      Доступный в iOS 6.0 и позже.

    Обсуждение

    Эти значения могут быть связаны с демонстрационным буфером под kCMSampleBufferAttachmentKey_DroppedFrameReason ключ.

  • Значения, предоставляющие дополнительную информацию о причине отброшенного кадра.

    Объявление

    Swift

    let kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch: CFString!

    Objective C

    const CFStringRef kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch;

    Константы

    • kCMSampleBufferDroppedFrameReasonInfo_CameraModeSwitch

      Разрыв был вызван переключателем режима камеры.

      Модуль, обеспечивающий демонстрационные буферы, испытал разрыв вследствие переключателя режима камеры. Когда сеанс сконфигурирован для получения неподвижного изображения на некоторых устройствах, могут произойти короткие разрывы этого типа.

      Доступный в iOS 7.0 и позже.

    Обсуждение

    Эти значения могут быть связаны с демонстрационным буфером под kCMSampleBufferAttachmentKey_DroppedFrameReasonInfo ключ.

Коды результата

Эта таблица приводит коды результата, определенные для CMSampleBuffer APIs.

Код результата

Значение

Описание

noErr

0

Никакая ошибка.

kCMSampleBufferError_AllocationFailed

- 12730

Указывает, что выделение перестало работать.

kCMSampleBufferError_RequiredParameterMissing

- 12731

Указывает это NULL или 0 был передан для обязательного параметра.

kCMSampleBufferError_AlreadyHasDataBuffer

- 12732

Указывает, что была предпринята попытка для установки буфера данных на a CMSampleBuffer это уже имеет тот.

kCMSampleBufferError_BufferNotReady

- 12733

Указывает, что не мог быть приготовлен буфер.

kCMSampleBufferError_SampleIndexOutOfRange

- 12734

Указывает, что демонстрационный индекс не был между 0 и numSamples-1, включительно.

kCMSampleBufferError_BufferHasNoSampleSizes

- 12735

Указывает, что была попытка получить информацию объема выборки, когда не было ни одного.

kCMSampleBufferError_BufferHasNoSampleTimingInfo

- 12736

Указывает, что была попытка получить демонстрационную информацию синхронизации, когда не было ни одного.

kCMSampleBufferError_ArrayTooSmall

- 12737

Указывает, что выходной массив не был достаточно большим для массива, который требуют.

kCMSampleBufferError_InvalidEntryCount

- 12738

Указывает, что информация синхронизации или количество записи массива размера не были 0, 1, или numSamples.

kCMSampleBufferError_CannotSubdivide

- 12739

Указывает, что демонстрационный буфер не содержит объемы выборки.

Это может произойти, когда выборки в буфере являются состоящими из нескольких несмежных участков (например, в нечередующемся аудио, где значения канала для единственной выборки рассеиваются через буфер).

kCMSampleBufferError_SampleTimingInfoInvalid

- 12740

Указывает, что буфер неожиданно содержит нечисловую демонстрационную информацию синхронизации.

kCMSampleBufferError_InvalidMediaTypeForOperation

- 12741

Указывает, что тип среды, указанный описанием формата, не допустим для данной работы.

kCMSampleBufferError_InvalidSampleData

- 12742

Указывает, что Буфер содержит неправильных данных.

Это значение только возвращается CMSampleBuffer функции, проверяющие его демонстрационные данные.

kCMSampleBufferError_InvalidMediaFormat

- 12743

Указывает, что формат данных носителей не соответствует данное описание формата.

Например, описание формата соединилось с a CVImageBuffer это перестало работать CMVideoFormatDescriptionMatchesImageBuffer.

kCMSampleBufferError_Invalidated

- 12744

Указывает, что демонстрационный буфер был лишен законной силы.