diff options
author | Mithra Pattison <mithra.pattison@nokia.com> | 2012-05-30 15:31:39 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-25 06:39:11 +0200 |
commit | 5705f70da1e0a4a8838f9c4dfda1e847807d0ebe (patch) | |
tree | ca294fdbc593c69ccbb1f90a5182a74bf1674cf7 /src | |
parent | 1b7da9e0adf8a2638061d75e2697177be20ddc72 (diff) |
Add default initialisation to various multimedia classes
Change-Id: I902de05984fdae152e2678e4cf2d401a0b670703
Reviewed-by: Jonas Rabbe <jonas.rabbe@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/imports/multimedia/qsgvideonode_i420.cpp | 12 | ||||
-rw-r--r-- | src/imports/multimedia/qsgvideonode_rgb.cpp | 3 | ||||
-rw-r--r-- | src/multimedia/qmediaobject_p.h | 2 | ||||
-rw-r--r-- | src/multimediawidgets/qpaintervideosurface.cpp | 22 |
4 files changed, 27 insertions, 12 deletions
diff --git a/src/imports/multimedia/qsgvideonode_i420.cpp b/src/imports/multimedia/qsgvideonode_i420.cpp index ef075eb95..2cd040695 100644 --- a/src/imports/multimedia/qsgvideonode_i420.cpp +++ b/src/imports/multimedia/qsgvideonode_i420.cpp @@ -174,7 +174,9 @@ public: QVideoSurfaceFormat m_format; QSize m_textureSize; - GLuint m_textureIds[3]; + + static const uint Num_Texture_IDs = 3; + GLuint m_textureIds[Num_Texture_IDs]; qreal m_opacity; QMatrix4x4 m_colorMatrix; @@ -187,6 +189,8 @@ QSGVideoMaterial_YUV420::QSGVideoMaterial_YUV420(const QVideoSurfaceFormat &form m_format(format), m_opacity(1.0) { + memset(m_textureIds, 0, sizeof(m_textureIds)); + switch (format.yCbCrColorSpace()) { case QVideoSurfaceFormat::YCbCr_JPEG: m_colorMatrix = QMatrix4x4( @@ -217,7 +221,7 @@ QSGVideoMaterial_YUV420::QSGVideoMaterial_YUV420(const QVideoSurfaceFormat &form QSGVideoMaterial_YUV420::~QSGVideoMaterial_YUV420() { if (!m_textureSize.isEmpty()) - glDeleteTextures(3, m_textureIds); + glDeleteTextures(Num_Texture_IDs, m_textureIds); } void QSGVideoMaterial_YUV420::bind() @@ -233,8 +237,8 @@ void QSGVideoMaterial_YUV420::bind() // Frame has changed size, recreate textures... if (m_textureSize != m_frame.size()) { if (!m_textureSize.isEmpty()) - glDeleteTextures(3, m_textureIds); - glGenTextures(3, m_textureIds); + glDeleteTextures(Num_Texture_IDs, m_textureIds); + glGenTextures(Num_Texture_IDs, m_textureIds); m_textureSize = m_frame.size(); } diff --git a/src/imports/multimedia/qsgvideonode_rgb.cpp b/src/imports/multimedia/qsgvideonode_rgb.cpp index b7fd9c793..c8392bd2e 100644 --- a/src/imports/multimedia/qsgvideonode_rgb.cpp +++ b/src/imports/multimedia/qsgvideonode_rgb.cpp @@ -76,6 +76,9 @@ class QSGVideoMaterialShader_RGB : public QSGMaterialShader public: QSGVideoMaterialShader_RGB(QVideoFrame::PixelFormat pixelFormat) : QSGMaterialShader(), + m_id_matrix(-1), + m_id_rgbTexture(-1), + m_id_opacity(-1), m_pixelFormat(pixelFormat) { } diff --git a/src/multimedia/qmediaobject_p.h b/src/multimedia/qmediaobject_p.h index 33f713403..1da4fd3ac 100644 --- a/src/multimedia/qmediaobject_p.h +++ b/src/multimedia/qmediaobject_p.h @@ -79,7 +79,7 @@ class QMediaObjectPrivate Q_DECLARE_PUBLIC(QMediaObject) public: - QMediaObjectPrivate():metaDataControl(0), notifyTimer(0) {} + QMediaObjectPrivate(): service(0), metaDataControl(0), availabilityControl(0), notifyTimer(0), q_ptr(0) {} virtual ~QMediaObjectPrivate() {} void _q_notify(); diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp index 672a103de..8b37acbdf 100644 --- a/src/multimediawidgets/qpaintervideosurface.cpp +++ b/src/multimediawidgets/qpaintervideosurface.cpp @@ -277,10 +277,12 @@ protected: GLuint m_textureInternalFormat; GLenum m_textureType; int m_textureCount; - GLuint m_textureIds[3]; - int m_textureWidths[3]; - int m_textureHeights[3]; - int m_textureOffsets[3]; + + static const uint Max_Textures = 3; + GLuint m_textureIds[Max_Textures]; + int m_textureWidths[Max_Textures]; + int m_textureHeights[Max_Textures]; + int m_textureOffsets[Max_Textures]; bool m_yuv; }; @@ -298,6 +300,12 @@ QVideoSurfaceGLPainter::QVideoSurfaceGLPainter(QGLContext *context) #ifndef QT_OPENGL_ES glActiveTexture = (_glActiveTexture)m_context->getProcAddress(QLatin1String("glActiveTexture")); #endif + + memset(m_textureIds, 0, sizeof(m_textureIds)); + memset(m_textureWidths, 0, sizeof(m_textureWidths)); + memset(m_textureHeights, 0, sizeof(m_textureHeights)); + memset(m_textureOffsets, 0, sizeof(m_textureOffsets)); + } QVideoSurfaceGLPainter::~QVideoSurfaceGLPainter() @@ -484,7 +492,7 @@ void QVideoSurfaceGLPainter::initRgbTextureInfo( m_textureInternalFormat = internalFormat; m_textureFormat = format; m_textureType = type; - m_textureCount = 1; + m_textureCount = 1; // Note: ensure this is always <= Max_Textures m_textureWidths[0] = size.width(); m_textureHeights[0] = size.height(); m_textureOffsets[0] = 0; @@ -499,7 +507,7 @@ void QVideoSurfaceGLPainter::initYuv420PTextureInfo(const QSize &size) m_textureInternalFormat = GL_LUMINANCE; m_textureFormat = GL_LUMINANCE; m_textureType = GL_UNSIGNED_BYTE; - m_textureCount = 3; + m_textureCount = 3; // Note: ensure this is always <= Max_Textures m_textureWidths[0] = bytesPerLine; m_textureHeights[0] = size.height(); m_textureOffsets[0] = 0; @@ -520,7 +528,7 @@ void QVideoSurfaceGLPainter::initYv12TextureInfo(const QSize &size) m_textureInternalFormat = GL_LUMINANCE; m_textureFormat = GL_LUMINANCE; m_textureType = GL_UNSIGNED_BYTE; - m_textureCount = 3; + m_textureCount = 3; // Note: ensure this is always <= Max_Textures m_textureWidths[0] = bytesPerLine; m_textureHeights[0] = size.height(); m_textureOffsets[0] = 0; |