summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMithra Pattison <mithra.pattison@nokia.com>2012-05-30 15:31:39 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-25 06:39:11 +0200
commit5705f70da1e0a4a8838f9c4dfda1e847807d0ebe (patch)
treeca294fdbc593c69ccbb1f90a5182a74bf1674cf7 /src
parent1b7da9e0adf8a2638061d75e2697177be20ddc72 (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.cpp12
-rw-r--r--src/imports/multimedia/qsgvideonode_rgb.cpp3
-rw-r--r--src/multimedia/qmediaobject_p.h2
-rw-r--r--src/multimediawidgets/qpaintervideosurface.cpp22
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;