Класс Aurora::StreamCamera::VideoOutputQt5
Рендеринг видеокадров в компоненте QML VideoOutput
.
Подробнее…
Подключение: | #include <streamcamera.h> |
Свойства
bool |
mirrored |
QAbstractVideoSurface * |
videoSurface |
QRect |
viewport |
Публичные функции
VideoOutputQt5 (QObject *parent=nullptr) |
|
bool |
mirrored () const |
void |
onGraphicBuffer (std::shared_ptr< Aurora::StreamCamera::GraphicBuffer > buffer) |
void |
onVideoFrame (const Aurora::StreamCamera::YCbCrFrame *frame) |
void |
setMirrored (bool mirror) |
void |
setVideoSurface (QAbstractVideoSurface *) |
void |
setViewport (QRect viewport) |
void |
stop () |
QAbstractVideoSurface * |
videoSurface () const |
QRect |
viewport () const |
Сигналы
void |
mirroredChanged (bool mirror) |
void |
viewportChanged (QRect viewport) |
Подробное описание
Рендеринг видеокадров в компоненте QML VideoOutput
.
Рендеринг видеокадров, созданных с помощью Camera
или VideoDecoder
на QAbstractVideoSurface
, предоставленном QtMultimedia.
class Listener : public VideoDecoderListener
{
...
void onDecodedYCbCrFrame(const StreamCamera::YCbCrFrame *frame)
{
m_output->onVideoFrame(frame);
}
void onDecodedGraphicBuffer(std::shared_ptr<StreamCamera::GraphicBuffer> buffer)
{
m_output->onGraphicBuffer(buffer);
}
...
private:
VideoOutputQt5 *m_output;
}
Конструктор
VideoOutputQt5(QObject *parent=nullptr)
Описание свойств
bool mirrored
Управляет вертикальным переворотом видеовыхода.
Видеобуферы будут вертикально зеркально отражены при рендеринге, если установлено значение
mirrored
.
Это полезно для рендеринга предварительного просмотра видео с фронтальной камеры.
Видеоповерхность остановится при изменении.
Следующий вызов onVideoFrame()
или onGraphicBuffer()
применит настройки и запустит поверхность.
QAbstractVideoSurface * videoSurface
Содержит поверхность видео для рендеринга.
QRect viewport
Управляет областью просмотра видеовыхода.
Изменяет область просмотра QVideoSurfaceFormat
, применённого к поверхности видео.
Видеоповерхность остановится при изменении.
Следующий вызов onVideoFrame()
или onGraphicBuffer()
применит настройки и запустит поверхность.
Описание методов
bool mirrored () const
void onGraphicBuffer(std::shared_ptr< Aurora::StreamCamera::GraphicBuffer > buffer)
Рендеринг общего видеокадра.
Кадр визуализируется с использованием видеоузла EGL или YUV в зависимости от типа дескриптора,
который предоставляет GraphicBuffer
.
Видеоповерхность начнется с формата, угаданного из кадра.
void onVideoFrame(const Aurora::StreamCamera::YCbCrFrame *frame)
Рендеринг видеокадра, не предназначенного для совместного использования.
Кадр копируется в новый VideoFrame
, а затем визуализируется с помощью видеоузла YUV.
Видеоповерхность начинается с формата, угаданного из кадра.
void setMirrored(bool mirror)
void setVideoSurface (QAbstractVideoSurface *)
void setViewport(QRect viewport)
void stop()
Останавливает VideoSurface
.
Поверхность запустится снова при следующем вызове onVideoFrame()
или onGraphicBuffer()
.
QAbstractVideoSurface * videoSurface() const
QRect viewport() const
Описание сигналов
void mirroredChanged(bool mirror)
void viewportChanged(QRect viewport)