QTSampleBuffer
Этот класс обеспечивает данные о формате, информацию синхронизации и метаданные по демонстрационным буферам носителей. QTSampleBuffer
объекты содержат данные от выборок носителей, а также метаданных о тех выборках, включая данные о формате, информацию синхронизации и другие атрибуты. К некоторой расширенной информации можно получить доступ через QTSampleBuffer attributeForKey:
и sampleBufferAttributes
методы, с помощью ключей описаны в разделе Constants. В дополнение к этим явным методам приложения могут использовать кодирование значения ключа для получения расширенных атрибутов. Для объекта, поддерживающего данный атрибут, valueForKey:
будет функционально идентично attributeForKey:
. Приложения, желающие наблюдать изменения для данного атрибута, могут добавить наблюдателя значения ключа, где ключевой путь является ключом атрибута.
Оператор импорта
Swift
import QTKit
Objective C
@import QTKit;
Доступность
Доступный в QuickTime 7.2.1 и позже.
-
attributeForKey: - attributeForKey:
(OS X v10.9)Возвращает демонстрационный буферный атрибут для данного ключа.
Объявление
Objective C
- (id)attributeForKey:(NSString *)
key
Параметры
key
Ключ возвращенного атрибута. Ключи атрибута описаны в разделе Sample Buffer Attributes.
Возвращаемое значение
Объект для данного ключа атрибута, или
NIL
если демонстрационный буфер не имеет данного атрибута.Обсуждение
Используйте этот метод для получения атрибутов демонстрационного буфера. Ключи, которые могут использоваться с этим методом, описаны в разделе Constants. Приложения с помощью кодирования значения ключа могут также получить атрибут для данного ключа путем передачи того ключа NSObject
valueForKey:
метод.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
audioBufferListWithOptions: - audioBufferListWithOptions:
(OS X v10.9)Возвращает указатель на Core Audio
AudioBufferList
содержание аудиоданных принадлежит получателю.Объявление
Objective C
- (AudioBufferList *)audioBufferListWithOptions:(QTSampleBufferAudioBufferListOptions)
options
Параметры
options
Битовое поле, содержащее опции, определяющие, какой аудио буферный список будет возвращен. Константы опций, которые могут быть объединены с помощью поразрядного или оператора, описаны как часть
QTSampleBufferAudioBufferListOptions
ввести.Возвращаемое значение
Указатель на
AudioBufferList
структура. Этот указатель и его связанные аудио буферы останутся допустимыми, пока получатель допустим и значение, возвращенноеsampleUseCount
больше тогда 0.Обсуждение
Этот метод возвращает указатель на Core Audio
AudioBufferList
содержа все аудиоданные в демонстрационном буфере.AudioBufferList
может тогда быть передан Core Audio APIs для рендеринга и обработки аудио. ВозвращенныйAudioBufferList
будет допустимо столько, сколько получатель допустим и значение, возвращенноеsampleUseCount
не был постепенно уменьшен к 0. Клиенты, передающиеAudioBufferList
к аудиоустройству должен включатьQTSampleBufferAudioBufferListOptionAssure16ByteAlignment
флаг в параметре опций. Этот метод бросит NSInternalInconsistencyException, если вызвано послеdecrementSampleUseCount
использовался для лишения законной силы данных носителей, содержавшихся в демонстрационном буфере.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
bytesForAllSamples - bytesForAllSamples
(OS X v10.9)Возвращает указатель на байты данных носителей, содержавшихся в демонстрационном буфере.
Объявление
Objective C
- (void *)bytesForAllSamples
Возвращаемое значение
Указатель на буфер данных носителей.
Обсуждение
Этот метод возвращает указатель на данные для выборок носителей, содержавших в демонстрационном буфере. Клиенты, читающие байты из этого указателя, должны проверить общую длину буферного использования
lengthForAllSamples
. Приложения могут интерпретировать данные носителей, возвращенные этим методом с помощью infomation от демонстрационного буфераformatDescription
. Этот метод бросит NSInternalInconsistencyException, если вызвано послеdecrementSampleUseCount
использовался для лишения законной силы данных носителей, содержавшихся в демонстрационном буфере.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
decodeTime - decodeTime
(OS X v10.9)Возвращает время декодирования буфера.
Объявление
Objective C
- (QTTime)decodeTime
Возвращаемое значение
A
QTTime
представление времени декодирования буфера. Для носителей видео B-кадра время декодирования может отличаться отpresentationTime
.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
decrementSampleUseCount - decrementSampleUseCount
(OS X v10.9)Постепенно уменьшает количество использования демонстрационных данных, принадлежавших получателю, позволяя демонстрационным данным быть лишенным законной силы после соответствующего вызова к
incrementSampleUseCount
.Объявление
Objective C
- (void)decrementSampleUseCount
Обсуждение
Когда буферы потенциально памяти большой емкости, принадлежавшие получателю, освобождены, этот метод позволяет клиентам управлять. Недавно выделенный
QTSampleBuffer
имеет демонстрационное количество использования 1. Когда демонстрационное количество использования спадет 0, память, выделенная для выборок, будет освобождена иbytesForAllSamples
,lengthForAllSamples
, иaudioBufferListWithOptions:
методы каждый бросят NSInternalInconsistencyException, когда вызвано.Этот метод походит на метод выпуска NSObject, в котором он позволяет клиентам оставлять владение по данным, содержавшим в демонстрационном буфере. В частности вызвавшие клиенты
incrementSampleUseCount
потому что они интересовались демонстрационными даннымиQTSampleBuffer
объекты, возвращенные другим APIs в QTKit, должны вызвать этот метод, когда им больше не нужны те данные. Особенно важно, чтобы клиенты, использующие сборку «мусора», гарантировали, что демонстрационное количество использования 0, когда они больше не требуют демонстрационных данных, принадлежавших aQTSampleBuffer
, так, чтобы память могла быть освобождена быстро скорее чем, когда завершен объект.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
продолжительность - продолжительность
(OS X v10.9)Возвращает продолжительность буфера.
Объявление
Objective C
- (QTTime)duration
Возвращаемое значение
A
QTTime
представление продолжительности буфера.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
formatDescription - formatDescription
(OS X v10.9)Возвращает описание формата буфера.
Объявление
Objective C
- (QTFormatDescription *)formatDescription
Возвращаемое значение
A
QTFormatDescription
объект, описывающий формат носителя буфера.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
Получает массив Core Audio AudioStreamPacketDescriptions, описывающий продолжительности выборок в переменных буферах аудио скорости передачи.
Объявление
Objective C
- (BOOL)getAudioStreamPacketDescriptions:(AudioStreamPacketDescription *)
audioStreamPacketDescriptions
inRange:(NSRange)range
Параметры
audioStreamPacketDescriptions
Массив Core Audio структуры AudioStreamPacketDescription, выделенные, чтобы быть достаточно большим для адаптации числу описаний пакета, обозначенных диапазоном.
range
Диапазон описаний пакета для использования при заполнении массива. Если диапазон выходит за пределы числа выборок, возвращенных
numberOfSamples
, этот метод повышает NSRangeException.Возвращаемое значение
Если буфер содержит аудио с переменной скоростью передачи, этот метод заполняется
audioStreamPacketDescriptions
сAudioStreamPacketDescription
структуры и возвратыYES
true
. Если буфер содержит единственное аудио скорости передачи, этот метод возвратыNO
false
и листыaudioStreamPacketDescriptions
нетронутый.Обсуждение
Приложения, которые должны обработать отдельные пакеты аудио с переменной скоростью передачи от буфера, должны вызвать этот метод для определения продолжительности каждой выборки в буфере. Если этот метод вызывается на a, этот метод повышает NSInternalInconsistencyException
QTSampleBuffer
объект, не описывающий буфер аудиосэмпла.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
incrementSampleUseCount - incrementSampleUseCount
(OS X v10.9)Постепенно увеличивает количество использования демонстрационных данных, принадлежавших получателю, препятствуя тому, чтобы демонстрационные данные были лишены законной силы до соответствующего вызова к
decrementSampleUseCount
.Объявление
Objective C
- (void)incrementSampleUseCount
Обсуждение
Когда буферы потенциально памяти большой емкости, принадлежавшие получателю, освобождены, этот метод позволяет клиентам управлять. Недавно выделенный
QTSampleBuffer
имеет демонстрационное количество использования 1. Когда демонстрационное количество использования спадет 0, память, выделенная для выборок, будет освобождена иbytesForAllSamples
,lengthForAllSamples
, иaudioBufferListWithOptions:
методы каждый бросят NSInternalInconsistencyException, когда вызвано.Этот метод походит
NSObject
сохраните метод, в котором это позволяет клиентам объявлять владение по данным, содержавшим в демонстрационном буфере. В частности клиенты заинтересовали демонстрационными даннымиQTSampleBuffer
объекты, возвращенные другим APIs в QTKit, должны вызвать этот метод, чтобы гарантировать, чтобы у них были доступ к демонстрационным данным и более поздний вызовdecrementSampleUseCount
когда им больше не нужны те данные. Особенно важно, чтобы клиенты, использующие сборку «мусора», гарантировали, что демонстрационное количество использования 0, когда они больше не требуют демонстрационных данных, принадлежавших aQTSampleBuffer
, так, чтобы память могла быть освобождена быстро скорее чем, когда завершен объект.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
lengthForAllSamples - lengthForAllSamples
(OS X v10.9)Возвращает длину буфера, возвращенного
bytesForAllSamples
.Объявление
Objective C
- (NSUInteger)lengthForAllSamples
Возвращаемое значение
Длина, в байтах буфера, возвращенного
bytesForAllSamples
.Обсуждение
Клиенты, читающие байты из указателя, возвращенного
bytesForAllSamples
должен использовать этот метод для проверки общей длины буфера. Этот метод бросит NSInternalInconsistencyException, если вызвано послеdecrementSampleUseCount
использовался для лишения законной силы данных носителей, содержавшихся в демонстрационном буфере.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
numberOfSamples - numberOfSamples
(OS X v10.9)Возвращает число выборок носителей, содержавшихся в буфере.
Объявление
Objective C
- (NSUInteger)numberOfSamples
Возвращаемое значение
Число выборок в буфере.
Обсуждение
В целом видео буферы будут всегда содержать одну выборку (единственный кадр), в то время как аудио буферы могут содержать многократные выборки. Приложения, которые должны интерпретировать аудио с переменной скоростью передачи, могут получить отдельные демонстрационные длины с
getAudioStreamPacketDescriptions:inRange:
метод.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
presentationTime - presentationTime
(OS X v10.9)Возвращает время представления буфера.
Объявление
Objective C
- (QTTime)presentationTime
Возвращаемое значение
A
QTTime
представление времени представления буфера. Для носителей видео B-кадра время представления может отличаться отdecodeTime
.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
sampleBufferAttributes - sampleBufferAttributes
(OS X v10.9)Возвращает словарь текущего attirbutes демонстрационного буфера.
Объявление
Objective C
- (NSDictionary *)sampleBufferAttributes
Возвращаемое значение
Словарь атрибутов, присоединенных к демонстрационному буферу. Ключи атрибута описаны в разделе Constants, обсуждающем атрибуты.
Обсуждение
Приложения могут использовать этот метод для определения то, что приписывает определенный демонстрационный буфер поддержки.
Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
sampleUseCount - sampleUseCount
(OS X v10.9)Возвращает количество использования демонстрационных данных, принадлежавших получателю.
Объявление
Objective C
- (NSUInteger)sampleUseCount
Возвращаемое значение
Количество использования демонстрационных данных принадлежит получателю.
Обсуждение
Этот метод возвращает количество использования данных, принадлежавших получателю, как определено купите число вызовов
incrementSampleUseCount
иdecrementSampleUseCount
. Если значение retunred этим методом 0, то данные, принадлежавшие получателю, были лишены законной силы иbytesForAllSamples
,lengthForAllSamples
, иaudioBufferListWithOptions:
методы wil бросают NSInternalInconsistencyException. Клиенты должны редко должны быть вызвать этот метод. Это обычно только полезно для отладки целей.Оператор импорта
Objective C
@import QTKit;
Доступность
OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
Следующее является константами для различных демонстрационных буферных атрибутов.
Объявление
Objective C
NSString * const QTSampleBufferHostTimeAttribute; NSString * const QTSampleBufferSMPTETimeAttribute NSString * const QTSampleBufferSceneChangeTypeAttribute; NSString * const QTSampleBufferDateRecordedAttribute; NSString * const QTSampleBufferExplicitSceneChange; NSString * const QTSampleBufferTimeStampDiscontinuitySceneChange;
Константы
-
QTSampleBufferHostTimeAttribute
QTSampleBufferHostTimeAttribute
Если буфер из оперативного источника, возвращает время узла буфера.
Значение, возвращенное этим атрибутом, может быть по сравнению с возвращаемым значением
CVGetCurrentHostTime()
илиAudioGetCurrentHostTime()
определить, слишком опаздывает ли это в буфер, который будет обработан в режиме реального времени. ЗначениеNSNumber
интерпретируемый как UInt64. Это строковое значение может использоваться по ключевым путям для кодирования значения ключа, наблюдения значения ключа и привязки.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
QTSampleBufferSMPTETimeAttribute
QTSampleBufferSMPTETimeAttribute
Возвращает временной код SMPTE демонстрационного буфера, если это имеет тот.
Значение
NSValue
интерпретируемый как aSMPTETime
(определенный вCoreAudio/CoreAudioTypes.h
). Это строковое значение может использоваться по ключевым путям для кодирования значения ключа, наблюдения значения ключа и привязки.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
QTSampleBufferSceneChangeTypeAttribute
QTSampleBufferSceneChangeTypeAttribute
Если буфер отмечает изменение сцены во входном содержании, возвращает константу.
Возвращенная константа указывает тип изменения сцены. Это строковое значение может использоваться по ключевым путям для кодирования значения ключа, наблюдения значения ключа и привязки.
Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
QTSampleBufferDateRecordedAttribute
QTSampleBufferDateRecordedAttribute
Возвращает дату, на которую носители в буфере был первоначально зарегистрирован.
Значение
NSDate
. Это строковое значение может использоваться по ключевым путям для кодирования значения ключа, наблюдения значения ключа и привязки.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
QTSampleBufferExplicitSceneChange
QTSampleBufferExplicitSceneChange
Указывает, что изменение сцены было явно отмечено в метаданных демонстрационного буфера.
Эта константа возвращается
QTSampleBufferSceneChangeTypeAttribute
указание, какое изменение сцены, если таковые имеются, отмечено демонстрационным буфером.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-
QTSampleBufferTimeStampDiscontinuitySceneChange
QTSampleBufferTimeStampDiscontinuitySceneChange
Указывает, что сцена изменилась вследствие разрыва в метках времени между текущим демонстрационным буфером и предыдущим демонстрационным буфером.
Эта константа возвращается
QTSampleBufferSceneChangeTypeAttribute
указание, какая сцена chnage, если таковые имеются, отмечена демонстрационным буфером.Доступный в OS X v10.5 и позже.
Осуждаемый в OS X v10.9.
-