hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
From 3320a4098bb3d6217ad6f682d59827b011a74b27 Mon Sep 17 00:00:00 2001
From: Jeffy Chen <jeffy.chen@rock-chips.com>
Date: Tue, 27 Nov 2018 16:03:31 +0800
Subject: [PATCH 02/17] gsttools: videowidget: Set overlay rectangle when
 resized
 
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
---
 src/gsttools/qgstreamervideowidget.cpp | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
 
diff --git a/src/gsttools/qgstreamervideowidget.cpp b/src/gsttools/qgstreamervideowidget.cpp
index 164e62f8..55f91574 100644
--- a/src/gsttools/qgstreamervideowidget.cpp
+++ b/src/gsttools/qgstreamervideowidget.cpp
@@ -41,6 +41,7 @@
 
 #include <QtCore/qcoreevent.h>
 #include <QtCore/qdebug.h>
+#include <QtGui/qevent.h>
 #include <QtGui/qpainter.h>
 
 QT_BEGIN_NAMESPACE
@@ -48,8 +49,9 @@ QT_BEGIN_NAMESPACE
 class QGstreamerVideoWidget : public QWidget
 {
 public:
-    QGstreamerVideoWidget(QWidget *parent = 0)
+    QGstreamerVideoWidget(QGstreamerVideoOverlay *overlay, QWidget *parent = 0)
         :QWidget(parent)
+         ,m_videoOverlay(overlay)
     {
         setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
         QPalette palette;
@@ -89,7 +91,13 @@ protected:
         paint_helper();
     }
 
+    void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE {
+        m_videoOverlay->setRenderRectangle(QRect(QPoint(), event->size()));
+    }
+
     QSize m_nativeSize;
+
+    QGstreamerVideoOverlay *m_videoOverlay;
 };
 
 QGstreamerVideoWidgetControl::QGstreamerVideoWidgetControl(QObject *parent, const QByteArray &elementName)
@@ -120,7 +128,7 @@ void QGstreamerVideoWidgetControl::createVideoWidget()
     if (m_widget)
         return;
 
-    m_widget = new QGstreamerVideoWidget;
+    m_widget = new QGstreamerVideoWidget(&m_videoOverlay);
 
     m_widget->installEventFilter(this);
     m_videoOverlay.setWindowHandle(m_windowId = m_widget->winId());
-- 
2.20.1