Spec-Zone.ru › Qt 5.11

Класс QAbstractVideoSurface

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

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

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

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

Свойства

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

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

QAbstractVideoSurface(QObject *parent = nullptr)
виртуальный ~QAbstractVideoSurface()
QAbstractVideoSurface::Ошибка ошибка() const
bool активна() const
виртуальный bool поддерживаетсяФормат(const QVideoSurfaceFormat &формат) const
QSize nativeResolution() const
виртуальный QVideoSurfaceFormat ближайшийФормат(const QVideoSurfaceFormat &формат) const
виртуальный bool представить(const QVideoFrame &кадр) = 0
виртуальный bool запустить(const QVideoSurfaceFormat &формат)
виртуальный void остановить()
виртуальный QList<QVideoFrame::PixelFormat> поддерживаемыеФорматыПикселей(QAbstractVideoBuffer::HandleType тип = QAbstractVideoBuffer::NoHandle) const = 0
QVideoSurfaceFormat форматПоверхности() const
  • 34 открытых функции унаследованы от QObject

Сигналы

void изменилосьАктивное(bool активно)
void измениласьNativeResolution(const QSize &разрешение)
void изменилисьПоддерживаемыеФорматы()
void изменилсяФорматПоверхности(const QVideoSurfaceFormat &формат)
  • 2 сигнала унаследованы от QObject

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

void установитьОшибка(QAbstractVideoSurface::Ошибка ошибка)
void установитьNativeResolution(const QSize &разрешение)
  • 9 защищённых функций унаследованы от QObject

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

  • 1 открытый слот унаследован от QObject
  • 1 открытая переменная унаследована от QObject
  • 10 статических открытых членов унаследованы от QObject
  • 2 защищённых переменных унаследованы от QObject

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

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

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

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

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

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

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

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

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

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

Примечание: Необходимо вызвать реализацию базового класса запустить() и остановить() в вашей реализации.

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

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

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

Постоянная Значение Описание
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 &разрешение)

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

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)

Сигнализирует о том, что родное разрешение 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)

Устанавливает родное разрешение 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)

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

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

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

Spec-Zone.ru

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