]> code.ossystems Code Review - meta-freescale.git/commitdiff
qtmultimedia: Drop i.MX6 support patch as Qt 5.3.0 is now in use
authorOtavio Salvador <otavio@ossystems.com.br>
Thu, 12 Jun 2014 14:05:46 +0000 (11:05 -0300)
committerOtavio Salvador <otavio@ossystems.com.br>
Fri, 13 Jun 2014 02:27:57 +0000 (23:27 -0300)
The Qt 5.3.0 includes this patch so we need to drop it from the BSP
layer in other to avoid conflicts.

Change-Id: I0fe8592daae18a18f4d149321ff4d03e8b6d64a5
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia/add-imx6-support.patch [deleted file]
meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend [deleted file]

diff --git a/meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia/add-imx6-support.patch b/meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia/add-imx6-support.patch
deleted file mode 100644 (file)
index b49b0a9..0000000
+++ /dev/null
@@ -1,844 +0,0 @@
-adding zero-copy-QSGVideoNode for imx6
-
-On imx6 there is a platform-specific API to implement
-memory-mapping from gstreamer-buffer to opengl-texture.
-
-This plugin uses this API to avoid CPU-based-memory-copy.
-
-This allows fluid video-playback up to 1080p with very little CPU load.
-Before even 720p used one cpu-core completely and wasn't fluid.
-
-Change-Id: I0c33eb5d475393a65459291ce9290fa0753de4a5
-
-Upstream-Status: Backport [5.3]
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro
-index d947f3b..c107599 100644
---- a/src/plugins/plugins.pro
-+++ b/src/plugins/plugins.pro
-@@ -6,7 +6,7 @@
- TEMPLATE = subdirs
--SUBDIRS += m3u
-+SUBDIRS += m3u videonode
- android {
-    SUBDIRS += android opensles
-diff --git a/src/plugins/videonode/imx6/imx6.json b/src/plugins/videonode/imx6/imx6.json
-new file mode 100644
-index 0000000..08bb12c
---- /dev/null
-+++ b/src/plugins/videonode/imx6/imx6.json
-@@ -0,0 +1,3 @@
-+{
-+    "Keys": ["sgvideonodes"]
-+}
-diff --git a/src/plugins/videonode/imx6/imx6.pro b/src/plugins/videonode/imx6/imx6.pro
-new file mode 100644
-index 0000000..a2e6798
---- /dev/null
-+++ b/src/plugins/videonode/imx6/imx6.pro
-@@ -0,0 +1,21 @@
-+TARGET = imx6vivantevideonode
-+QT += multimedia-private qtmultimediaquicktools-private
-+
-+PLUGIN_TYPE=video/videonode
-+PLUGIN_CLASS_NAME = QSGVivanteVideoNodeFactory
-+load(qt_plugin)
-+
-+HEADERS += \
-+    qsgvivantevideonode.h \
-+    qsgvivantevideomaterialshader.h \
-+    qsgvivantevideomaterial.h \
-+    qsgvivantevideonodefactory.h
-+
-+SOURCES += \
-+    qsgvivantevideonode.cpp \
-+    qsgvivantevideomaterialshader.cpp \
-+    qsgvivantevideomaterial.cpp \
-+    qsgvivantevideonodefactory.cpp
-+
-+OTHER_FILES += \
-+    imx6.json
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
-new file mode 100644
-index 0000000..0ed4e1a
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.cpp
-@@ -0,0 +1,196 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include <GLES2/gl2.h>
-+#include <GLES2/gl2ext.h>
-+
-+#include "qsgvivantevideomaterial.h"
-+#include "qsgvivantevideomaterialshader.h"
-+#include "qsgvivantevideonode.h"
-+
-+#include <QOpenGLContext>
-+#include <QThread>
-+
-+#include <unistd.h>
-+
-+
-+//#define QT_VIVANTE_VIDEO_DEBUG
-+
-+QSGVivanteVideoMaterial::QSGVivanteVideoMaterial() :
-+    mOpacity(1.0),
-+    mCurrentTexture(0)
-+{
-+#ifdef QT_VIVANTE_VIDEO_DEBUG
-+    qDebug() << Q_FUNC_INFO;
-+#endif
-+
-+    setFlag(Blending, false);
-+}
-+
-+QSGVivanteVideoMaterial::~QSGVivanteVideoMaterial()
-+{
-+    for (GLuint id : mBitsToTextureMap.values()) {
-+#ifdef QT_VIVANTE_VIDEO_DEBUG
-+        qDebug() << "delete texture: " << id;
-+#endif
-+        glDeleteTextures(1, &id);
-+    }
-+}
-+
-+QSGMaterialType *QSGVivanteVideoMaterial::type() const {
-+    static QSGMaterialType theType;
-+    return &theType;
-+}
-+
-+QSGMaterialShader *QSGVivanteVideoMaterial::createShader() const {
-+    return new QSGVivanteVideoMaterialShader;
-+}
-+
-+int QSGVivanteVideoMaterial::compare(const QSGMaterial *other) const {
-+    if (this->type() == other->type()) {
-+        const QSGVivanteVideoMaterial *m = static_cast<const QSGVivanteVideoMaterial *>(other);
-+        if (this->mBitsToTextureMap == m->mBitsToTextureMap)
-+            return 0;
-+        else
-+            return 1;
-+    }
-+    return 1;
-+}
-+
-+void QSGVivanteVideoMaterial::updateBlending() {
-+    setFlag(Blending, qFuzzyCompare(mOpacity, qreal(1.0)) ? false : true);
-+}
-+
-+void QSGVivanteVideoMaterial::setCurrentFrame(const QVideoFrame &frame) {
-+    QMutexLocker lock(&mFrameMutex);
-+    mNextFrame = frame;
-+
-+#ifdef QT_VIVANTE_VIDEO_DEBUG
-+    qDebug() << Q_FUNC_INFO << " new frame: " << frame;
-+#endif
-+}
-+
-+void QSGVivanteVideoMaterial::bind()
-+{
-+    QOpenGLContext *glcontext = QOpenGLContext::currentContext();
-+    if (glcontext == 0) {
-+        qWarning() << Q_FUNC_INFO << "no QOpenGLContext::currentContext() => return";
-+        return;
-+    }
-+
-+    QMutexLocker lock(&mFrameMutex);
-+    if (mNextFrame.isValid()) {
-+        mCurrentFrame.unmap();
-+
-+        mCurrentFrame = mNextFrame;
-+        mCurrentTexture = vivanteMapping(mNextFrame);
-+    }
-+    else
-+        glBindTexture(GL_TEXTURE_2D, mCurrentTexture);
-+}
-+
-+GLuint QSGVivanteVideoMaterial::vivanteMapping(QVideoFrame vF)
-+{
-+    QOpenGLContext *glcontext = QOpenGLContext::currentContext();
-+    if (glcontext == 0) {
-+        qWarning() << Q_FUNC_INFO << "no QOpenGLContext::currentContext() => return 0";
-+        return 0;
-+    }
-+
-+    static PFNGLTEXDIRECTVIVMAPPROC glTexDirectVIVMap_LOCAL = 0;
-+    static PFNGLTEXDIRECTINVALIDATEVIVPROC glTexDirectInvalidateVIV_LOCAL = 0;
-+
-+    if (glTexDirectVIVMap_LOCAL == 0 || glTexDirectInvalidateVIV_LOCAL == 0) {
-+        glTexDirectVIVMap_LOCAL = reinterpret_cast<PFNGLTEXDIRECTVIVMAPPROC>(glcontext->getProcAddress("glTexDirectVIVMap"));
-+        glTexDirectInvalidateVIV_LOCAL = reinterpret_cast<PFNGLTEXDIRECTINVALIDATEVIVPROC>(glcontext->getProcAddress("glTexDirectInvalidateVIV"));
-+    }
-+    if (glTexDirectVIVMap_LOCAL == 0 || glTexDirectInvalidateVIV_LOCAL == 0) {
-+        qWarning() << Q_FUNC_INFO << "couldn't find \"glTexDirectVIVMap\" and/or \"glTexDirectInvalidateVIV\" => do nothing and return";
-+        return 0;
-+    }
-+
-+
-+    if (vF.map(QAbstractVideoBuffer::ReadOnly)) {
-+
-+        if (!mBitsToTextureMap.contains(vF.bits())) {
-+            GLuint tmpTexId;
-+            glGenTextures(1, &tmpTexId);
-+            mBitsToTextureMap.insert(vF.bits(), tmpTexId);
-+
-+            const uchar *constBits = vF.bits();
-+            void *bits = (void*)constBits;
-+
-+#ifdef QT_VIVANTE_VIDEO_DEBUG
-+            qDebug() << Q_FUNC_INFO << "new texture, texId: " << tmpTexId << "; constBits: " << constBits;
-+#endif
-+
-+            GLuint physical = ~0U;
-+
-+            glBindTexture(GL_TEXTURE_2D, tmpTexId);
-+            glTexDirectVIVMap_LOCAL(GL_TEXTURE_2D,
-+                                     vF.width(), vF.height(),
-+                                     QSGVivanteVideoNode::getVideoFormat2GLFormatMap().value(vF.pixelFormat()),
-+                                     &bits, &physical);
-+
-+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
-+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-+            glTexDirectInvalidateVIV_LOCAL(GL_TEXTURE_2D);
-+
-+            return tmpTexId;
-+        }
-+        else {
-+            glBindTexture(GL_TEXTURE_2D, mBitsToTextureMap.value(vF.bits()));
-+            glTexDirectInvalidateVIV_LOCAL(GL_TEXTURE_2D);
-+            return mBitsToTextureMap.value(vF.bits());
-+        }
-+    }
-+    else {
-+#ifdef QT_VIVANTE_VIDEO_DEBUG
-+        qWarning() << " couldn't map the QVideoFrame vF: " << vF;
-+#endif
-+        return 0;
-+    }
-+
-+    Q_ASSERT(false); // should never reach this line!;
-+    return 0;
-+}
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterial.h b/src/plugins/videonode/imx6/qsgvivantevideomaterial.h
-new file mode 100644
-index 0000000..9d792b7
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterial.h
-@@ -0,0 +1,80 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QSGVIDEOMATERIAL_VIVMAP_H
-+#define QSGVIDEOMATERIAL_VIVMAP_H
-+
-+#include <QList>
-+#include <QPair>
-+
-+#include <QSGMaterial>
-+#include <QVideoFrame>
-+#include <QMutex>
-+
-+
-+class QSGVivanteVideoMaterial : public QSGMaterial
-+{
-+public:
-+    QSGVivanteVideoMaterial();
-+    ~QSGVivanteVideoMaterial();
-+
-+    virtual QSGMaterialType *type() const;
-+    virtual QSGMaterialShader *createShader() const;
-+    virtual int compare(const QSGMaterial *other) const;
-+    void updateBlending();
-+    void setCurrentFrame(const QVideoFrame &frame);
-+
-+    void bind();
-+    GLuint vivanteMapping(QVideoFrame texIdVideoFramePair);
-+
-+    void setOpacity(float o) { mOpacity = o; }
-+
-+private:
-+    qreal mOpacity;
-+
-+    QMap<const uchar*, GLuint> mBitsToTextureMap;
-+    QVideoFrame mCurrentFrame, mNextFrame;
-+    GLuint mCurrentTexture;
-+
-+    QMutex mFrameMutex;
-+};
-+
-+#endif // QSGVIDEOMATERIAL_VIVMAP_H
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.cpp b/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.cpp
-new file mode 100644
-index 0000000..7b5e5e5
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.cpp
-@@ -0,0 +1,104 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qsgvivantevideomaterialshader.h"
-+#include "qsgvivantevideonode.h"
-+#include "qsgvivantevideomaterial.h"
-+
-+void QSGVivanteVideoMaterialShader::updateState(const RenderState &state,
-+                                                QSGMaterial *newMaterial,
-+                                                QSGMaterial *oldMaterial)
-+{
-+    Q_UNUSED(oldMaterial);
-+
-+    QSGVivanteVideoMaterial *mat = static_cast<QSGVivanteVideoMaterial *>(newMaterial);
-+    program()->setUniformValue(mIdTexture, 0);
-+    mat->bind();
-+    if (state.isOpacityDirty()) {
-+        mat->setOpacity(state.opacity());
-+        program()->setUniformValue(mIdOpacity, state.opacity());
-+    }
-+    if (state.isMatrixDirty())
-+        program()->setUniformValue(mIdMatrix, state.combinedMatrix());
-+}
-+
-+const char * const *QSGVivanteVideoMaterialShader::attributeNames() const {
-+    static const char *names[] = {
-+        "qt_VertexPosition",
-+        "qt_VertexTexCoord",
-+        0
-+    };
-+    return names;
-+}
-+
-+const char *QSGVivanteVideoMaterialShader::vertexShader() const {
-+    static const char *shader =
-+            "uniform highp mat4 qt_Matrix;                      \n"
-+            "attribute highp vec4 qt_VertexPosition;            \n"
-+            "attribute highp vec2 qt_VertexTexCoord;            \n"
-+            "varying highp vec2 qt_TexCoord;                    \n"
-+            "void main() {                                      \n"
-+            "    qt_TexCoord = qt_VertexTexCoord;               \n"
-+            "    gl_Position = qt_Matrix * qt_VertexPosition;   \n"
-+            "}";
-+    return shader;
-+}
-+
-+const char *QSGVivanteVideoMaterialShader::fragmentShader() const {
-+    static const char *shader =
-+            "uniform sampler2D texture;"
-+            "uniform lowp float opacity;"
-+            ""
-+            "varying highp vec2 qt_TexCoord;"
-+            ""
-+            "void main()"
-+            "{"
-+            "  gl_FragColor = texture2D( texture, qt_TexCoord ) * opacity;\n"
-+            "}";
-+    return shader;
-+}
-+
-+
-+void QSGVivanteVideoMaterialShader::initialize() {
-+    mIdMatrix = program()->uniformLocation("qt_Matrix");
-+    mIdTexture = program()->uniformLocation("texture");
-+    mIdOpacity = program()->uniformLocation("opacity");
-+}
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.h b/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.h
-new file mode 100644
-index 0000000..570be25
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideomaterialshader.h
-@@ -0,0 +1,64 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QSGVIDEOMATERIALSHADER_VIVANTE_H
-+#define QSGVIDEOMATERIALSHADER_VIVANTE_H
-+
-+#include <QSGMaterial>
-+
-+class QSGVivanteVideoMaterialShader : public QSGMaterialShader
-+{
-+public:
-+    void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial);
-+    virtual char const *const *attributeNames() const;
-+
-+protected:
-+    virtual const char *vertexShader() const;
-+    virtual const char *fragmentShader() const;
-+    virtual void initialize();
-+
-+private:
-+    int mIdMatrix;
-+    int mIdTexture;
-+    int mIdOpacity;
-+};
-+
-+#endif // QSGVIDEOMATERIALSHADER_VIVANTE_H
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.cpp b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
-new file mode 100644
-index 0000000..d5f1e61
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideonode.cpp
-@@ -0,0 +1,90 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include <GLES2/gl2.h>
-+#include <GLES2/gl2ext.h>
-+
-+#include "qsgvivantevideonode.h"
-+#include "qsgvivantevideomaterialshader.h"
-+#include "qsgvivantevideomaterial.h"
-+
-+QMap<QVideoFrame::PixelFormat, GLenum> QSGVivanteVideoNode::static_VideoFormat2GLFormatMap = QMap<QVideoFrame::PixelFormat, GLenum>();
-+
-+QSGVivanteVideoNode::QSGVivanteVideoNode(const QVideoSurfaceFormat &format) :
-+    mFormat(format)
-+{
-+    setFlag(QSGNode::OwnsMaterial, true);
-+    mMaterial = new QSGVivanteVideoMaterial();
-+    setMaterial(mMaterial);
-+}
-+
-+QSGVivanteVideoNode::~QSGVivanteVideoNode()
-+{
-+}
-+
-+void QSGVivanteVideoNode::setCurrentFrame(const QVideoFrame &frame)
-+{
-+    mMaterial->setCurrentFrame(frame);
-+    markDirty(DirtyMaterial);
-+}
-+
-+const QMap<QVideoFrame::PixelFormat, GLenum>& QSGVivanteVideoNode::getVideoFormat2GLFormatMap()
-+{
-+    if (static_VideoFormat2GLFormatMap.isEmpty()) {
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_YV12,     GL_VIV_YV12);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_NV12,     GL_VIV_NV12);
-+
-+
-+        // The following formats should work but are untested!
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_NV21,     GL_VIV_NV21);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_UYVY,     GL_VIV_UYVY);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_YUYV,     GL_VIV_YUY2);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_RGB32,    GL_RGBA);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_RGB24,    GL_RGB);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_RGB565,   GL_RGB565);
-+        static_VideoFormat2GLFormatMap.insert(QVideoFrame::Format_BGRA32,   GL_BGRA_EXT);
-+    }
-+
-+    return static_VideoFormat2GLFormatMap;
-+}
-+
-+
-+
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideonode.h b/src/plugins/videonode/imx6/qsgvivantevideonode.h
-new file mode 100644
-index 0000000..ae2120a
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideonode.h
-@@ -0,0 +1,67 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QSGVIDEONODE_VIVANTE_H
-+#define QSGVIDEONODE_VIVANTE_H
-+
-+#include <private/qsgvideonode_p.h>
-+#include <QVideoSurfaceFormat>
-+
-+class QSGVivanteVideoMaterial;
-+class QSGVivanteVideoNode : public QSGVideoNode
-+{
-+public:
-+    QSGVivanteVideoNode(const QVideoSurfaceFormat &format);
-+    ~QSGVivanteVideoNode();
-+
-+    virtual QVideoFrame::PixelFormat pixelFormat() const { return mFormat.pixelFormat(); }
-+    void setCurrentFrame(const QVideoFrame &frame);
-+
-+    static const QMap<QVideoFrame::PixelFormat, GLenum>& getVideoFormat2GLFormatMap();
-+
-+private:
-+    QVideoSurfaceFormat mFormat;
-+    QSGVivanteVideoMaterial *mMaterial;
-+
-+    static QMap<QVideoFrame::PixelFormat, GLenum> static_VideoFormat2GLFormatMap;
-+};
-+
-+#endif // QSGVIDEONODE_VIVANTE_H
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideonodefactory.cpp b/src/plugins/videonode/imx6/qsgvivantevideonodefactory.cpp
-new file mode 100644
-index 0000000..e0711e1
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideonodefactory.cpp
-@@ -0,0 +1,60 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#include "qsgvivantevideonodefactory.h"
-+#include "qsgvivantevideonode.h"
-+
-+QList<QVideoFrame::PixelFormat> QSGVivanteVideoNodeFactory::supportedPixelFormats(
-+        QAbstractVideoBuffer::HandleType handleType) const
-+{
-+    if (handleType == QAbstractVideoBuffer::NoHandle)
-+        return QSGVivanteVideoNode::getVideoFormat2GLFormatMap().keys();
-+    else
-+        return QList<QVideoFrame::PixelFormat>();
-+}
-+
-+QSGVideoNode *QSGVivanteVideoNodeFactory::createNode(const QVideoSurfaceFormat &format)
-+{
-+    if (supportedPixelFormats(format.handleType()).contains(format.pixelFormat())) {
-+        return new QSGVivanteVideoNode(format);
-+    }
-+    return 0;
-+}
-diff --git a/src/plugins/videonode/imx6/qsgvivantevideonodefactory.h b/src/plugins/videonode/imx6/qsgvivantevideonodefactory.h
-new file mode 100644
-index 0000000..6fda61b
---- /dev/null
-+++ b/src/plugins/videonode/imx6/qsgvivantevideonodefactory.h
-@@ -0,0 +1,58 @@
-+/****************************************************************************
-+**
-+** Copyright (C) 2014 Pelagicore AG
-+** Contact: http://www.qt-project.org/legal
-+**
-+** This file is part of the Qt Toolkit.
-+**
-+** $QT_BEGIN_LICENSE:LGPL$
-+** Commercial License Usage
-+** Licensees holding valid commercial Qt licenses may use this file in
-+** accordance with the commercial license agreement provided with the
-+** Software or, alternatively, in accordance with the terms contained in
-+** a written agreement between you and Digia.  For licensing terms and
-+** conditions see http://qt.digia.com/licensing.  For further information
-+** use the contact form at http://qt.digia.com/contact-us.
-+**
-+** GNU Lesser General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU Lesser
-+** General Public License version 2.1 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.LGPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU Lesser General Public License version 2.1 requirements
-+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-+**
-+** In addition, as a special exception, Digia gives you certain additional
-+** rights.  These rights are described in the Digia Qt LGPL Exception
-+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-+**
-+** GNU General Public License Usage
-+** Alternatively, this file may be used under the terms of the GNU
-+** General Public License version 3.0 as published by the Free Software
-+** Foundation and appearing in the file LICENSE.GPL included in the
-+** packaging of this file.  Please review the following information to
-+** ensure the GNU General Public License version 3.0 requirements will be
-+** met: http://www.gnu.org/copyleft/gpl.html.
-+**
-+**
-+** $QT_END_LICENSE$
-+**
-+****************************************************************************/
-+
-+#ifndef QSGVIDEONODEFACTORY_VIVANTE_H
-+#define QSGVIDEONODEFACTORY_VIVANTE_H
-+
-+#include <QObject>
-+#include <private/qsgvideonode_p.h>
-+
-+class QSGVivanteVideoNodeFactory : public QObject, public QSGVideoNodeFactoryInterface
-+{
-+public:
-+    Q_OBJECT
-+    Q_PLUGIN_METADATA(IID QSGVideoNodeFactoryInterface_iid FILE "imx6.json")
-+    Q_INTERFACES(QSGVideoNodeFactoryInterface)
-+
-+    QList<QVideoFrame::PixelFormat> supportedPixelFormats(QAbstractVideoBuffer::HandleType handleType) const;
-+    QSGVideoNode *createNode(const QVideoSurfaceFormat &format);
-+};
-+#endif // QSGVIDEONODEFACTORY_VIVANTE_H
-diff --git a/src/plugins/videonode/videonode.pro b/src/plugins/videonode/videonode.pro
-new file mode 100644
-index 0000000..ecc1c0c
---- /dev/null
-+++ b/src/plugins/videonode/videonode.pro
-@@ -0,0 +1,3 @@
-+TEMPLATE = subdirs
-+
-+SUBDIRS += imx6
--- 
-2.0.0.rc2
-
diff --git a/meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend b/meta-fsl-arm/qt5-layer/recipes-qt/qt5/qtmultimedia_%.bbappend
deleted file mode 100644 (file)
index 873862b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-SRC_URI_append_mx6 += " file://add-imx6-support.patch"
-
-PACKAGE_ARCH_mx6 = "${MACHINE_SOCARCH}"