Класс Camera (абстрактный)
Камера. Подробнее…
| Подключение: | #include <streamcamera.h> |
Публичные функции
| virtual bool | getInfo (CameraInfo &info)=0 Возвращает информацию о камере. |
| virtual std::vector<PixelFormat > | getSupportedPixelFormats ()=0 |
| virtual bool | startCapture (const CameraCapability &cap, PixelFormat format=PixelFormat::YCbCrFlexible)=0 Начинает захват. |
| virtual bool | stopCapture ()=0 Останавливает захват. |
| virtual bool | captureStarted () const =0 Проверяет, работает ли камера. |
| virtual std::string | getParameterRange (CameraParameter param)=0 Возвращает возможные значения параметра. |
| virtual std::string | getParameter (CameraParameter param)=0 Возвращает текущее значение параметра. |
| virtual bool | setParameter (CameraParameter param, const std::string &value)=0 Устанавливает значение параметра. |
| virtual void | setListener (CameraListener *listener) Устанавливает обратные вызовы. |
| virtual std::vector<PixelFormatDescription > | getSupportedFormats ()=0 Возвращает список поддерживаемых форматов пикселей c дополнительной информацией. |
| virtual bool | isFormatSupported (const PixelFormatDescription &formatDesc)=0 Проверяет, поддерживается ли формат с учетом дополнительной информации. |
| virtual bool | isFormatSupported (PixelFormat pixelFormat)=0 Проверяет, поддерживается ли формат. |
| virtual bool | queryCapabilityRanges (PixelFormat format, CameraCapabilityRanges &capRanges)=0 Запрашивает диапазоны возможностей камеры для указанного формата. |
| virtual bool | findClosestCapability (PixelFormat format, const CameraCapabilityEx &desired, CameraCapabilityEx &found, CameraCapabilityPriority priorityHint=CameraCapabilityPriority::WidthHeightFps)=0 Находит наиболее близкие поддерживаемые параметры изображения для указанного формата. |
| virtual bool | startCapture (const CameraCapabilityEx &cap, PixelFormat format=PixelFormat::YCbCrFlexible)=0 Начинает захват. |
| virtual bool | queryCapabilities (std::vector<CameraCapability > &caps)=0 Запрашивает параметры видеопотока, поддерживаемые камерой. |
Защищённые атрибуты
| CameraListener * | m_cameraListener = nullptr |
| std::recursive_mutex | m_cameraListenerMutex |
Подробное описание
Камера.
Описание функций-членов
captureStarted()
| virtual bool Aurora::StreamCamera::Camera::captureStarted () const | pure virtual |
Проверяет, работает ли камера.
Возвращает true, если камера работает, иначе false.
findClosestCapability()
| virtual bool Aurora::StreamCamera::Camera::findClosestCapability (PixelFormat format, const CameraCapabilityEx & desired, CameraCapabilityEx & found, CameraCapabilityPriority priorityHint = CameraCapabilityPriority::WidthHeightFps) | pure virtual |
Находит наиболее близкие поддерживаемые параметры изображения для указанного формата.
Параметры
| [in] | format | Формат, для которого подбираются настройки видеопотока. |
| [in] | desired | Желаемые настройки видеопотока. |
| [out] | found | Желаемые настройки видеопотока. |
| [in] | priorityHint | Приоритет полей настроек. |
Возвращает true при успешном выполнении и false в противном случае. found в последнем случае не
изменяется.
Начиная с v1.7.0
getInfo()
| virtual bool Aurora::StreamCamera::Camera::getInfo (CameraInfo & info) | pure virtual |
Возвращает информацию о камере.
Параметры
| [out] | info | Ссылка на структуру CameraInfo для заполнения. |
Возвращает true, если информация о камере была успешно прочитана.
getParameter()
| virtual std::string Aurora::StreamCamera::Camera::getParameter (CameraParameter param) | pure virtual |
Возвращает текущее значение параметра.
Параметры
| [in] | param | Индекс параметра. |
Возвращает cинтаксис возвращаемого значения для функции getParameter():
- "v";
- "(x,y,w,h)" для прямоугольника;
- пустая строка, если возникает ошибка.
getParameterRange()
| virtual std::string Aurora::StreamCamera::Camera::getParameterRange (CameraParameter param) | pure virtual |
Возвращает возможные значения параметра.
Параметры
| [in] | param | Индекс параметра. |
Возвращает cинтаксис возвращаемого значения для функции getParameterRange():
-
"v1,v2,v3" для возможного набора значений, например "1,2" или "false,true"
Пример на C++20 анализа дискретного диапазона гипотетического DiscreteInt:#include <string> #include <vector> #include <iostream> std::vector<std::string> split(std::string in) { std::vector<std::string> tokens; if (in.length() == 0) return {}; std::size_t start = 0, end = 0; for (auto v : in) { if (v == ',') { tokens.push_back(in.substr(start, end - start)); start = end + 1; } end++; } if (start != end) tokens.push_back(in.substr(start, end - start)); return tokens; } std::vector<int> convert(std::vector<std::string> in) { std::vector<int> result; for (auto v : in) result.push_back(std::stoi(v)); return result; } ... std::string range = camera.getParameterRange(CameraParameter::DiscreteInt); std::vector<int> rangeInt = convert(split(range)); -
"v1-v10" для непрерывного значения, например "1-10" или "0,0-1,0" для значений с плавающей точкой.
Пример парсинга такого диапазона для гипотетического FloatValue:float minValue, maxValue; std::string range = camera->getParameterRange(CameraParameter::FloatValue); bool success = sscanf(range.c_str(), "%f-%f, &minV, &maxV) == 2; -
"-" для значения только для чтения;
-
"x" для прямоугольника (значение "(x,y,w,h)");
-
пустая строка, если возникает ошибка.
getSupportedFormats()
| virtual std::vector<PixelFormatDescription > Aurora::StreamCamera::Camera::getSupportedFormats () | pure virtual |
Возвращает список поддерживаемых форматов пикселей c дополнительной информацией.
Возвращает список поддерживаемых форматов пикселей или пустой список в случае возникновения ошибки. Список отсортирован по предпочтениям кодека.
Начиная с v1.7.0
getSupportedPixelFormats()
| virtual std::vector<PixelFormat > Aurora::StreamCamera::Camera::getSupportedPixelFormats () | pure virtual |
Возвращает список поддерживаемых форматов пикселей или пустой список в случае возникновения ошибки. Список отсортирован по предпочтениям кодека.
isFormatSupported() [1/2]
| virtual bool Aurora::StreamCamera::Camera::isFormatSupported (const PixelFormatDescription & formatDesc) | pure virtual |
Проверяет, поддерживается ли формат с учетом дополнительной информации.
Начиная с v1.7.0
isFormatSupported() [2/2]
| virtual bool Aurora::StreamCamera::Camera::isFormatSupported (PixelFormat pixelFormat) | pure virtual |
Проверяет, поддерживается ли формат.
Начиная с v1.7.0
queryCapabilities()
| virtual bool Aurora::StreamCamera::Camera::queryCapabilities (std::vector<CameraCapability > & caps) | pure virtual |
Запрашивает параметры видеопотока, поддерживаемые камерой.
Параметры
| [out] | caps | Ссылка на список структур CameraCapability для заполнения. |
Возвращает true, если поддерживаемые форматы были успешно прочитаны.
Начиная с v1.7.0
queryCapabilityRanges()
| virtual bool Aurora::StreamCamera::Camera::queryCapabilityRanges (PixelFormat format, CameraCapabilityRanges & capRanges) | pure virtual |
Запрашивает диапазоны возможностей камеры для указанного формата.
Параметры
| [in] | format | Формат, для которого подбираются настройки видеопотока. |
| [out] | capRanges | Ссылка на список структур CameraCapabilityRanges для заполнения. |
Возвращает true в случае успеха и false в противном случае, включая случай, когда функция не
поддерживается.
Начиная с v1.7.0
setListener()
| virtual void Aurora::StreamCamera::Camera::setListener (CameraListener * listener) | inlinevirtual |
Устанавливает обратные вызовы.
Поток, вызывающий эту функцию, будет заблокирован, если в данный момент выполняется обратный вызов.
Параметры
| [in] | listener | Объект с обратными вызовами. Следует задать nullptr для сброса перед уничтожением слушателя. |
setParameter()
| virtual bool Aurora::StreamCamera::Camera::setParameter (CameraParameter param, const std::string & value) | pure virtual |
Устанавливает значение параметра.
Параметры
| [in] | param | Индекс параметра. |
| [in] | value | "v" для дискретного или непрерывного значения "(x,y,w,h)" для прямоугольника; |
Возвращает true, если значение принято.
startCapture() [1/2]
| virtual bool Aurora::StreamCamera::Camera::startCapture (const CameraCapability & cap, PixelFormat format = PixelFormat::YCbCrFlexible ) | pure virtual |
Начинает захват.
Параметры
| [in] | cap | Параметры видеопотока. |
| [in] | format | Желаемый формат пикселей для графических буферов. |
Возвращает true, если камера успешно запущена, иначе false.
startCapture() [2/2]
| virtual bool Aurora::StreamCamera::Camera::startCapture (const CameraCapabilityEx & cap, PixelFormat format = PixelFormat::YCbCrFlexible ) | pure virtual |
Начинает захват.
Параметры
| [in] | cap | Параметры видеопотока. |
| [in] | format | Желаемый формат пикселей для графических буферов. |
Возвращает true, если камера успешно запущена, иначе false.
Начиная с v1.7.0
stopCapture()
| virtual bool Aurora::StreamCamera::Camera::stopCapture () | pure virtual |
Останавливает захват.
Возвращает true, если камера уже остановлена или остановлена успешно, в противном случае — false.