Класс QVideoFrameFormat
Класс QVideoFrameFormat задаёт формат потока поверхности видеопредставления. Подробнее...
| Заголовок: | #include <QVideoFrameFormat> |
| CMake: | find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
Открытые типы
| Перечисление | Direction { TopToBottom, BottomToTop } |
| Перечисление | PixelFormat { Format_Invalid, Format_ARGB8888, Format_ARGB8888_Premultiplied, Format_XRGB8888, Format_BGRA8888, …, Format_SamplerRect } |
| Перечисление | YCbCrColorSpace { YCbCr_Undefined, YCbCr_BT601, YCbCr_BT709, YCbCr_xvYCC601, YCbCr_xvYCC709, YCbCr_JPEG } |
Открытые функции
| QVideoFrameFormat(QVideoFrameFormat &&other) | |
| QVideoFrameFormat(const QVideoFrameFormat &other) | |
| QVideoFrameFormat(const QSize &size, QVideoFrameFormat::PixelFormat format) | |
| QVideoFrameFormat() | |
| QVideoFrameFormat & | operator=(const QVideoFrameFormat &other) |
| QVideoFrameFormat & | operator=(QVideoFrameFormat &&other) |
| ~QVideoFrameFormat() | |
| int | frameHeight() const |
| qreal | frameRate() const |
| QSize | frameSize() const |
| int | frameWidth() const |
| bool | isMirrored() const |
| bool | isValid() const |
| QVideoFrameFormat::PixelFormat | pixelFormat() const |
| int | planeCount() const |
| QVideoFrameFormat::Direction | scanLineDirection() const |
| void | setFrameRate(qreal rate) |
| void | setFrameSize(const QSize &size) |
| void | setFrameSize(int width, int height) |
| void | setMirrored(bool mirrored) |
| void | setScanLineDirection(QVideoFrameFormat::Direction direction) |
| void | setViewport(const QRect &viewport) |
| void | setYCbCrColorSpace(QVideoFrameFormat::YCbCrColorSpace space) |
| QRect | viewport() const |
| QVideoFrameFormat::YCbCrColorSpace | yCbCrColorSpace() const |
| bool | operator!=(const QVideoFrameFormat &other) const |
| bool | operator==(const QVideoFrameFormat &other) const |
Статические открытые члены
| QImage::Format | imageFormatFromPixelFormat(QVideoFrameFormat::PixelFormat format) |
| QVideoFrameFormat::PixelFormat | pixelFormatFromImageFormat(QImage::Format format) |
| QString | pixelFormatToString(QVideoFrameFormat::PixelFormat pixelFormat) |
Подробное описание
Видеоприёмник представляет поток видеокадров. QVideoFrameFormat описывает тип кадров и определяет, как они должны быть представлены.
Основные свойства видеопотока, необходимые для настройки видеоприёмника, — это формат пикселей, задаваемый методом pixelFormat(), и размеры кадра, задаваемые методом frameSize().
Область кадра, которая фактически отображается на поверхности видео, задаётся свойством viewport(). Поток может иметь область просмотра меньше всего кадра, чтобы разрешить видео, меньшее, чем ближайший оптимальный размер видеокадра. Например, ширина кадра может быть расширена, чтобы начало каждой строки сканирования было выровнено по восьми байтам.
Другие распространённые свойства — это scanLineDirection(), frameRate() и yCrCbColorSpace().
Документация по типам членов
Перечисление QVideoFrameFormat::Direction
Перечисляет направление расположения строк сканирования видео.
| Постоянная | Значение | Описание |
|---|---|---|
QVideoFrameFormat::TopToBottom |
0 |
Строки сканирования расположены сверху вниз. |
QVideoFrameFormat::BottomToTop |
1 |
Строки сканирования расположены снизу вверх. |
Перечисление QVideoFrameFormat::PixelFormat
Перечисляет типы данных видео.
| Постоянная | Значение | Описание |
|---|---|---|
QVideoFrameFormat::Format_Invalid |
0 |
Кадр недействителен. |
QVideoFrameFormat::Format_ARGB8888 |
1 |
Кадр хранится в формате ARGB с 8 битами на компонент. |
QVideoFrameFormat::Format_ARGB8888_Premultiplied |
2 |
Кадр хранится в предварительно умноженном формате ARGB с 8 битами на компонент. |
QVideoFrameFormat::Format_XRGB8888 |
3 |
Кадр хранится в формате RGB с 32 битами на пиксель (0xff, R, G, B). |
QVideoFrameFormat::Format_BGRA8888 |
4 |
Кадр хранится в формате 32-битного BGRA (0xBBGGRRAA). |
QVideoFrameFormat::Format_BGRA8888_Premultiplied |
5 |
Кадр хранится в предварительно умноженном 32-битном формате BGRA. |
QVideoFrameFormat::Format_ABGR8888 |
7 |
Кадр хранится в 32-битном формате ABGR (0xAABBGGRR). |
QVideoFrameFormat::Format_XBGR8888 |
8 |
Кадр хранится в 32-битном формате BGR (0xffBBGGRR). |
QVideoFrameFormat::Format_RGBA8888 |
9 |
Кадр хранится в памяти как байты R, G, B, A/X, где R находится по наименьшему адресу, а A/X — по наибольшему. |
QVideoFrameFormat::Format_BGRX8888 |
6 |
Кадр хранится в формате 32-битного BGRx, [31:0] B:G:R:x 8:8:8:8 little endian |
QVideoFrameFormat::Format_RGBX8888 |
10 |
Кадр хранится в памяти как байты R, G, B, A/X, где R находится по наименьшему адресу, а A/X — по наибольшему. |
QVideoFrameFormat::Format_AYUV |
11 |
Кадр хранится в упакованном 32-битном формате AYUV (0xAAYYUUVV). |
QVideoFrameFormat::Format_AYUV_Premultiplied |
12 |
Кадр хранится в предварительно умноженном упакованном 32-битном формате AYUV (0xAAYYUUVV). |
QVideoFrameFormat::Format_YUV420P |
13 |
Кадр хранится в формате с планами YUV с 8 битами на компонент, при этом планы U и V горизонтально и вертикально субдискретизированы, т.е. высота и ширина планов U и V вдвое меньше, чем у плана Y. |
QVideoFrameFormat::Format_YUV422P |
14 |
Кадр хранится в формате с планами YUV с 8 битами на компонент, при этом планы U и V горизонтально субдискретизированы (ширина планов U и V вдвое меньше, чем у плана Y), а высота планов U и V такая же, как у Y. |
QVideoFrameFormat::Format_YV12 |
15 |
Кадр хранится в формате с планами YVU с 8 битами на компонент, при этом планы V и U горизонтально и вертикально субдискретизированы, т.е. высота и ширина планов V и U вдвое меньше, чем у плана Y. |
QVideoFrameFormat::Format_UYVY |
16 |
Кадр хранится в упакованном формате YUV с 8 битами на компонент, при этом планы U и V горизонтально субдискретизированы (U-Y-V-Y), т.е. два горизонтально смежных пикселя хранятся как 32-битный макропиксель, содержащий значение Y для каждого пикселя и общие значения U и V. |
QVideoFrameFormat::Format_YUYV |
17 |
Кадр хранится в упакованном формате YUV с 8 битами на компонент, при этом планы U и V горизонтально субдискретизированы (Y-U-Y-V), т.е. два горизонтально смежных пикселя хранятся как 32-битный макропиксель, содержащий значение Y для каждого пикселя и общие значения U и V. |
QVideoFrameFormat::Format_NV12 |
18 |
Кадр хранится в полуплоскостном формате YUV с 8 битами на компонент с планом Y, за которым следует горизонтально и вертикально субдискретизированный, упакованный план UV (U-V). |
QVideoFrameFormat::Format_NV21 |
19 |
Кадр хранится в полуплоскостном формате YUV с 8 битами на компонент с планом Y, за которым следует горизонтально и вертикально субдискретизированный, упакованный план VU (V-U). |
QVideoFrameFormat::Format_IMC1 |
20 |
Кадр хранится в формате с планами YUV с 8 битами на компонент, при этом планы U и V горизонтально и вертикально субдискретизированы. Это аналогично типу Format_YUV420P, за исключением того, что байты на строке планов U и V дополняются до того же выравнивания, что и у плана Y. |
QVideoFrameFormat::Format_IMC2 |
21 |
Кадр хранится в формате с планами YUV с 8 битами на компонент, при этом планы U и V горизонтально и вертикально субдискретизированы. Это аналогично типу Format_YUV420P, за исключением того, что строки планов U и V чередуются, т.е. каждая строка данных U следует за строкой данных V, образуя одну строку с таким же выравниванием, как и данные Y. |
QVideoFrameFormat::Format_IMC3 |
22 |
Кадр хранится в формате с планами YVU с 8 битами на компонент, при этом планы V и U горизонтально и вертикально субдискретизированы. Это аналогично типу Format_YV12, за исключением того, что байты на строке планов V и U дополняются до того же выравнивания, что и у плана Y. |
QVideoFrameFormat::Format_IMC4 |
23 |
Кадр хранится в формате с планами YVU с 8 битами на компонент, при этом планы V и U горизонтально и вертикально субдискретизированы. Это аналогично типу Format_YV12, за исключением того, что строки планов V и U чередуются, т.е. каждая строка данных V следует за строкой данных U, образуя одну строку с таким же выравниванием, как и данные Y. |
QVideoFrameFormat::Format_P010 |
26 |
Кадр хранится в полуплоскостном формате YUV с 16 битами на компонент с планом Y, за которым следует горизонтально и вертикально субдискретизированный, упакованный план UV (U-V). Используются только 10 наиболее значимых битов каждой компоненты. |
QVideoFrameFormat::Format_P016 |
27 |
Кадр хранится в полуплоскостном формате YUV с 16 битами на компонент с планом Y, за которым следует горизонтально и вертикально субдискретизированный, упакованный план UV (U-V). |
QVideoFrameFormat::Format_Y8 |
24 |
Кадр хранится в 8-битном серотоновом формате. |
QVideoFrameFormat::Format_Y16 |
25 |
Кадр хранится в 16-битном линейном серотоновом формате. Little endian. |
QVideoFrameFormat::Format_Jpeg |
29 |
Кадр хранится в сжатом формате JPEG. |
QVideoFrameFormat::Format_SamplerExternalOES |
28 |
Кадр хранится во внешнем формате текстуры OES. |
QVideoFrameFormat::Format_SamplerRect |
30 |
Кадр хранится в формате прямоугольной текстуры. |
Перечисление QVideoFrameFormat::YCbCrColorSpace
Перечисляет цветовое пространство Y'CbCr видеокадров.
| Постоянная | Значение | Описание |
|---|---|---|
QVideoFrameFormat::YCbCr_Undefined |
0 |
Цветовое пространство не указано. |
QVideoFrameFormat::YCbCr_BT601 |
1 |
Цветовое пространство Y'CbCr, определенное рекомендацией ITU-R BT.601, с диапазоном значений Y от 16 до 235 и диапазоном Cb/Cr от 16 до 240. Используется в видео стандартного разрешения. |
QVideoFrameFormat::YCbCr_BT709 |
2 |
Цветовое пространство Y'CbCr, определенное рекомендацией ITU-R BT.709, с тем же диапазоном значений, что и YCbCr_BT601. Используется для HDTV. |
QVideoFrameFormat::YCbCr_xvYCC601 |
3 |
Цветовое пространство BT.601 с расширенным диапазоном значений до 0 до 255. Совместимо со стандартом BT.601 и использует значения за пределами диапазона BT.601 для представления более широкого набора цветов. |
QVideoFrameFormat::YCbCr_xvYCC709 |
4 |
Цветовое пространство BT.709 с расширенным диапазоном значений до 0 до 255. |
QVideoFrameFormat::YCbCr_JPEG |
5 |
Полное цветовое пространство Y'CbCr, используемое в файлах JPEG. |
Документация по функциям-членам
QVideoFrameFormat::QVideoFrameFormat(QVideoFrameFormat &&other)
Создает QVideoFrameFormat, перемещая данные из other.
QVideoFrameFormat::QVideoFrameFormat(const QVideoFrameFormat &other)
Создает копию other.
QVideoFrameFormat::QVideoFrameFormat(const QSize &size, QVideoFrameFormat::PixelFormat format)
Создает видеопоток с заданным размером кадра size и форматом пикселей format.
QVideoFrameFormat::QVideoFrameFormat()
Создаёт формат видеопотока по умолчанию.
QVideoFrameFormat &QVideoFrameFormat::operator=(const QVideoFrameFormat &other)
Присваивает значения объекта other текущему объекту.
QVideoFrameFormat &QVideoFrameFormat::operator=(QVideoFrameFormat &&other)
Перемещает значения объекта other в текущий объект QVideoFrameFormat.
QVideoFrameFormat::~QVideoFrameFormat()
Удаляет описание видеопотока.
int QVideoFrameFormat::frameHeight() const
Возвращает высоту кадра в видеопотоке.
qreal QVideoFrameFormat::frameRate() const
Возвращает частоту кадров видеопотока в кадрах в секунду.
См. также setFrameRate().
QSize QVideoFrameFormat::frameSize() const
Возвращает размеры кадров в видеопотоке.
См. также setFrameSize(), frameWidth() и frameHeight().
int QVideoFrameFormat::frameWidth() const
Возвращает ширину кадров в видеопотоке.
См. также frameSize() и frameHeight().
[static] QImage::Format QVideoFrameFormat::imageFormatFromPixelFormat(QVideoFrameFormat::PixelFormat format)
Возвращает формат изображения, эквивалентный пиксельному формату видеокадра format. Если эквивалентного формата нет, возвращается QImage::Format_Invalid.
Примечание: QImage обычно не поддерживает YUV-форматы.
bool QVideoFrameFormat::isMirrored() const
Возвращает true, если поверхность отражена относительно вертикальной оси. Это обычно необходимо для видеокадров, получаемых с передней камеры мобильного устройства.
Примечание: Отражение здесь отличается от QImage::mirrored, так как вертикально отражённое изображение QImage будет отражено относительно оси x.
bool QVideoFrameFormat::isValid() const
Определяет, имеет ли формат видеоповерхности допустимый пиксельный формат и размер кадра.
Возвращает true, если формат действителен, и false в противном случае.
QVideoFrameFormat::PixelFormat QVideoFrameFormat::pixelFormat() const
Возвращает пиксельный формат кадров в видеопотоке.
[static] QVideoFrameFormat::PixelFormat QVideoFrameFormat::pixelFormatFromImageFormat(QImage::Format format)
Возвращает эквивалентный пиксельный формат видео для формата изображения format. Если эквивалентного формата нет, возвращается QVideoFrameFormat::Format_Invalid.
Примечание: QImage обычно не поддерживает YUV-форматы.
[static] QString QVideoFrameFormat::pixelFormatToString(QVideoFrameFormat::PixelFormat pixelFormat)
Возвращает строковое представление заданного пиксельного формата pixelFormat.
int QVideoFrameFormat::planeCount() const
Возвращает количество планов, используемых в формате. Это число зависит от пиксельного формата и равно 1 для форматов на основе RGB, а для форматов на основе YUV находится в диапазоне от 1 до 3.
QVideoFrameFormat::Direction QVideoFrameFormat::scanLineDirection() const
Возвращает направление сканирования строк.
См. также setScanLineDirection().
void QVideoFrameFormat::setFrameRate(qreal rate)
Устанавливает частоту кадров видеопотока в кадрах в секунду.
См. также frameRate().
void QVideoFrameFormat::setFrameSize(const QSize &size)
Устанавливает размер кадров в видеопотоке в size.
Это сбросит viewport() на заполнение всего кадра.
См. также frameSize().
void QVideoFrameFormat::setFrameSize(int width, int height)
Это перегруженный метод.
Устанавливает ширину и высоту кадров в видеопотоке.
Это сбросит viewport() на заполнение всего кадра.
void QVideoFrameFormat::setMirrored(bool mirrored)
Устанавливает, отражена ли поверхность относительно вертикальной оси. Обычно используется для видеокадров, полученных с передней камеры мобильного устройства. Значение по умолчанию - false.
Примечание: Отражение здесь отличается от QImage::mirrored, так как вертикально отражённое изображение QImage будет отражено относительно оси x.
См. также isMirrored().
void QVideoFrameFormat::setScanLineDirection(QVideoFrameFormat::Direction direction)
Устанавливает направление сканирования строк.
См. также scanLineDirection().
void QVideoFrameFormat::setViewport(const QRect &viewport)
Устанавливает область просмотра видеопотока в viewport.
См. также viewport().
void QVideoFrameFormat::setYCbCrColorSpace(QVideoFrameFormat::YCbCrColorSpace space)
Устанавливает цветовое пространство Y'CbCr видеопотока. Используется только с сырыми YUV-кадрами.
См. также yCbCrColorSpace().
QRect QVideoFrameFormat::viewport() const
Возвращает область просмотра видеопотока.
Область просмотра — это область видеокадра, которая отображается.
По умолчанию область просмотра охватывает весь кадр.
См. также setViewport().
QVideoFrameFormat::YCbCrColorSpace QVideoFrameFormat::yCbCrColorSpace() const
Возвращает цветовое пространство Y'CbCr видеопотока.
См. также setYCbCrColorSpace().
bool QVideoFrameFormat::operator!=(const QVideoFrameFormat &other) const
Возвращает true, если other отличается от текущего формата видео, и false, если они совпадают.
bool QVideoFrameFormat::operator==(const QVideoFrameFormat &other) const
Возвращает true, если other совпадает с текущим форматом видео, и false, если они отличаются.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qvideoframeformat.html