summaryrefslogtreecommitdiffstats
path: root/src/imports/multimedia
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-03-23 16:00:08 +1000
committerQt by Nokia <qt-info@nokia.com>2012-03-23 07:41:52 +0100
commit655408bced62c5fa490f8f4f260aefd164b870ee (patch)
tree0dd975eb1840e65a4bc9446cff1842af7ecfeef8 /src/imports/multimedia
parentba43d50b31098b0e76d2c5797b997b1dcd3f3441 (diff)
Don't delete video node factories owned by the plugin loader.
Make the fallback factories members instead of creating on the heap so there's no need to delete members of the m_videoNodeFactories some of which may be shared with other current and future video outputs. Change-Id: I3d2e32e52479b12ff64e31a2ed527336d94a191b Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'src/imports/multimedia')
-rw-r--r--src/imports/multimedia/qdeclarativevideooutput.cpp5
-rw-r--r--src/imports/multimedia/qdeclarativevideooutput_p.h8
2 files changed, 10 insertions, 3 deletions
diff --git a/src/imports/multimedia/qdeclarativevideooutput.cpp b/src/imports/multimedia/qdeclarativevideooutput.cpp
index 46b5893e3..be592bbdb 100644
--- a/src/imports/multimedia/qdeclarativevideooutput.cpp
+++ b/src/imports/multimedia/qdeclarativevideooutput.cpp
@@ -183,8 +183,8 @@ QDeclarativeVideoOutput::QDeclarativeVideoOutput(QQuickItem *parent) :
}
// Append existing node factories as fallback if we have no plugins
- m_videoNodeFactories.append(new QSGVideoNodeFactory_I420);
- m_videoNodeFactories.append(new QSGVideoNodeFactory_RGB);
+ m_videoNodeFactories.append(&m_i420Factory);
+ m_videoNodeFactories.append(&m_rgbFactory);
}
QDeclarativeVideoOutput::~QDeclarativeVideoOutput()
@@ -197,7 +197,6 @@ QDeclarativeVideoOutput::~QDeclarativeVideoOutput()
m_source.clear();
_q_updateMediaObject();
delete m_surface;
- qDeleteAll(m_videoNodeFactories);
}
/*!
diff --git a/src/imports/multimedia/qdeclarativevideooutput_p.h b/src/imports/multimedia/qdeclarativevideooutput_p.h
index 7959d122e..a0ee1460a 100644
--- a/src/imports/multimedia/qdeclarativevideooutput_p.h
+++ b/src/imports/multimedia/qdeclarativevideooutput_p.h
@@ -54,6 +54,11 @@
#include <private/qsgvideonode_p.h>
+
+#include "qsgvideonode_i420.h"
+#include "qsgvideonode_rgb.h"
+
+
QT_BEGIN_NAMESPACE
class QSGVideoItemSurface;
@@ -144,6 +149,9 @@ private:
FillMode m_fillMode;
QSize m_nativeSize;
+ QSGVideoNodeFactory_I420 m_i420Factory;
+ QSGVideoNodeFactory_RGB m_rgbFactory;
+
bool m_geometryDirty;
QRectF m_lastSize; // Cache of last size to avoid recalculating geometry
QRectF m_renderedRect; // Destination pixel coordinates, clipped