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

Класс 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.

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

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