Spec-Zone.ru › Qt 5.12

Класс QAbstractVideoSurface

Класс QAbstractVideoSurface — базовый класс для поверхностей визуализации видео. Подробнее...

Заголовок: #include <QAbstractVideoSurface>
qmake: QT += multimedia
Наследует: QObject
  • Список всех членов, включая унаследованные
  • Устаревшие члены

Открытые типы

Перечисление Error { NoError, UnsupportedFormatError, IncorrectFormatError, StoppedError, ResourceError }

Свойства

  • nativeResolution : const QSize
  • 1 свойство унаследовано от QObject

Открытые функции

QAbstractVideoSurface(QObject *parent = nullptr)
виртуальный ~QAbstractVideoSurface()
QAbstractVideoSurface::Error error() const
bool isActive() const
виртуальный bool isFormatSupported(const QVideoSurfaceFormat &format) const
QSize nativeResolution() const
виртуальный QVideoSurfaceFormat nearestFormat(const QVideoSurfaceFormat &format) const
виртуальный bool present(const QVideoFrame &frame) = 0
виртуальный bool start(const QVideoSurfaceFormat &format)
виртуальный void stop()
виртуальный QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) const = 0
QVideoSurfaceFormat surfaceFormat() const
  • 31 открытая функция унаследована от QObject

Сигналы

void activeChanged(bool active)
void nativeResolutionChanged(const QSize &resolution)
void supportedFormatsChanged()
void surfaceFormatChanged(const QVideoSurfaceFormat &format)
  • 2 сигнала унаследованы от QObject

Статические открытые члены

const QMetaObject staticMetaObject
  • 9 статических открытых членов унаследованы от QObject

Защищенные функции

void setError(QAbstractVideoSurface::Error error)
void setNativeResolution(const QSize &resolution)
  • 9 защищенных функций унаследованы от QObject

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QObject

Подробное описание

Класс QAbstractVideoSurface — базовый класс для поверхностей визуализации видео.

Класс QAbstractVideoSurface определяет стандартный интерфейс, который используют производители видео для взаимодействия с поверхностями визуализации видео. Вы можете создать подкласс этого интерфейса, чтобы получать кадры видео из таких источников, как декодированные медиаданные или камеры, чтобы выполнить свою собственную обработку.

Поверхность видео представляет непрерывный поток идентичных по формату экземпляров QVideoFrame, где формат каждого кадра совместим с форматом потока, предоставленным при запуске презентации. Каждый кадр может содержать информацию о временной метке, которую поверхность может использовать для определения того, когда отображать этот кадр.

Список форматов пикселей, которые может представить поверхность, предоставляется функцией supportedPixelFormats(), а функция isFormatSupported() проверяет, поддерживается ли формат поверхности видео. Если формат не поддерживается, функция nearestFormat() может предложить похожий формат. Например, если поверхность поддерживает фиксированный набор разрешений, она может предложить наименьшее поддерживаемое разрешение, которое включает в себя предложенное разрешение.

Функция start() принимает поддерживаемый формат и активирует поверхность видео. После запуска поверхность начнёт отображать кадры, которые она получает в функции present(). Поверхности могут удерживать ссылку на буфер кадра видео до тех пор, пока не будет представлен новый кадр или поток не будет остановлен. Кроме того, поверхность видео может удерживать ссылку на кадр видео до тех пор, пока не пройдёт время, указанное в временной метке окончания. Функция stop() деактивирует поверхность и освобождает все буферы видео, на которые она ссылается.

Реализация подкласса QAbstractVideoSurface

При реализации подкласса этого интерфейса нужно реализовать лишь несколько функций, разбитых на два класса:

  • Связанные с форматом
  • Связанные с представлением

Для функциональности, связанной с форматом, вам нужно только описать форматы пикселей, которые вы поддерживаете (и функцию nearestFormat() ). Для функциональности, связанной с представлением, вам нужно реализовать функцию present() и функции start() и stop().

Примечание: Вы должны вызвать реализацию базового класса start() и stop() в своей реализации.

Документация по типам членов

Перечисление QAbstractVideoSurface::Error

Это перечисление описывает ошибки, которые может возвращать функция error().

Постоянная Значение Описание
QAbstractVideoSurface::NoError 0 Ошибка не произошла.
QAbstractVideoSurface::UnsupportedFormatError 1 Формат видео не поддерживается.
QAbstractVideoSurface::IncorrectFormatError 2 Кадр видео несовместим с форматом поверхности.
QAbstractVideoSurface::StoppedError 3 Поверхность не запущена.
QAbstractVideoSurface::ResourceError 4 Поверхность не смогла выделить ресурс.

Документация свойств

nativeResolution : const QSize

Родная разрешение поверхности видео. Это разрешение кадров видео, которое поверхность может отображать с оптимальным качеством и/или производительностью.

Родное разрешение не всегда известно и может быть изменено во время воспроизведения.

Функции доступа:

QSize nativeResolution() const

Сигнал уведомления:

void nativeResolutionChanged(const QSize &resolution)

Документация по функциям-членам

QAbstractVideoSurface::QAbstractVideoSurface(QObject *parent = nullptr)

Создаёт поверхность видео с заданным parent.

[virtual] QAbstractVideoSurface::~QAbstractVideoSurface()

Уничтожает поверхность видео.

[signal] void QAbstractVideoSurface::activeChanged(bool active)

Сигнализирует о том, что состояние active поверхности видео изменилось.

См. также isActive(), start() и stop().

QAbstractVideoSurface::Error QAbstractVideoSurface::error() const

Возвращает последнюю произошедшую ошибку.

Если поверхность не может быть запущена или останавливается неожиданно, эта функция может быть вызвана для выявления произошедшей ошибки.

См. также setError().

bool QAbstractVideoSurface::isActive() const

Указывает, была ли запущена поверхность видео.

Возвращает true, если поверхность была запущена, и false в противном случае.

[virtual] bool QAbstractVideoSurface::isFormatSupported(const QVideoSurfaceFormat &format) const

Проверяет формат поверхности видео format, чтобы определить, может ли его принять поверхность.

Возвращает true, если формат поддерживается поверхностью, и false в противном случае.

[signal] void QAbstractVideoSurface::nativeResolutionChanged(const QSize &resolution)

Сигнализирует о том, что родное разрешение поверхности видео изменилось.

Примечание: Сигнал уведомления для свойства nativeResolution.

[virtual] QVideoSurfaceFormat QAbstractVideoSurface::nearestFormat(const QVideoSurfaceFormat &format) const

Возвращает поддерживаемый формат поверхности видео, похожий на format.

Подобный формат поверхности — это формат с тем же форматом пикселей и типом дескриптора, но может отличаться по некоторым другим свойствам. Например, если существуют ограничения на размеры кадров, которые может принимать поверхность видео, она может предложить формат с бóльшим размером кадра и областью просмотра размером с исходный размер кадра.

Если формат уже поддерживается, он будет возвращен без изменений; в противном случае, если нет подобного поддерживаемого формата, будет возвращён невалидный формат.

[pure virtual] bool QAbstractVideoSurface::present(const QVideoFrame &frame)

Представляет кадр видео frame.

Возвращает true, если кадр был представлен, и false, если произошла ошибка.

Не все поверхности будут блокироваться до завершения представления кадра. Вызов present() на неблокирующей поверхности может завершиться неудачей, если он вызван до завершения представления предыдущего кадра. В таких случаях поверхность может не перейти в готовое состояние, пока не будет возможности обработать события.

Если present() завершается неудачей по любой другой причине, поверхность должна немедленно перейти в состояние остановки, а значение error() будет установлено.

Поверхность видео должна быть в состоянии «запущено» для успешного выполнения present(), и формат кадра видео должен быть совместим с текущим форматом поверхности видео.

См. также error().

[protected] void QAbstractVideoSurface::setError(QAbstractVideoSurface::Error error)

Устанавливает значение error() в error.

Это может вызываться реализаторами этого интерфейса для передачи информации о самой последней произошедшей ошибке.

См. также error().

[protected] void QAbstractVideoSurface::setNativeResolution(const QSize &resolution)

Устанавливает родное разрешение поверхности видео.

Этот метод может вызываться реализаторами этого интерфейса для указания производителю кадров, каково родное разрешение этой поверхности.

См. также nativeResolution().

[virtual] bool QAbstractVideoSurface::start(const QVideoSurfaceFormat &format)

Запускает поверхность видео для отображения кадров формата format.

Возвращает true, если поверхность была запущена, и false, если произошла ошибка.

Примечание: Вы должны вызвать реализацию базового класса start() в конце своей реализации.

См. также isActive() и stop().

[virtual] void QAbstractVideoSurface::stop()

Останавливает поверхность видео, прекращая отображение кадров и освобождая любые ресурсы, полученные в start().

Примечание: Вы должны вызвать реализацию базового класса stop() в начале своей реализации.

См. также isActive() и start().

[signal] void QAbstractVideoSurface::supportedFormatsChanged()

Сигнализирует о том, что набор форматов, поддерживаемых поверхностью видео, изменился.

См. также supportedPixelFormats() и isFormatSupported().

[pure virtual] QList<QVideoFrame::PixelFormat> QAbstractVideoSurface::supportedPixelFormats(QAbstractVideoBuffer::HandleType type = QAbstractVideoBuffer::NoHandle) const

Возвращает список форматов пикселей, которые поверхность видео может отобразить для данного типа дескриптора type.

Форматы пикселей, возвращаемые для типа QAbstractVideoBuffer::NoHandle, являются допустимыми для любого буфера, который можно отобразить в режиме только для чтения.

Типы, которые находятся в начале списка, можно предположить как более быстрые для отображения.

QVideoSurfaceFormat QAbstractVideoSurface::surfaceFormat() const

Возвращает формат поверхности видео.

[signal] void QAbstractVideoSurface::surfaceFormatChanged(const QVideoSurfaceFormat &format)

Сигнализирует о том, что сконфигурированный формат поверхности видео изменился.

См. также surfaceFormat() и start().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qabstractvideosurface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API