diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-03-23 16:00:08 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-23 07:41:52 +0100 |
commit | 655408bced62c5fa490f8f4f260aefd164b870ee (patch) | |
tree | 0dd975eb1840e65a4bc9446cff1842af7ecfeef8 /src/imports/multimedia | |
parent | ba43d50b31098b0e76d2c5797b997b1dcd3f3441 (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.cpp | 5 | ||||
-rw-r--r-- | src/imports/multimedia/qdeclarativevideooutput_p.h | 8 |
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 |