Класс QVideoSurfaceFormat
Класс QVideoSurfaceFormat задаёт формат потока для поверхности видео-представления. Подробнее...
| Заголовок: | #include <QVideoSurfaceFormat> |
| qmake: | QT += multimedia |
Общие типы
| Перечисление | Direction { TopToBottom, BottomToTop } |
| Перечисление | YCbCrColorSpace { YCbCr_Undefined, YCbCr_BT601, YCbCr_BT709, YCbCr_xvYCC601, YCbCr_xvYCC709, YCbCr_JPEG } |
Открытые функции
| QVideoSurfaceFormat(const QVideoSurfaceFormat &other) | |
| QVideoSurfaceFormat(const QSize &size, QVideoFrame::PixelFormat format, QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) | |
| QVideoSurfaceFormat() | |
| QVideoSurfaceFormat & | operator=(const QVideoSurfaceFormat &other) |
| ~QVideoSurfaceFormat() | |
| int | frameHeight() const |
| qreal | frameRate() const |
| QSize | frameSize() const |
| int | frameWidth() const |
| QAbstractVideoBuffer::HandleType | handleType() const |
| bool | isMirrored() const |
| bool | isValid() const |
| QSize | pixelAspectRatio() const |
| QVideoFrame::PixelFormat | pixelFormat() const |
| QVariant | property(const char *name) const |
| QList<QByteArray> | propertyNames() const |
| QVideoSurfaceFormat::Direction | scanLineDirection() const |
| void | setFrameRate(qreal rate) |
| void | setFrameSize(const QSize &size) |
| void | setFrameSize(int width, int height) |
| void | setMirrored(bool mirrored) |
| void | setPixelAspectRatio(const QSize &ratio) |
| void | setPixelAspectRatio(int horizontal, int vertical) |
| void | setProperty(const char *name, const QVariant &value) |
| void | setScanLineDirection(QVideoSurfaceFormat::Direction direction) |
| void | setViewport(const QRect &viewport) |
| void | setYCbCrColorSpace(QVideoSurfaceFormat::YCbCrColorSpace space) |
| QSize | sizeHint() const |
| QRect | viewport() const |
| QVideoSurfaceFormat::YCbCrColorSpace | yCbCrColorSpace() const |
| bool | operator!=(const QVideoSurfaceFormat &other) const |
| bool | operator==(const QVideoSurfaceFormat &other) const |
Подробное описание
Поверхность видео отображает поток видео-кадров. Формат поверхности описывает тип кадров и определяет, как они должны быть представлены.
Основные свойства видеопотока, необходимые для настройки поверхности видео, — это формат пикселей, заданный функцией pixelFormat(), и размеры кадра, заданные функцией frameSize().
Если поверхность должна отображать кадры, используя дескриптор кадра, формат поверхности также будет содержать тип дескриптора, который возвращает функция handleType().
Область кадра, которая фактически отображается на поверхности видео, задаётся свойством viewport(). Поток может иметь область просмотра меньше всего кадра, чтобы разрешить воспроизведение видео с размерами меньше оптимального размера видеокадра. Например, ширина кадра может быть расширена, чтобы начало каждой строки сканирования было выровнено по байту.
Другие распространённые свойства — pixelAspectRatio(), scanLineDirection() и frameRate(). Кроме того, поток может иметь некоторые дополнительные свойства, специфичные для типа, которые перечислены функцией dynamicPropertyNames() и к которым можно получить доступ с помощью функций property() и setProperty().
Документация по типам членов
Перечисление QVideoSurfaceFormat::Direction
Перечисляет направление расположения строк сканирования видео.
| Постоянная | Значение | Описание |
|---|---|---|
QVideoSurfaceFormat::TopToBottom |
0 |
Строки сканирования расположены сверху кадра вниз. |
QVideoSurfaceFormat::BottomToTop |
1 |
Строки сканирования расположены снизу кадра вверх. |
Перечисление QVideoSurfaceFormat::YCbCrColorSpace
Перечисляет цветовое пространство Y'CbCr видеокадров.
| Константа | Значение | Описание |
|---|---|---|
QVideoSurfaceFormat::YCbCr_Undefined |
0 |
Пространство цветов не указано. |
QVideoSurfaceFormat::YCbCr_BT601 |
1 |
Пространство цветов Y'CbCr, определённое рекомендацией ITU-R BT.601, с диапазоном значений Y от 16 до 235 и диапазоном Cb/Cr от 16 до 240. Используется в видео стандартного разрешения. |
QVideoSurfaceFormat::YCbCr_BT709 |
2 |
Пространство цветов Y'CbCr, определённое рекомендацией ITU-R BT.709, с тем же диапазоном значений, что и YCbCr_BT601. Используется для HDTV. |
QVideoSurfaceFormat::YCbCr_xvYCC601 |
3 |
Пространство цветов BT.601 с расширенным диапазоном значений до 0-255. Совместимо со стандартом BT.601 и использует значения за пределами диапазона BT.601 для представления более широкого набора цветов. |
QVideoSurfaceFormat::YCbCr_xvYCC709 |
4 |
Пространство цветов BT.709 с расширенным диапазоном значений до 0-255. |
QVideoSurfaceFormat::YCbCr_JPEG |
5 |
Полное пространство цветов Y'CbCr, используемое в файлах JPEG. |
Документация функций-членов
QVideoSurfaceFormat::QVideoSurfaceFormat(const QVideoSurfaceFormat &other)
Создаёт копию other.
QVideoSurfaceFormat::QVideoSurfaceFormat(const QSize &size, QVideoFrame::PixelFormat format, QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle)
Создаёт описание потока, который принимает буферы типа type с заданными размерами кадра size и форматом пикселей format.
QVideoSurfaceFormat::QVideoSurfaceFormat()
Создаёт пустой формат видеопотока.
QVideoSurfaceFormat &QVideoSurfaceFormat::operator=(const QVideoSurfaceFormat &other)
Присваивает значения other этому объекту.
QVideoSurfaceFormat::~QVideoSurfaceFormat()
Удаляет описание видеопотока.
int QVideoSurfaceFormat::frameHeight() const
Возвращает высоту кадра в видеопотоке.
qreal QVideoSurfaceFormat::frameRate() const
Возвращает частоту кадров видеопотока в кадрах в секунду.
См. также setFrameRate().
QSize QVideoSurfaceFormat::frameSize() const
Возвращает размеры кадров в видеопотоке.
См. также setFrameSize(), frameWidth() и frameHeight().
int QVideoSurfaceFormat::frameWidth() const
Возвращает ширину кадров в видеопотоке.
См. также frameSize() и frameHeight().
QAbstractVideoBuffer::HandleType QVideoSurfaceFormat::handleType() const
Возвращает тип дескриптора, используемого поверхностью для представления данных кадра.
Если тип дескриптора QAbstractVideoBuffer::NoHandle, буферы с любым типом дескриптора являются допустимыми, при условии, что они могут быть отображены с флагом QAbstractVideoBuffer::ReadOnly. Если handleType() не равен QAbstractVideoBuffer::NoHandle, то тип дескриптора буфера должен совпадать с типом дескриптора формата поверхности.
bool QVideoSurfaceFormat::isMirrored() const
Возвращает true, если поверхность зеркально отображается относительно вертикальной оси. Это обычно необходимо для видеокадров, поступающих от передней камеры мобильного устройства.
Примечание: Зеркальное отображение здесь отличается от QImage::mirrored, так как вертикально зеркальное отображение QImage будет зеркально отображаться относительно оси x.
Эта функция была добавлена в Qt 5.11.
bool QVideoSurfaceFormat::isValid() const
Определяет, имеет ли формат видеоповерхности допустимый формат пикселей и размер кадра.
Возвращает true, если формат корректен, и false в противном случае.
QSize QVideoSurfaceFormat::pixelAspectRatio() const
Возвращает соотношение сторон пикселей видеопотока.
См. также setPixelAspectRatio().
QVideoFrame::PixelFormat QVideoSurfaceFormat::pixelFormat() const
Возвращает формат пикселей кадров в видеопотоке.
QVariant QVideoSurfaceFormat::property(const char *name) const
Возвращает значение свойства видеоформата с именем name.
См. также setProperty().
QList<QByteArray> QVideoSurfaceFormat::propertyNames() const
Возвращает список имён динамических свойств видеоформата.
QVideoSurfaceFormat::Direction QVideoSurfaceFormat::scanLineDirection() const
Возвращает направление сканирования строк.
См. также setScanLineDirection().
void QVideoSurfaceFormat::setFrameRate(qreal rate)
Устанавливает частоту кадров видеопотока в кадрах в секунду.
См. также frameRate().
void QVideoSurfaceFormat::setFrameSize(const QSize &size)
Устанавливает размер кадров в видеопотоке на size.
Это сбросит viewport() на заполнение всего кадра.
См. также frameSize().
void QVideoSurfaceFormat::setFrameSize(int width, int height)
Это перегруженная функция.
Устанавливает ширину width и высоту height кадров в видеопотоке.
Это сбросит viewport() на заполнение всего кадра.
void QVideoSurfaceFormat::setMirrored(bool mirrored)
Устанавливает, зеркально ли отображается поверхность относительно вертикальной оси. Это обычно необходимо для видеокадров, поступающих от передней камеры мобильного устройства. Значение по умолчанию – false.
Примечание: Зеркальное отображение здесь отличается от QImage::mirrored, так как вертикально зеркальное отображение QImage будет зеркально отображаться относительно оси x.
См. также isMirrored().
void QVideoSurfaceFormat::setPixelAspectRatio(const QSize &ratio)
Устанавливает соотношение сторон пикселей видеопотока.
См. также pixelAspectRatio().
void QVideoSurfaceFormat::setPixelAspectRatio(int horizontal, int vertical)
Это перегруженная функция.
Устанавливает значения horizontal и vertical соотношения сторон пикселей видеопотока.
void QVideoSurfaceFormat::setProperty(const char *name, const QVariant &value)
Устанавливает свойство видеоформата с именем name на значение value.
Попытка установить только для чтения свойство будет проигнорирована.
См. также property().
void QVideoSurfaceFormat::setScanLineDirection(QVideoSurfaceFormat::Direction direction)
Устанавливает направление сканирования строк.
См. также scanLineDirection().
void QVideoSurfaceFormat::setViewport(const QRect &viewport)
Устанавливает область просмотра видеопотока на viewport.
См. также viewport().
void QVideoSurfaceFormat::setYCbCrColorSpace(QVideoSurfaceFormat::YCbCrColorSpace space)
Устанавливает пространство цветов Y'CbCr для видеопотока. Используется только с типами кадров YUV в сыром формате.
См. также yCbCrColorSpace().
QSize QVideoSurfaceFormat::sizeHint() const
Возвращает рекомендуемый размер видеопотока в пикселях.
Это размер области просмотра, масштабированный в соответствии с соотношением сторон пикселей.
QRect QVideoSurfaceFormat::viewport() const
Возвращает область просмотра видеопотока.
Область просмотра — это область видеокадра, которая фактически отображается.
По умолчанию область просмотра охватывает весь кадр.
См. также setViewport().
QVideoSurfaceFormat::YCbCrColorSpace QVideoSurfaceFormat::yCbCrColorSpace() const
Возвращает цветовое пространство Y'CbCr видеопотока.
См. также setYCbCrColorSpace().
bool QVideoSurfaceFormat::operator!=(const QVideoSurfaceFormat &other) const
Возвращает true, если other отличается от этого видеоформата, и false, если они одинаковы.
bool QVideoSurfaceFormat::operator==(const QVideoSurfaceFormat &other) const
Возвращает true, если other совпадает с этим видеоформатом, и false, если они отличаются.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qvideosurfaceformat.html