summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets/qvideowidget.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2021-03-16 16:02:01 +0100
committerLars Knoll <lars.knoll@qt.io>2021-04-06 07:42:30 +0000
commitf9d00f682f5afd68cf098d2df5daf2c191306494 (patch)
tree58d54e1852033c1e0f3caa6667f49dc3dceffcc2 /src/multimediawidgets/qvideowidget.cpp
parente756104bdf344713fb66abce0c48ec57dd0b8438 (diff)
Add support for SW rendering in QVideoSink
Retrieve SW buffers from gstreamer if that's what the sink wants. Change-Id: I3598594a219e436d6f64c5eefbc001f3f46d3789 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/multimediawidgets/qvideowidget.cpp')
-rw-r--r--src/multimediawidgets/qvideowidget.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp
index 9fa64724f..23f07c7df 100644
--- a/src/multimediawidgets/qvideowidget.cpp
+++ b/src/multimediawidgets/qvideowidget.cpp
@@ -108,8 +108,11 @@ QVideoWidget::QVideoWidget(QWidget *parent)
{
d_ptr->q_ptr = this;
d_ptr->videoSink = new QVideoSink(this);
- d_ptr->videoSink->setGraphicsType(QVideoSink::NativeWindow);
+ d_ptr->videoSink->setGraphicsType(QVideoSink::Memory);
+ d_ptr->videoSink->setTargetRect(rect());
+
d_ptr->videoSink->setNativeWindowId(winId());
+ connect(d_ptr->videoSink, SIGNAL(newVideoFrame(const QVideoFrame &)), this, SLOT(_q_newFrame(const QVideoFrame &)));
}
/*!
@@ -383,6 +386,7 @@ void QVideoWidget::hideEvent(QHideEvent *event)
*/
void QVideoWidget::resizeEvent(QResizeEvent *event)
{
+ d_ptr->videoSink->setTargetRect(QRectF(0, 0, event->size().width(), event->size().height()));
QWidget::resizeEvent(event);
}