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

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

Разработчик

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

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

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

Ссылка CMBlockBuffer

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

A CMBlockBuffer a CFType объект, представляющий непрерывный диапазон смещений данных (от нуля до CMBlockBufferGetDataLength) через возможно область памяти состоящую из нескольких несмежных участков. Область памяти составлена из блоков памяти и буферных ссылок. Буферные ссылки могут поочередно относиться к дополнительным областям. CMBlockBuffer использование CMAttachment протокол для распространения блоков памяти.

Функции

  • Доступы данные потенциально состоящие из нескольких несмежных участков в a CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferAccessDataBytes(_ theBuffer: CMBlockBuffer!, _ offset: UInt, _ length: UInt, _ temporaryBlock: UnsafeMutablePointer<Void>, _ returnedPointer: UnsafeMutablePointer<UnsafeMutablePointer<Int8>>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferAccessDataBytes ( CMBlockBufferRef theBuffer, size_t offset, size_t length, void *temporaryBlock, char **returnedPointer );

    Параметры

    theBuffer

    CMBlockBuffer воздействовать на. Не должен быть NULL.

    offset

    Смещение в CMBlockBuffer's диапазон смещения.

    length

    Желаемое число байтов к доступу при смещении.

    temporaryBlock

    Часть памяти, которая, как предполагают, была, по крайней мере, length байты в размере. Не должен быть NULL

    returnedPointer

    Получает NULL если к желаемому объему данных нельзя было бы получить доступ при данном смещении. Получает не-NULL, если это могло. Значение возвратилось, любой прямой указатель в CMBlockBuffer или к temporaryBlock. Не должен быть NULL.

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

    Возвраты kCMBlockBufferNoErr если к желаемому объему данных можно было бы получить доступ при данном смещении.

    Обсуждение

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

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Добавляет a CMBlockBuffer ссылка на существующее CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferAppendBufferReference(_ theBuffer: CMBlockBuffer!, _ targetBBuf: CMBlockBuffer!, _ offsetToData: UInt, _ dataLength: UInt, _ flags: CMBlockBufferFlags) -> OSStatus

    Objective C

    OSStatus CMBlockBufferAppendBufferReference ( CMBlockBufferRef theBuffer, CMBlockBufferRef targetBBuf, size_t offsetToData, size_t dataLength, CMBlockBufferFlags flags );

    Параметры

    theBuffer

    Существующее CMBlockBuffer. Цель CMBlockBuffer будет добавлен к памяти, являющейся управляемым theBuffer (существующее CMBlockBuffer). Не должен быть NULL.

    targetBBuf

    Цель CMBlockBuffer. Цель CMBlockBuffer будет добавлен к памяти, которой управляют theBuffer (существующееCMBlockBuffer). Этот параметр не должен быть NULL. Если kCMBlockBufferPermitEmptyReferenceFlag передается, цель CMBlockBuffer не должно быть пустым, и это должно иметь длину данных, по крайней мере, достаточно большую для предоставления указанного подмножества данных (т.е. offsetToData+dataLength байты).

    offsetToData

    Ссылка сохраняется существующим CMBlockBuffer начнется после этого смещения в цели CMBlockBuffer.

    dataLength

    Число соответствующих байтов данных, запускающихся в offsetToData, в цели CMBlockBuffer. Если нуль, доступное общее количество целевого буфера dataLength (запускающийся в offsetToData), будет ссылаться.

    flags

    Функция и флаги управления.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Добавляет буферная ссылка (возможно часть подмножества) другой CMBlockBuffer, цель CMBlockBuffer, к существующему CMBlockBuffer. Существующее CMBlockBuffer's общая длина данных будет увеличена указанным dataLength. Обратите внимание на то, что добавьте операции, не ориентированы на многопотоковое исполнение, таким образом, заботу нужно соблюдать при добавлении к буферам блоков, использующимся многократными потоками.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Добавляет блок памяти к существующему CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferAppendMemoryBlock(_ theBuffer: CMBlockBuffer!, _ memoryBlock: UnsafeMutablePointer<Void>, _ blockLength: UInt, _ blockAllocator: CFAllocator!, _ customBlockSource: UnsafePointer<CMBlockBufferCustomBlockSource>, _ offsetToData: UInt, _ dataLength: UInt, _ flags: CMBlockBufferFlags) -> OSStatus

    Objective C

    OSStatus CMBlockBufferAppendMemoryBlock ( CMBlockBufferRef theBuffer, void *memoryBlock, size_t blockLength, CFAllocatorRef blockAllocator, const CMBlockBufferCustomBlockSource *customBlockSource, size_t offsetToData, size_t dataLength, CMBlockBufferFlags flags );

    Параметры

    theBuffer

    Существующее CMBlockBuffer к которому новое memoryBlock будет добавлен. Не должен быть NULL

    memoryBlock

    Блок памяти для содержания буферизованных данных. Если NULL, блок памяти будет выделен при необходимости (через вызов к CMBlockBufferAssureBlockMemory()) использование предоставленного blockAllocator или customBlockSource. Если не-NULL, блок будет использоваться и будет освобожден когда CMBlockBuffer завершен (т.е. выпущен в последний раз).

    blockLength

    Полная длина блока памяти в байтах. Не должен быть нуль. Это - размер предоставленного memoryBlock или размер, чтобы выделить, если memoryBlock NULL.

    blockAllocator

    Средство выделения, которое будет использоваться для выделения memoryBlock, если memoryBlock NULL. Если memoryBlock не-NULL, это средство выделения будет использоваться для освобождения его, если предоставленный. Передача NULL заставит средство выделения по умолчанию (как установлено во время вызова) использоваться. Передача kCFAllocatorNull если не желаемо никакое освобождение.

    customBlockSource

    Если не-NULL, это будет использоваться для выделения и освобождения от блока памяти ( blockAllocator параметр проигнорирован). Если предоставленный, и memoryBlock параметр NULL, AllocateBlock()) подпрограмма должна быть не -NULL. Выделите будет вызван один раз, в случае успеха, когда memoryBlock выделяется. FreeBlock() будет вызван один раз когда CMBlockBuffer расположен.

    offsetToData

    Ссылка сохраняется существующим CMBlockBuffer начнется после этого смещения в memoryBlock .

    dataLength

    Число соответствующих байтов данных, запускающихся в offsetToData, в блоке памяти.

    flags

    Функция и флаги управления

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Добавляет a memoryBlock к существующему CMBlockBuffer. Блок памяти может быть статически выделен, динамично выделил использование данного средства выделения или еще не выделил. CMBlockBuffer's общая длина данных будет увеличена указанным dataLength. Если kCMBlockBufferAssureMemoryNowFlag установлен в параметре флагов, блок памяти сразу выделяется с помощью blockAllocator или customBlockSource. Обратите внимание на то, что добавьте операции, не ориентированы на многопотоковое исполнение, таким образом, заботу нужно соблюдать при добавлении к буферам блоков, использующимся многократными потоками.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Гарантирует все блоки памяти в a CMBlockBuffer выделяются.

    Объявление

    Swift

    func CMBlockBufferAssureBlockMemory(_ theBuffer: CMBlockBuffer!) -> OSStatus

    Objective C

    OSStatus CMBlockBufferAssureBlockMemory ( CMBlockBufferRef theBuffer );

    Параметры

    theBuffer

    CMBlockBuffer воздействовать на. Не должен быть NULL

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Пересекает возможно комплекс CMBlockBuffer, выделение памяти для любых еще не выделяющихся составляющих блоков памяти.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Байты копий от a CMBlockBuffer в предоставленную область памяти.

    Объявление

    Swift

    func CMBlockBufferCopyDataBytes(_ theSourceBuffer: CMBlockBuffer!, _ offsetToData: UInt, _ dataLength: UInt, _ destination: UnsafeMutablePointer<Void>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferCopyDataBytes ( CMBlockBufferRef theSourceBuffer, size_t offsetToData, size_t dataLength, void *destination );

    Параметры

    theSourceBuffer

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

    offsetToData

    Смещение в источнике CMBlockBuffer в котором должна начаться копия.

    dataLength

    Число байтов для копирования, запускающийся в offsetToData, в источнике CMBlockBuffer. Не должен быть нуль.

    destination

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

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

    Возвраты kCMBlockBufferNoErr если копия, за которой следуют, возвращает ошибку иначе.

    Обсуждение

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

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Производит a CMBlockBuffer содержание непрерывной копии или ссылки на данные указано параметрами.

    Объявление

    Swift

    func CMBlockBufferCreateContiguous(_ structureAllocator: CFAllocator!, _ sourceBuffer: CMBlockBuffer!, _ blockAllocator: CFAllocator!, _ customBlockSource: UnsafePointer<CMBlockBufferCustomBlockSource>, _ offsetToData: UInt, _ dataLength: UInt, _ flags: CMBlockBufferFlags, _ newBBufOut: UnsafeMutablePointer<Unmanaged<CMBlockBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferCreateContiguous ( CFAllocatorRef structureAllocator, CMBlockBufferRef sourceBuffer, CFAllocatorRef blockAllocator, const CMBlockBufferCustomBlockSource *customBlockSource, size_t offsetToData, size_t dataLength, CMBlockBufferFlags flags, CMBlockBufferRef *newBBufOut );

    Параметры

    structureAllocator

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

    sourceBuffer

    CMBlockBuffer от которого данные будут скопированы или сосланы. Не должен быть NULL ни пустой.

    blockAllocator

    Средство выделения, которое будет использоваться для выделения блока памяти, если должна быть сделана непрерывная копия данных. Передача NULL заставит средство выделения по умолчанию (как установлено во время вызова) использоваться.

    customBlockSource

    Если не-NULL, это будет использоваться для выделения и освобождения от блока памяти ( blockAllocator параметр проигнорирован). Если предоставленный, и параметр kCMBlockBufferAlwaysCopyDataFlag установлен, customBlockSource’s AllocateBlock() подпрограммой должен быть не-NULL. Выделите будет вызван один раз, в случае успеха, когда выделяется блок памяти. FreeBlock(), будет вызван один раз когда CMBlockBuffer расположен.

    offsetToData

    Смещение в источнике CMBlockBuffer в котором новое CMBlockBuffer должен получить данные.

    dataLength

    Число соответствующих байтов данных, запускающихся в offsetToData, в источнике CMBlockBuffer. Если нуль, доступное общее количество целевого буфера dataLength (запускающийся в offsetToData), будет ссылаться.

    flags

    Функция и флаги управления.

    newBBufOut

    Получает недавно создаваемый CMBlockBuffer объект с сохранить количеством 1. Не должен быть NULL.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

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

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Создает пустое CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferCreateEmpty(_ structureAllocator: CFAllocator!, _ subBlockCapacity: UInt32, _ flags: CMBlockBufferFlags, _ newBBufOut: UnsafeMutablePointer<Unmanaged<CMBlockBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferCreateEmpty ( CFAllocatorRef structureAllocator, uint32_t subBlockCapacity, CMBlockBufferFlags flags, CMBlockBufferRef *newBBufOut );

    Параметры

    structureAllocator

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

    subBlockCapacity

    Число подблоков новое CMBlockBuffer размещу, прежде чем расширение происходит. Значение нуля означает, «делают разумное значение по умолчанию».

    flags

    Функция и флаги управления.

    newBBufOut

    Получает недавно создаваемый пустой CMBlockBuffer объект с сохраняет количество 1. Не должен быть NULL.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Создает пустое CMBlockBuffer, т.е. тот, не имеющий никакого блока памяти, ни ссылки на a CMBlockBuffer поставляющие байты к нему. Это готово быть заполненным с помощью CMBlockBufferAppendMemoryBlock() и/или CMBlockBufferAppendBufferReference(). CMBlockBufferGetDataLength(), возвратит нуль для пустого CMBlockBuffer и CMBlockBufferGetDataPointer() и CMBlockBufferAssureBufferMemory(), перестанет работать. Память для CMBlockBuffer объект будет выделен с помощью данного средства выделения. Если NULL передается для средства выделения, средство выделения по умолчанию используется.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Создает новое CMBlockBuffer это относится к другому CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferCreateWithBufferReference(_ structureAllocator: CFAllocator!, _ targetBuffer: CMBlockBuffer!, _ offsetToData: UInt, _ dataLength: UInt, _ flags: CMBlockBufferFlags, _ newBBufOut: UnsafeMutablePointer<Unmanaged<CMBlockBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferCreateWithBufferReference ( CFAllocatorRef structureAllocator, CMBlockBufferRef targetBuffer, size_t offsetToData, size_t dataLength, CMBlockBufferFlags flags, CMBlockBufferRef *newBBufOut );

    Параметры

    structureAllocator

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

    targetBuffer

    Цель CMBlockBuffer. Этот параметр не должен быть NULL. Если kCMBlockBufferPermitEmptyReferenceFlag передается, это не должно быть пусто, и это должно иметь длину данных, по крайней мере, достаточно большую для предоставления указанного подмножества данных (т.е. offsetToData+dataLength байты).

    offsetToData

    Смещение в цели CMBlockBuffer в котором новое CMBlockBuffer должен относиться к данным.

    dataLength

    Число соответствующих байтов данных, запускающихся в offsetToData, в цели CMBlockBuffer.

    flags

    Функция и флаги управления.

    newBBufOut

    Получает недавно создаваемый CMBlockBuffer объект с сохранить количеством 1. Не должен быть NULL.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Создает новое CMBlockBuffer это относится к (возможно часть подмножества) другой CMBlockBuffer. Возвращенный CMBlockBuffer может быть далее расширен с помощью CMBlockBufferAppendMemoryBlock() и/или CMBlockBufferAppendBufferReference().

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Создает новое CMBlockBuffer поддержанный блоком памяти (или обещание этого).

    Объявление

    Swift

    func CMBlockBufferCreateWithMemoryBlock(_ structureAllocator: CFAllocator!, _ memoryBlock: UnsafeMutablePointer<Void>, _ blockLength: UInt, _ blockAllocator: CFAllocator!, _ customBlockSource: UnsafePointer<CMBlockBufferCustomBlockSource>, _ offsetToData: UInt, _ dataLength: UInt, _ flags: CMBlockBufferFlags, _ newBBufOut: UnsafeMutablePointer<Unmanaged<CMBlockBuffer>?>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferCreateWithMemoryBlock ( CFAllocatorRef structureAllocator, void *memoryBlock, size_t blockLength, CFAllocatorRef blockAllocator, const CMBlockBufferCustomBlockSource *customBlockSource, size_t offsetToData, size_t dataLength, CMBlockBufferFlags flags, CMBlockBufferRef *newBBufOut );

    Параметры

    structureAllocator

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

    memoryBlock

    Блок памяти для содержания буферизованных данных. Если NULL, блок памяти будет выделен при необходимости (через вызов к CMBlockBufferAssureBlockMemory()) использование предоставленного blockAllocator или customBlockSource. Если не-NULL, блок будет использоваться и будет освобожден когда новое CMBlockBuffer завершен (т.е. выпущен в последний раз).

    blockLength

    Полная длина блока памяти в байтах. Не должен быть нуль. Если memoryBlock, это - размер предоставленного блока памяти или размер, чтобы выделить NULL.

    blockAllocator

    Средство выделения, которое будет использоваться для выделения memoryBlock, если memoryBlock NULL. Если memoryBlock будет не-NULL, то это средство выделения будет использоваться для освобождения его, если предоставленный. Передача NULL заставит средство выделения по умолчанию (как установлено во время вызова) использоваться. Передача kCFAllocatorNull если не желаемо никакое освобождение.

    customBlockSource

    Если не-NULL, это будет использоваться для выделения и освобождения от блока памяти ( blockAllocator параметр проигнорирован). Если предоставленный, и memoryBlock параметр NULL, AllocateBlock() подпрограммой должен быть не-NULL. Выделите будет вызван один раз, в случае успеха, когда memoryBlock выделяется. FreeBlock() будет вызван один раз когда CMBlockBuffer расположен.

    offsetToData

    Смещение в memoryBlock в котором CMBlockBuffer должен относиться к данным.

    dataLength

    Число соответствующих байтов данных, запускающихся в offsetToData, в блоке памяти.

    flags

    Функция и флаги управления.

    newBBufOut

    Получает недавно создаваемый CMBlockBuffer объект с сохранить количеством 1. Не должен быть NULL.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

    Обсуждение

    Создает новое CMBlockBuffer поддержанный блоком памяти. Блок памяти может быть статически выделен, динамично выделил использование данного средства выделения (или customBlockSource) или еще не выделил. Возвращенный CMBlockBuffer может быть далее расширен с помощью CMBlockBufferAppendMemoryBlock() и/или CMBlockBufferAppendBufferReference().

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Заполняет целевой буфер указанным байтом данных.

    Объявление

    Swift

    func CMBlockBufferFillDataBytes(_ fillByte: Int8, _ destinationBuffer: CMBlockBuffer!, _ offsetIntoDestination: UInt, _ dataLength: UInt) -> OSStatus

    Objective C

    OSStatus CMBlockBufferFillDataBytes ( char fillByte, CMBlockBufferRef destinationBuffer, size_t offsetIntoDestination, size_t dataLength );

    Параметры

    fillByte

    Байт данных, которым можно заполнить целевой буфер.

    destinationBuffer

    CMBlockBuffer в который байты данных заполнены.

    offsetIntoDestination

    Запустите области данных для буфера.

    dataLength

    Длина допустимой области данных для буфера.

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

    Возвраты kCMBlockBufferNoErr в случае успеха.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Получает общую длину данных, достижимых через a CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferGetDataLength(_ theBuffer: CMBlockBuffer!) -> UInt

    Objective C

    size_t CMBlockBufferGetDataLength ( CMBlockBufferRef theBuffer );

    Параметры

    theBuffer

    CMBlockBuffer исследовать.

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

    Возвращает общую длину данных, доступную через это CMBlockBuffer, или нуль, если это пусто, NULL если недопустимый.

    Обсуждение

    Получает общую длину данных, достижимую через a CMBlockBuffer. Это общее количество является суммой dataLengths из CMBlockBuffer's memoryBlocks и буферные ссылки. Обратите внимание на то, что dataLengths части тех составляющих что это CMBlockBuffer подписывается на. Это CMBlockBuffer представляет непрерывный диапазон смещений от нуля до totalDataLength как возвращено этой подпрограммой.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Получает доступ к данным, представленным a CMBlockBuffer.

    Объявление

    Swift

    func CMBlockBufferGetDataPointer(_ theBuffer: CMBlockBuffer!, _ offset: UInt, _ lengthAtOffset: UnsafeMutablePointer<UInt>, _ totalLength: UnsafeMutablePointer<UInt>, _ dataPointer: UnsafeMutablePointer<UnsafeMutablePointer<Int8>>) -> OSStatus

    Objective C

    OSStatus CMBlockBufferGetDataPointer ( CMBlockBufferRef theBuffer, size_t offset, size_t *lengthAtOffset, size_t *totalLength, char **dataPointer );

    Параметры

    theBuffer

    CMBlockBuffer воздействовать на. Не должен быть NULL

    offset

    Смещение в диапазоне смещения буфера.

    lengthAtOffset

    По возврату, содержит объем данных, доступный при указанном смещении. Может быть NULL.

    totalLength

    По возврату, содержит общую длину данных буфера блоков (от смещения 0). Может быть NULL.

    dataPointer

    По возврату, содержит указатель на байт данных при указанном смещении; lengthAtOffset байты доступны в этом адресе. Может быть NULL.

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

    Возвраты kCMBlockBufferNoErr если данные были доступны при указанном смещении в данном CMBlockBuffer. Возвращает ошибку иначе.

    Обсуждение

    Получает доступ к данным, представленным a CMBlockBuffer. Указатель в блок памяти возвращается, который соответствует смещению в CMBlockBuffer. Если lengthAtOffset не NULL, число байтов, адресуемых в указателе, возвращается. Эта длина в смещении может быть меньшей, чем число байтов фактически доступный запуск при смещении если dataLength из CMBlockBuffer покрыт многократными блоками памяти (состоящее из нескольких несмежных участков CMBlockBuffer). Вызывающая сторона может выдержать сравнение (offset+lengthAtOffset) с totalLength определить ли все CMBlockBuffer был сослан и возможно ли это к доступу CMBlockBufferданные с непрерывной ссылкой. Указатель данных возвратился, останется допустимым пока оригинал CMBlockBuffer ссылается - один раз CMBlockBuffer выпущен в последний раз, любые указатели в него будут недопустимы.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Получает идентификатор типа CoreFoundation для CMBlockBuffer ввести.

    Объявление

    Swift

    func CMBlockBufferGetTypeID() -> CFTypeID

    Objective C

    CFTypeID CMBlockBufferGetTypeID ( void );

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

    Возвраты CFTypeID соответствие CMBlockBuffer.

    Обсуждение

    Получает идентификатор типа CoreFoundation для CMBlockBuffer ввести.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Определяет ли данный CMBlockBuffer пусто.

    Объявление

    Swift

    func CMBlockBufferIsEmpty(_ theBuffer: CMBlockBuffer!) -> Boolean

    Objective C

    Boolean CMBlockBufferIsEmpty ( CMBlockBufferRef theBuffer );

    Параметры

    theBuffer

    CMBlockBuffer исследовать. Не должен быть NULL.

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

    Ложь, если CMBlockBuffer NULL.

    Обсуждение

    Определяет ли данный CMBlockBuffer пусто, т.е. лишен любого memoryBlocks или CMBlockBuffer ссылки. Обратите внимание на то, что a CMBlockBuffer содержа еще не выделенный memoryBlock не считается пустым.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Определяет ли указанный диапазон в данном CMBlockBuffer непрерывно.

    Объявление

    Swift

    func CMBlockBufferIsRangeContiguous(_ theBuffer: CMBlockBuffer!, _ offset: UInt, _ length: UInt) -> Boolean

    Objective C

    Boolean CMBlockBufferIsRangeContiguous ( CMBlockBufferRef theBuffer, size_t offset, size_t length );

    Параметры

    theBuffer

    CMBlockBuffer исследовать. Не должен быть NULL.

    offset

    Смещение в диапазоне смещения буфера.

    length

    Желаемое число байтов к доступу при смещении. Если используется нуль, число байтов, доступных при смещении (dataLength – смещение), непрерывный или нет.

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

    Если указанный диапазон непрерывен в, возвращает true CMBlockBuffer, ложь иначе. Также возвращает false если CMBlockBuffer NULL или пустой.

    Обсуждение

    Определяет ли указанный диапазон в данном CMBlockBuffer непрерывно. Если CMBlockBufferGetDataPointer(), были вызваны с теми же параметрами, возвращенный указатель будет адресовать желаемое число байтов.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

  • Байты копий от данного блока памяти в a CMBlockBuffer, замена байтов в базовых блоках данных.

    Объявление

    Swift

    func CMBlockBufferReplaceDataBytes(_ sourceBytes: UnsafePointer<Void>, _ destinationBuffer: CMBlockBuffer!, _ offsetIntoDestination: UInt, _ dataLength: UInt) -> OSStatus

    Objective C

    OSStatus CMBlockBufferReplaceDataBytes ( const void *sourceBytes, CMBlockBufferRef destinationBuffer, size_t offsetIntoDestination, size_t dataLength );

    Параметры

    sourceBytes

    Блок памяти, с которого байты копируются в место назначения CMBlockBuffer.

    destinationBuffer

    CMBlockBuffer чей диапазон байтов будет заменен sourceBytes.

    offsetIntoDestination

    Смещение в месте назначения CMBlockBuffer в котором должна начаться замена.

    dataLength

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

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

    Возвраты kCMBlockBufferNoErr если замена, за которой следуют, возвращает ошибку иначе.

    Обсуждение

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

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

Типы данных

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

  • Ссылка на a CMBlockBuffer объект.

    Объявление

    Swift

    typealias CMBlockBufferRef = CMBlockBuffer

    Objective C

    typedef struct OpaqueCMBlockBuffer *CMBlockBufferRef;

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

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

    Объявление

    Swift

    typealias CMBlockBufferFlags = UInt32

    Objective C

    typedef uint32_t CMBlockBufferFlags;

    Обсуждение

    Для возможных значений посмотрите Флаги CMBlockBuffer.

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

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

    Объявление

    Swift

    struct CMBlockBufferCustomBlockSource { var version: UInt32 var AllocateBlock: CFunctionPointer<((UnsafeMutablePointer<Void>, UInt) -> UnsafeMutablePointer<Void>)> var FreeBlock: CFunctionPointer<((UnsafeMutablePointer<Void>, UnsafeMutablePointer<Void>, UInt) -> Void)> var refCon: UnsafeMutablePointer<Void> }

    Objective C

    typedef struct { uint32_t version; void *(*AllocateBlock)(void *refCon, size_t sizeInBytes); void (*FreeBlock)(void *refCon, void *doomedMemoryBlock, size_t sizeInBytes); void *refCon; } CMBlockBufferCustomBlockSource;

    Обсуждение

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

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

    Objective C

    @import CoreMedia;

    Swift

    import CoreMedia

    Доступность

    Доступный в OS X v10.7 и позже.

Константы

  • Обеспечивает пользовательскую блочную исходную версию, используемую в a CMBlockBuffer.

    Объявление

    Swift

    var kCMBlockBufferCustomBlockSourceVersion: Int { get }

    Objective C

    enum { kCMBlockBufferCustomBlockSourceVersion = 0 };

    Константы

    • kCMBlockBufferCustomBlockSourceVersion

      kCMBlockBufferCustomBlockSourceVersion

      Значение является блочной исходной версией.

      Доступный в OS X v10.7 и позже.

  • Флаги, управляющие способами поведения и функциями CMBlockBuffer APIs.

    Объявление

    Swift

    var kCMBlockBufferAssureMemoryNowFlag: Int { get } var kCMBlockBufferAlwaysCopyDataFlag: Int { get } var kCMBlockBufferDontOptimizeDepthFlag: Int { get } var kCMBlockBufferPermitEmptyReferenceFlag: Int { get }

    Objective C

    enum { kCMBlockBufferAssureMemoryNowFlag = (1L<<0), kCMBlockBufferAlwaysCopyDataFlag = (1L<<1), kCMBlockBufferDontOptimizeDepthFlag = (1L<<2), kCMBlockBufferPermitEmptyReferenceFlag = (1L<<3) };

    Константы

    • kCMBlockBufferAssureMemoryNowFlag

      kCMBlockBufferAssureMemoryNowFlag

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

      Доступный в OS X v10.7 и позже.

    • kCMBlockBufferAlwaysCopyDataFlag

      kCMBlockBufferAlwaysCopyDataFlag

      Используемый с CMBlockBufferCreateContiguous заставить его всегда производить выделенную копию желаемых данных.

      Доступный в OS X v10.7 и позже.

    • kCMBlockBufferDontOptimizeDepthFlag

      kCMBlockBufferDontOptimizeDepthFlag

      Переданный CMBlockBufferAppendBufferReference и CMBlockBufferCreateWithBufferReference подавить ссылочную оптимизацию глубины.

      Доступный в OS X v10.7 и позже.

    • kCMBlockBufferPermitEmptyReferenceFlag

      kCMBlockBufferPermitEmptyReferenceFlag

      Переданный CMBlockBufferAppendBufferReference и CMBlockBufferCreateWithBufferReference позволить ссылки в a CMBlockBuffer это еще не может быть заполнено.

      Доступный в OS X v10.7 и позже.

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

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

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

Значение

Описание

kCMBlockBufferNoErr

0

Указывает работу, завершенную успешно.

kCMBlockBufferStructureAllocationFailedErr

- 12700

Указывает это CMBlockBuffer- создание API получило отказ из CFAllocator предусмотренный CMBlockBuffer конструкция.

kCMBlockBufferBlockAllocationFailedErr

- 12701

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

kCMBlockBufferBadCustomBlockSourceErr

- 12702

Указывает что пользовательский блочный источник AllocateBlock() подпрограмма была NULL когда было опробовано выделение.

kCMBlockBufferBadOffsetParameterErr

- 12703

Указывает, что смещение, предоставленное для API, вне диапазона соответствующего CMBlockBuffer.

kCMBlockBufferBadLengthParameterErr

- 12704

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

kCMBlockBufferBadPointerParameterErr

- 12705

Указывает что параметр указателя (например, a CMBlockBuffer ссылка или целевая память), NULL или иначе недопустимый.

kCMBlockBufferEmptyBBufErr

- 12706

Указывает что пустое CMBlockBuffer был неожиданно получен.

kCMBlockBufferUnallocatedBlockErr

- 12707

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