diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-03-16 16:02:01 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-04-06 07:42:30 +0000 |
commit | f9d00f682f5afd68cf098d2df5daf2c191306494 (patch) | |
tree | 58d54e1852033c1e0f3caa6667f49dc3dceffcc2 /src/multimediawidgets/qvideowidget.cpp | |
parent | e756104bdf344713fb66abce0c48ec57dd0b8438 (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.cpp | 6 |
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); } |