Ссылка 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>>) -> OSStatusObjective 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) -> OSStatusObjective 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) -> OSStatusObjective 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!) -> OSStatusObjective 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>) -> OSStatusObjective 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>?>) -> OSStatusObjective 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>?>) -> OSStatusObjective C
OSStatus CMBlockBufferCreateEmpty ( CFAllocatorRef structureAllocator, uint32_t subBlockCapacity, CMBlockBufferFlags flags, CMBlockBufferRef *newBBufOut );
Параметры
structureAllocator
Средство выделения для использования для выделения
CMBlockBuffer
объект.NULL
заставит средство выделения по умолчанию использоваться.subBlockCapacity
Число подблоков новое
CMBlockBuffer
размещу, прежде чем расширение происходит. Значение нуля означает, «делают разумное значение по умолчанию».flags
Функция и флаги управления.
newBBufOut
Получает недавно создаваемый пустой
CMBlockBuffer
объект с сохраняет количество 1. Не должен бытьNULL
.Возвращаемое значение
Возвраты
kCMBlockBufferNoErr
в случае успеха.Обсуждение
Создает пустое
CMBlockBuffer
, т.е. тот, не имеющий никакого блока памяти, ни ссылки на aCMBlockBuffer
поставляющие байты к нему. Это готово быть заполненным с помощью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>?>) -> OSStatusObjective 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>?>) -> OSStatusObjective 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) -> OSStatusObjective 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!) -> UIntObjective 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>>) -> OSStatusObjective 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!) -> BooleanObjective C
Boolean CMBlockBufferIsEmpty ( CMBlockBufferRef theBuffer );
Параметры
theBuffer
CMBlockBuffer
исследовать. Не должен бытьNULL
.Возвращаемое значение
Ложь, если
CMBlockBuffer
NULL
.Обсуждение
Определяет ли данный
CMBlockBuffer
пусто, т.е. лишен любогоmemoryBlocks
илиCMBlockBuffer
ссылки. Обратите внимание на то, что aCMBlockBuffer
содержа еще не выделенныйmemoryBlock
не считается пустым.Оператор импорта
Objective C
@import CoreMedia;
Swift
import CoreMedia
Доступность
Доступный в OS X v10.7 и позже.
-
Определяет ли указанный диапазон в данном
CMBlockBuffer
непрерывно.Объявление
Swift
func CMBlockBufferIsRangeContiguous(_
theBuffer
: CMBlockBuffer!, _offset
: UInt, _length
: UInt) -> BooleanObjective 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) -> OSStatusObjective 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 };
Константы
-
Флаги, управляющие способами поведения и функциями 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
позволить ссылки в aCMBlockBuffer
это еще не может быть заполнено.Доступный в OS X v10.7 и позже.
-
Эта таблица приводит коды результата, определенные для CMBlockBuffer APIs.
Код результата |
Значение |
Описание |
---|---|---|
kCMBlockBufferNoErr |
0 |
Указывает работу, завершенную успешно. |
kCMBlockBufferStructureAllocationFailedErr |
- 12700 |
Указывает это |
kCMBlockBufferBlockAllocationFailedErr |
- 12701 |
Указывает, что средство выделения обеспечило для выделения блока памяти (в отличие от |
kCMBlockBufferBadCustomBlockSourceErr |
- 12702 |
Указывает что пользовательский блочный источник |
kCMBlockBufferBadOffsetParameterErr |
- 12703 |
Указывает, что смещение, предоставленное для API, вне диапазона соответствующего |
kCMBlockBufferBadLengthParameterErr |
- 12704 |
Указывает, что длина, предоставленная для API, вне диапазона соответствующего |
kCMBlockBufferBadPointerParameterErr |
- 12705 |
Указывает что параметр указателя (например, a |
kCMBlockBufferEmptyBBufErr |
- 12706 |
Указывает что пустое |
kCMBlockBufferUnallocatedBlockErr |
- 12707 |
Указывает, что встретились с освобожденным блоком памяти. |