summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@qt.io>2016-11-10 17:42:20 +0100
committerYoann Lopes <yoann.lopes@qt.io>2017-01-27 13:28:10 +0000
commit1761e088b6f5a6b1c76556f2d3a697fc12abd168 (patch)
tree129cb487fdaba5efd2cb22470e848028323ea0cb /src
parent18a713a592796d2907b4019c7665c435553ef287 (diff)
downloadqtmultimedia-1761e088b6f5a6b1c76556f2d3a697fc12abd168.tar.gz
DirectShow: Add audio and video probes classes
This change only adds the audio and video probe controls, the actual implementation comes in a separate change. Change-Id: I0136cf1ef3cea3d83f7203d1955513ed44d93e5a Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/directshow/common/common.pri4
-rw-r--r--src/plugins/directshow/common/directshowaudioprobecontrol.cpp57
-rw-r--r--src/plugins/directshow/common/directshowaudioprobecontrol.h64
-rw-r--r--src/plugins/directshow/common/directshowvideoprobecontrol.cpp57
-rw-r--r--src/plugins/directshow/common/directshowvideoprobecontrol.h64
5 files changed, 246 insertions, 0 deletions
diff --git a/src/plugins/directshow/common/common.pri b/src/plugins/directshow/common/common.pri
index c86073904..9b7c1e3f4 100644
--- a/src/plugins/directshow/common/common.pri
+++ b/src/plugins/directshow/common/common.pri
@@ -1,7 +1,11 @@
INCLUDEPATH += $$PWD
HEADERS += \
+ $$PWD/directshowvideoprobecontrol.h \
+ $$PWD/directshowaudioprobecontrol.h \
$$PWD/directshowsamplegrabber.h
SOURCES += \
+ $$PWD/directshowvideoprobecontrol.cpp \
+ $$PWD/directshowaudioprobecontrol.cpp \
$$PWD/directshowsamplegrabber.cpp
diff --git a/src/plugins/directshow/common/directshowaudioprobecontrol.cpp b/src/plugins/directshow/common/directshowaudioprobecontrol.cpp
new file mode 100644
index 000000000..55ef70178
--- /dev/null
+++ b/src/plugins/directshow/common/directshowaudioprobecontrol.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** 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 The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "directshowaudioprobecontrol.h"
+#include "directshowglobal.h"
+
+QT_BEGIN_NAMESPACE
+
+DirectShowAudioProbeControl::DirectShowAudioProbeControl(QObject *p)
+ : QMediaAudioProbeControl(p)
+{
+
+}
+
+DirectShowAudioProbeControl::~DirectShowAudioProbeControl()
+{
+ if (m_ref.deref())
+ qCWarning(qtDirectShowPlugin, "QAudioProbe control destroyed while it's still being referenced!!!");
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowaudioprobecontrol.h b/src/plugins/directshow/common/directshowaudioprobecontrol.h
new file mode 100644
index 000000000..553bd1178
--- /dev/null
+++ b/src/plugins/directshow/common/directshowaudioprobecontrol.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** 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 The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DIRECTSHOWAUDIOPROBECONTROL_H
+#define DIRECTSHOWAUDIOPROBECONTROL_H
+
+#include <qmediaaudioprobecontrol.h>
+
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_NAMESPACE
+
+class DirectShowAudioProbeControl : public QMediaAudioProbeControl
+{
+ Q_OBJECT
+public:
+ explicit DirectShowAudioProbeControl(QObject *p = nullptr);
+ ~DirectShowAudioProbeControl();
+
+ bool ref() { return m_ref.ref(); }
+ bool deref() { return m_ref.deref(); }
+private:
+ QAtomicInt m_ref;
+};
+
+QT_END_NAMESPACE
+
+#endif // DIRECTSHOWAUDIOPROBECONTROL_H
diff --git a/src/plugins/directshow/common/directshowvideoprobecontrol.cpp b/src/plugins/directshow/common/directshowvideoprobecontrol.cpp
new file mode 100644
index 000000000..5ec1ff064
--- /dev/null
+++ b/src/plugins/directshow/common/directshowvideoprobecontrol.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** 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 The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "directshowvideoprobecontrol.h"
+#include "directshowglobal.h"
+
+QT_BEGIN_NAMESPACE
+
+DirectShowVideoProbeControl::DirectShowVideoProbeControl(QObject *p)
+ : QMediaVideoProbeControl(p)
+{
+
+}
+
+DirectShowVideoProbeControl::~DirectShowVideoProbeControl()
+{
+ if (m_ref.deref())
+ qCWarning(qtDirectShowPlugin, "QVideoProbe control destroyed while it's still being referenced!!!");
+}
+
+QT_END_NAMESPACE
diff --git a/src/plugins/directshow/common/directshowvideoprobecontrol.h b/src/plugins/directshow/common/directshowvideoprobecontrol.h
new file mode 100644
index 000000000..458263234
--- /dev/null
+++ b/src/plugins/directshow/common/directshowvideoprobecontrol.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** 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 The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef DIRECTSHOWVIDEOPROBECONTROL_H
+#define DIRECTSHOWVIDEOPROBECONTROL_H
+
+#include <qmediavideoprobecontrol.h>
+
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_NAMESPACE
+
+class DirectShowVideoProbeControl : public QMediaVideoProbeControl
+{
+ Q_OBJECT
+public:
+ explicit DirectShowVideoProbeControl(QObject *p = nullptr);
+ ~DirectShowVideoProbeControl();
+
+ bool ref() { return m_ref.ref(); }
+ bool deref() { return m_ref.deref(); }
+private:
+ QAtomicInt m_ref;
+};
+
+QT_END_NAMESPACE
+
+#endif // DIRECTSHOWVIDEOPROBECONTROL_H