Документация
ОС Аврора 5.2.0

Класс VideoDecoder (абстрактный)

Видеодекодер. Подробнее…

Подключение: #include <streamcamera-codec.h>

Публичные функции

virtual bool init (VideoDecoderMetadata metadata)=0
Инициализирует видеокодер.
virtual std::vector<PixelFormat > getSupportedPixelFormats ()=0
virtual bool decode (const uint8_t *data, size_t size, uint64_t timestampUs, FrameType frameType, void(*releaseCallback)(void *), void *releaseCallbackData)=0
Декодирует видеокадр.
virtual void flush ()=0
Очищает очередь видеодекодера.
virtual void drain ()=0
Сбрасывает очередь видеодекодера.
virtual void stop ()=0
Останавливает декодер.
virtual std::string getParameterRange (VideoDecoderParameter param) const =0
Возвращает возможные значения параметра.
virtual std::string getParameter (VideoDecoderParameter param) const =0
Возвращает текущее значение параметра.
virtual bool setParameter (VideoDecoderParameter param, const std::string &value)=0
Устанавливает значение параметра.
void setListener (VideoDecoderListener *listener)
Устанавливает обратные вызовы.
void lockAndSetListener (VideoDecoderListener *listener)
Устанавливает обратные вызовы.
virtual const VideoCodecInfo & getInfo () const =0
Получает основную информацию о кодеке.
virtual std::shared_ptr<VideoCodecExtendedInfo > getExtendedInfo () const =0
Получает расширенную информацию о кодеке.
virtual bool supports (const VideoDecoderMetadata &meta) const =0
Проверяет, поддерживает ли декодер видеопоток с заданными параметрами.

Защищённые атрибуты

VideoDecoderListener * m_decoderListener = nullptr
std::recursive_mutex m_decoderListenerMutex

Подробное описание

Видеодекодер.

Описание функций-членов

decode()

virtual bool Aurora::StreamCamera::VideoDecoder::decode (const uint8_t * data, size_tsize, uint64_ttimestampUs, FrameType frameType, void(*)(void *) releaseCallback, void * releaseCallbackData) pure virtual

Декодирует видеокадр.

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

Параметры

[in] data Указатель на закодированный элемент видеопотока.
[in] size Размер закодированного элемента видеопотока.
[in] timestampUs Временная метка видеокадра.
[in] frameType Тип кадра, если известен, иначе FrameType::Delta
[in] releaseCallback Метод вызывается, когда данные в памяти больше не нужны.
[in] releaseCallbackData Параметр releaseCallback.

getExtendedInfo()

virtual std::shared_ptr<VideoCodecExtendedInfo > Aurora::StreamCamera::VideoDecoder::getExtendedInfo () const pure virtual

Получает расширенную информацию о кодеке.

VideoCodecExtendedInfo может содержать умный указатель на кодек и предотвращать его уничтожение.

Возвращает VideoCodecExtendedInfo

Начиная с v1.5.0

getInfo()

virtual const VideoCodecInfo & Aurora::StreamCamera::VideoDecoder::getInfo () const pure virtual

Получает основную информацию о кодеке.

Возвращает VideoCodecInfo

Начиная с v1.5.0

getParameter()

virtual std::string Aurora::StreamCamera::VideoDecoder::getParameter (VideoDecoderParameter param) const pure virtual

Возвращает текущее значение параметра.

Параметры

[in] param Индекс параметра.

Возвращает cинтаксис возвращаемого значения для функции getParameter():

  • "v";
  • "(x,y,w,h)" для прямоугольника;
  • пустая строка, если возникает ошибка.

getParameterRange()

virtual std::string Aurora::StreamCamera::VideoDecoder::getParameterRange (VideoDecoderParameter param) const pure virtual

Возвращает возможные значения параметра.

Параметры

[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)");
  • пустая строка, если возникает ошибка.

См. также Camera::getParameterRange

getSupportedPixelFormats()

virtual std::vector<PixelFormat > Aurora::StreamCamera::VideoDecoder::getSupportedPixelFormats () pure virtual

Возвращает список поддерживаемых форматов пикселей или пустой список в случае возникновения ошибки. Список отсортирован по предпочтениям кодека.

init()

virtual bool Aurora::StreamCamera::VideoDecoder::init (VideoDecoderMetadata metadata) pure virtual

Инициализирует видеокодер.

После вызова метода декодер может принимать закодированные видеокадры. Последующие вызовы VideoDecoder::init() завершатся ошибкой. Уничтожает объект декодера, чтобы остановить видеодекодер и сгенерировать событие конца потока.

Возвращает true, если видеодекодер успешно инициализирован.

lockAndSetListener()

void Aurora::StreamCamera::VideoDecoder::lockAndSetListener (VideoDecoderListener * listener)

Устанавливает обратные вызовы.

Потокобезопасная версия функции setListener.

Поток, вызывающий эту функцию, будет заблокирован, если в данный момент выполняется обратный вызов.

Параметры

[in] listener Объект с обратными вызовами. Следует задать nullptr для сброса перед уничтожением слушателя.

setListener()

void Aurora::StreamCamera::VideoDecoder::setListener (VideoDecoderListener * listener) inline

Устанавливает обратные вызовы.

Устарел:
Не следует использовать в недавно созданном коде. Вместо него рекомендуется использовать VideoDecoder::lockAndSetListener.

Параметры

[in] listener Объект с обратными вызовами.

setParameter()

virtual bool Aurora::StreamCamera::VideoDecoder::setParameter (VideoDecoderParameter param, const std::string & value) pure virtual

Устанавливает значение параметра.

Параметры

[in] param Индекс параметра.
[in] value "v" для дискретного или непрерывного значения
"(x,y,w,h)" для прямоугольника;

Возвращает true, если значение принято.

supports()

virtual bool Aurora::StreamCamera::VideoDecoder::supports (const VideoDecoderMetadata & meta) const pure virtual

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

Параметры

[in] meta Метаданные видеопотока. Необходимо установить значения равными 0, если они не важны.

Возвращает true, если декодер поддерживает видеопоток с заданными параметрами.

Начиная с v1.5.0

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.