summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/src/common/qandroidvideorendercontrol.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/android/src/common/qandroidvideorendercontrol.cpp')
-rw-r--r--src/plugins/android/src/common/qandroidvideorendercontrol.cpp39
1 files changed, 25 insertions, 14 deletions
diff --git a/src/plugins/android/src/common/qandroidvideorendercontrol.cpp b/src/plugins/android/src/common/qandroidvideorendercontrol.cpp
index 55f71d735..b737e8a42 100644
--- a/src/plugins/android/src/common/qandroidvideorendercontrol.cpp
+++ b/src/plugins/android/src/common/qandroidvideorendercontrol.cpp
@@ -122,20 +122,8 @@ QAndroidVideoRendererControl::QAndroidVideoRendererControl(QObject *parent)
QAndroidVideoRendererControl::~QAndroidVideoRendererControl()
{
- if (m_surfaceTexture) {
- m_surfaceTexture->callMethod<void>("release");
- delete m_surfaceTexture;
- m_surfaceTexture = 0;
- }
- if (m_androidSurface) {
- m_androidSurface->callMethod<void>("release");
- delete m_androidSurface;
- m_androidSurface = 0;
- }
- if (m_surfaceHolder) {
- delete m_surfaceHolder;
- m_surfaceHolder = 0;
- }
+ clearSurfaceTexture();
+
if (m_glDeleter)
m_glDeleter->deleteLater();
}
@@ -202,6 +190,24 @@ bool QAndroidVideoRendererControl::initSurfaceTexture()
return m_surfaceTexture != 0;
}
+void QAndroidVideoRendererControl::clearSurfaceTexture()
+{
+ if (m_surfaceTexture) {
+ m_surfaceTexture->callMethod<void>("release");
+ delete m_surfaceTexture;
+ m_surfaceTexture = 0;
+ }
+ if (m_androidSurface) {
+ m_androidSurface->callMethod<void>("release");
+ delete m_androidSurface;
+ m_androidSurface = 0;
+ }
+ if (m_surfaceHolder) {
+ delete m_surfaceHolder;
+ m_surfaceHolder = 0;
+ }
+}
+
jobject QAndroidVideoRendererControl::surfaceHolder()
{
if (!initSurfaceTexture())
@@ -245,6 +251,11 @@ void QAndroidVideoRendererControl::stop()
m_nativeSize = QSize();
}
+void QAndroidVideoRendererControl::reset()
+{
+ clearSurfaceTexture();
+}
+
void QAndroidVideoRendererControl::onFrameAvailable()
{
if (!m_nativeSize.isValid() || !m_surface)