Spec-Zone.ru › Qt 5.6

Класс QAbstractVideoSurface

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

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

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

перечисление Ошибка { НетОшибки, ОшибкаНеподдерживаемогоФормата, ОшибкаНеправильногоФормата, ОшибкаОстановки, ОшибкаРесурса }

Свойства

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

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

QAbstractVideoSurface(QObject *parent = Q_NULLPTR)
~QAbstractVideoSurface()
Ошибка error() const
bool isActive() const
virtual bool isFormatSupported(const QVideoSurfaceFormat &format) const
QSize nativeResolution() const
virtual QVideoSurfaceFormat nearestFormat(const QVideoSurfaceFormat &format) const
virtual bool present(const QVideoFrame &frame) = 0
virtual bool start(const QVideoSurfaceFormat &format)
virtual void stop()
virtual 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

перечисление QAbstractVideoSurface::Ошибка

Это перечисление описывает ошибки, которые могут быть возвращены функцией 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 = Q_NULLPTR)

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

QAbstractVideoSurface::~QAbstractVideoSurface()

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

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

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

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

Error QAbstractVideoSurface::error() const

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

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

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

bool QAbstractVideoSurface::isActive() const

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[virtual] bool QAbstractVideoSurface::start(const QVideoSurfaceFormat &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/archives/qt-5.6/qabstractvideosurface.html

Spec-Zone.ru

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