Класс QVideoSurfaceFormat
Класс QVideoSurfaceFormat определяет формат потока видео-представления.
| Заголовок: | #include <QVideoSurfaceFormat> |
| qmake: | QT += multimedia |
Публичные типы
| перечисление | Direction { TopToBottom, BottomToTop } |
| перечисление | YCbCrColorSpace { YCbCr_Undefined, YCbCr_BT601, YCbCr_BT709, YCbCr_xvYCC601, YCbCr_xvYCC709, YCbCr_JPEG } |
Публичные функции
| QVideoSurfaceFormat() | |
| QVideoSurfaceFormat(const QSize &size, QVideoFrame::PixelFormat format, QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) | |
| QVideoSurfaceFormat(const QVideoSurfaceFormat &other) | |
| ~QVideoSurfaceFormat() | |
| int | frameHeight() const |
| qreal | frameRate() const |
| QSize | frameSize() const |
| int | frameWidth() const |
| QAbstractVideoBuffer::HandleType | handleType() const |
| bool | isValid() const |
| QSize | pixelAspectRatio() const |
| QVideoFrame::PixelFormat | pixelFormat() const |
| QVariant | property(const char *name) const |
| QList<QByteArray> | propertyNames() const |
| Direction | scanLineDirection() const |
| void | setFrameRate(qreal rate) |
| void | setFrameSize(const QSize &size) |
| void | setFrameSize(int width, int height) |
| void | setPixelAspectRatio(const QSize &ratio) |
| void | setPixelAspectRatio(int horizontal, int vertical) |
| void | setProperty(const char *name, const QVariant &value) |
| void | setScanLineDirection(Direction direction) |
| void | setViewport(const QRect &viewport) |
| void | setYCbCrColorSpace(YCbCrColorSpace space) |
| QSize | sizeHint() const |
| QRect | viewport() const |
| YCbCrColorSpace | yCbCrColorSpace() const |
| bool | operator!=(const QVideoSurfaceFormat &other) const |
| QVideoSurfaceFormat & | operator=(const QVideoSurfaceFormat &other) |
| bool | operator==(const QVideoSurfaceFormat &other) const |
Подробное описание
Класс QVideoSurfaceFormat определяет формат потока видео-представления.
Видео-поверхность представляет собой поток видео-кадров. Формат поверхности описывает тип кадров и определяет, как они должны быть представлены.
Основные свойства видео-потока, необходимые для настройки видео-поверхности, — это формат пикселей, задаваемый функцией 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()
Создаёт формат видеопотока без значения.
QVideoSurfaceFormat::QVideoSurfaceFormat(const QSize &size, QVideoFrame::PixelFormat format, QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle)
Создаёт описание потока, который получает буферы типа type с заданным размером кадра size и форматом пикселей format.
QVideoSurfaceFormat::QVideoSurfaceFormat(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::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
Возвращает список имён динамических свойств формата видео.
Direction QVideoSurfaceFormat::scanLineDirection() const
Возвращает направление сканирования строк.
См. также setScanLineDirection().
void QVideoSurfaceFormat::setFrameRate(qreal rate)
Устанавливает частоту кадров rate видеопотока в кадрах в секунду.
См. также frameRate().
void QVideoSurfaceFormat::setFrameSize(const QSize &size)
Устанавливает размер кадров в видеопотоке на size.
Это сбросит viewport() для заполнения всего кадра.
См. также frameSize().
void QVideoSurfaceFormat::setFrameSize(int width, int height)
Это перегруженная функция.
Устанавливает ширину width и высоту height кадров в видеопотоке.
Это сбросит viewport() для заполнения всего кадра.
void QVideoSurfaceFormat::setPixelAspectRatio(const QSize &ratio)
Устанавливает соотношение сторон пикселей видеопотока на 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(Direction direction)
Устанавливает направление сканирования строк на direction.
См. также scanLineDirection().
void QVideoSurfaceFormat::setViewport(const QRect &viewport)
Устанавливает область просмотра viewport видеопотока.
См. также viewport().
void QVideoSurfaceFormat::setYCbCrColorSpace(YCbCrColorSpace space)
Устанавливает цветовое пространство Y'CbCr space видеопотока. Оно используется только с сырыми типами кадров YUV.
См. также yCbCrColorSpace().
QSize QVideoSurfaceFormat::sizeHint() const
Возвращает рекомендуемый размер в пикселях для видеопотока.
Это размер области просмотра, масштабированный в соответствии с соотношением сторон пикселей.
QRect QVideoSurfaceFormat::viewport() const
Возвращает область просмотра видеопотока.
Область просмотра — это область кадра видео, которая фактически отображается.
По умолчанию область просмотра охватывает весь кадр.
См. также setViewport().
YCbCrColorSpace QVideoSurfaceFormat::yCbCrColorSpace() const
Возвращает цветовое пространство Y'CbCr видеопотока.
См. также setYCbCrColorSpace().
bool QVideoSurfaceFormat::operator!=(const QVideoSurfaceFormat &other) const
Возвращает true, если other отличается от данного формата видео, и false, если они одинаковы.
QVideoSurfaceFormat &QVideoSurfaceFormat::operator=(const QVideoSurfaceFormat &other)
Присваивает значения other этому объекту.
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/archives/qt-5.6/qvideosurfaceformat.html