diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-08-20 12:18:55 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-08-26 16:29:01 +0200 |
commit | 1c08cf00aad844512af1aab7b0371541864122c9 (patch) | |
tree | d2c5ca6dc9cb0669b369e47dffb38e1fb0f5c93e /src/multimediawidgets/qvideowidget.cpp | |
parent | d19fd931ff1af4f24950115568492c7efa28a655 (diff) |
HW accelerated video rendering for QWindow
This implements HW accelerated video rendering to a QWindow using
RHI and the textures we get from the video pipeline.
This change was triggered by difficulties to create a full HW
accelerated path for QVideoWidget on gstreamer. The reason was
that the vaapisink that we've been using so far has quite a few
bugs and been deprecated by the gstreamer maintainers.
This will in a follow-up change allow us to unify the video
pipelines for Qt Quick and Widgets, so that we only need to
support one way of doing HW accelerated rendering on the
backend side.
Done-with: Laszlo Agocs <laszlo.agocs@qt.io>
Pick-to: 6.2
Change-Id: I143e4416dd8b1cec4e5507e2e5af1eb3d37a496c
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/multimediawidgets/qvideowidget.cpp')
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index f2e0877ee..29670c8ef 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -103,6 +103,8 @@ QVideoWidget::QVideoWidget(QWidget *parent) d_ptr->videoSink = new QVideoSink(this); connect(d_ptr->videoSink, SIGNAL(newVideoFrame(const QVideoFrame &)), this, SLOT(_q_newFrame(const QVideoFrame &))); + + setAttribute(Qt::WA_UpdatesDisabled); } /*! @@ -254,6 +256,9 @@ void QVideoWidget::moveEvent(QMoveEvent * /*event*/) */ void QVideoWidget::paintEvent(QPaintEvent *event) { + // ### + return; + Q_D(QVideoWidget); if (d->videoSink && d->lastFrame.isValid()) { |