Класс Aurora::StreamCamera::VideoEncoder
Видеокодер. Подробнее…
Подключение: | #include <streamcamera.h> |
Публичные функции
~VideoEncoder () = default |
|
virtual bool |
encode (std::shared_ptr< const StreamCamera::RawImageFrame > frame, bool forceSync)=0 |
virtual bool |
encode (std::shared_ptr< const StreamCamera::YCbCrFrame > frame, bool forceSync)=0 |
virtual std::string |
getParameter (VideoEncoderParameter param) const =0 |
virtual std::string |
getParameterRange (VideoEncoderParameter param) const =0 |
virtual std::vector< PixelFormat > |
getSupportedPixelFormats ()=0 |
virtual bool |
init ( VideoEncoderMetadata metadata)=0 |
virtual void |
setBitrate (uint32_t bps)=0 |
void |
setListener ( VideoEncoderListener * listener) |
virtual bool |
setParameter (VideoEncoderParameter param, const std::string & value)=0 |
Защищенные данные
VideoEncoderListener * |
m_encoderListener |
Подробное описание
Видеокодер.
Деструктор
~VideoEncoder() = default
Описание методов
bool encode(std::shared_ptr< const StreamCamera::RawImageFrame > frame, bool forceSync)
bool encode(std::shared_ptr< const StreamCamera::YCbCrFrame > frame, bool forceSync)
Начинает кодирование видеокадра.
Кодирование выполняется асинхронно, на некотором оборудовании для генерации закодированного кадра кодировщик должен получить несколько входных кадров для заполнения очереди кодирования. Кодировщик должен быть уничтожен для генерации события EOS.
Аргументы
- [in]
frame
— видеокадр для кодирования. - [in]
forceSync
— запрашивает у драйвера генерацию ключевого кадра.
Возвращает
True
, если кадр принимается для кодирования.
std::string getParameter(VideoEncoderParameter param) const
Возвращает текущее значение параметра.
Аргументы
- [in]
param
— индекс параметра.
Возвращает
Синтаксис возвращаемого значения для getParameter()
:
- "v";
- "(x,y,w,h)" для прямоугольника;
- пустая строка, если возникает ошибка.
std::string getParameterRange(VideoEncoderParameter param) const
Возвращает возможные значения параметра.
Аргументы
- [in]
param
— индекс параметра.
Возвращает
Синтаксис возвращаемого значения:
- "v1,v2,v3" для возможного набора значений, например "1,2" или "false,true";
- "v1-v10" для непрерывного значения, например "1-10" или "0.0-1.0" для значений с плавающей точкой;
- "v1,v2-v10" для дискретного значения;
- "-" для значения только для чтения;
- "x" для прямоугольника (значение "(x,y,w,h)");
- пустая строка, если возникает ошибка.
См. также
std::vector<PixelFormat> getSupportedPixelFormats()
Список поддерживаемых форматов пикселей.
Список отсортирован по предпочтениям кодека.
Возвращает
Список поддерживаемых форматов пикселей или пустой список в случае возникновения ошибки.
bool init(VideoEncoderMetadata metadata)
Инициализирует видеокодер.
После вызова метода кодировщик может использовать необработанные видеокадры.
Последующие вызовы VideoEncoder::init()
завершатся ошибкой.
Уничтожает объект кодировщика, чтобы остановить видеокодер и сгенерировать событие конца потока.
Возвращает
True, если видеокодер успешно инициализирован.
virtual void setBitrate(uint32_t bps)=0
Устанавливает битрейт кодировщика.
Может вызываться в любое время после вызова VideoEncoder:init()
.
Это полезно в режиме CBR, когда используется внешний алгоритм управления битрейтом.
void setListener(VideoEncoderListener * listener)
Установить обратные вызовы.
Аргументы
- [in]
listener
— объект с обратными вызовами.
bool setParameter(VideoEncoderParameter param, const std::string & value)
Устанавливает значение параметра.
Аргументы
- [in]
param
— индекс параметра. - [in]
value
:- "v" для дискретного или непрерывного значения;
- "(x,y,w,h)" для прямоугольника.
Возвращает
True
означает, что значение принято.
Поля
VideoEncoderListener * m_encoderListener
Используется в setListener()
.