Ссылка 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 );Параметры
theBufferCMBlockBufferвоздействовать на. Не должен бытьNULL.offsetСмещение в
CMBlockBuffer'sдиапазон смещения.lengthЖелаемое число байтов к доступу при смещении.
temporaryBlockЧасть памяти, которая, как предполагают, была, по крайней мере,
lengthбайты в размере. Не должен бытьNULLreturnedPointerПолучает
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будет добавлен. Не должен бытьNULLmemoryBlockБлок памяти для содержания буферизованных данных. Если
NULL, блок памяти будет выделен при необходимости (через вызов кCMBlockBufferAssureBlockMemory()) использование предоставленногоblockAllocatorилиcustomBlockSource. Если не-NULL, блок будет использоваться и будет освобожден когдаCMBlockBufferзавершен (т.е. выпущен в последний раз).blockLengthПолная длина блока памяти в байтах. Не должен быть нуль. Это - размер предоставленного
memoryBlockили размер, чтобы выделить, еслиmemoryBlockNULL.blockAllocatorСредство выделения, которое будет использоваться для выделения
memoryBlock, еслиmemoryBlockNULL. Если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 );Параметры
theBufferCMBlockBufferвоздействовать на. Не должен быть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заставит средство выделения по умолчанию использоваться.sourceBufferCMBlockBufferот которого данные будут скопированы или сосланы. Не должен бытьNULLни пустой.blockAllocatorСредство выделения, которое будет использоваться для выделения блока памяти, если должна быть сделана непрерывная копия данных. Передача
NULLзаставит средство выделения по умолчанию (как установлено во время вызова) использоваться.customBlockSourceЕсли не-NULL, это будет использоваться для выделения и освобождения от блока памяти (
blockAllocatorпараметр проигнорирован). Если предоставленный, и параметрkCMBlockBufferAlwaysCopyDataFlagустановлен,customBlockSource’sAllocateBlock()подпрограммой должен быть не-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Байт данных, которым можно заполнить целевой буфер.
destinationBufferCMBlockBufferв который байты данных заполнены.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 );Параметры
theBufferCMBlockBufferисследовать.Возвращаемое значение
Возвращает общую длину данных, доступную через это
CMBlockBuffer, или нуль, если это пусто,NULLесли недопустимый.Обсуждение
Получает общую длину данных, достижимую через a
CMBlockBuffer. Это общее количество является суммойdataLengthsизCMBlockBuffer'smemoryBlocks и буферные ссылки. Обратите внимание на то, что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 );Параметры
theBufferCMBlockBufferвоздействовать на. Не должен бытьNULLoffsetСмещение в диапазоне смещения буфера.
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() -> CFTypeIDObjective 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 );Параметры
theBufferCMBlockBufferисследовать. Не должен бытьNULL.Возвращаемое значение
Ложь, если
CMBlockBufferNULL.Обсуждение
Определяет ли данный
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 );Параметры
theBufferCMBlockBufferисследовать. Не должен бытьNULL.offsetСмещение в диапазоне смещения буфера.
lengthЖелаемое число байтов к доступу при смещении. Если используется нуль, число байтов, доступных при смещении (dataLength – смещение), непрерывный или нет.
Возвращаемое значение
Если указанный диапазон непрерывен в, возвращает true
CMBlockBuffer, ложь иначе. Также возвращает false еслиCMBlockBufferNULLили пустой.Обсуждение
Определяет ли указанный диапазон в данном
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.destinationBufferCMBlockBufferчей диапазон байтов будет заменен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 = CMBlockBufferObjective C
typedef struct OpaqueCMBlockBuffer *CMBlockBufferRef;Оператор импорта
Objective C
@import CoreMedia;Swift
import CoreMediaДоступность
Доступный в OS X v10.7 и позже.
-
Введите используемый для параметров, содержащих
CMBlockBufferфункция и флаги управления.Объявление
Swift
typealias CMBlockBufferFlags = UInt32Objective 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) };Константы
-
kCMBlockBufferAssureMemoryNowFlagkCMBlockBufferAssureMemoryNowFlagКогда передано подпрограммам, принимающим блочные средства выделения, заставляет блок памяти быть сразу выделенным.
Доступный в OS X v10.7 и позже.
-
kCMBlockBufferAlwaysCopyDataFlagkCMBlockBufferAlwaysCopyDataFlagИспользуемый с
CMBlockBufferCreateContiguousзаставить его всегда производить выделенную копию желаемых данных.Доступный в OS X v10.7 и позже.
-
kCMBlockBufferDontOptimizeDepthFlagkCMBlockBufferDontOptimizeDepthFlagПереданный
CMBlockBufferAppendBufferReferenceиCMBlockBufferCreateWithBufferReferenceподавить ссылочную оптимизацию глубины.Доступный в OS X v10.7 и позже.
-
kCMBlockBufferPermitEmptyReferenceFlagkCMBlockBufferPermitEmptyReferenceFlagПереданный
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 |
Указывает, что встретились с освобожденным блоком памяти. |
