summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Goddard <michael.goddard@nokia.com>2011-11-01 12:46:48 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-02 02:38:02 +0100
commit7dfb883df639f8d80cec7bd2c51eb37561bc4522 (patch)
tree96fd66844a9733a354d7890bd3d71ba6c326fe23 /src
parent6a3a442ea6326ca5e94bd214ad4c88a9f9ec84f3 (diff)
Declare more metatypes and debug operators.
Nearly all of the multimedia metatypes used in the auto tests are now declared properly, and a large number of the types have debug operators as well. Removed the superfluous decls as well. Change-Id: I42cfe37562db0c71d9811b4577fc326a3326ccc9 Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/gsttools/qvideosurfacegstsink.cpp3
-rw-r--r--src/multimedia/audio/qaudio.cpp44
-rw-r--r--src/multimedia/audio/qaudio.h10
-rw-r--r--src/multimedia/audio/qaudio_mac.cpp15
-rw-r--r--src/multimedia/audio/qaudio_mac_p.h4
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo.h4
-rw-r--r--src/multimedia/audio/qaudioformat.cpp41
-rw-r--r--src/multimedia/audio/qaudioformat.h11
-rw-r--r--src/multimedia/video/qabstractvideobuffer.cpp14
-rw-r--r--src/multimedia/video/qabstractvideobuffer.h1
-rw-r--r--src/multimedia/video/qabstractvideosurface.cpp23
-rw-r--r--src/multimedia/video/qabstractvideosurface.h7
-rw-r--r--src/multimedia/video/qvideoframe.cpp113
-rw-r--r--src/multimedia/video/qvideoframe.h5
-rw-r--r--src/multimedia/video/qvideosurfaceformat.cpp11
-rw-r--r--src/multimedia/video/qvideosurfaceformat.h2
-rw-r--r--src/multimediawidgets/qgraphicsvideoitem.cpp2
17 files changed, 268 insertions, 42 deletions
diff --git a/src/gsttools/qvideosurfacegstsink.cpp b/src/gsttools/qvideosurfacegstsink.cpp
index 3df1401d2..d4bb20837 100644
--- a/src/gsttools/qvideosurfacegstsink.cpp
+++ b/src/gsttools/qvideosurfacegstsink.cpp
@@ -57,9 +57,6 @@
//#define DEBUG_VIDEO_SURFACE_SINK
-
-Q_DECLARE_METATYPE(QVideoSurfaceFormat)
-
QVideoSurfaceGstDelegate::QVideoSurfaceGstDelegate(
QAbstractVideoSurface *surface)
: m_surface(surface)
diff --git a/src/multimedia/audio/qaudio.cpp b/src/multimedia/audio/qaudio.cpp
index bb18f8448..610db2f35 100644
--- a/src/multimedia/audio/qaudio.cpp
+++ b/src/multimedia/audio/qaudio.cpp
@@ -41,7 +41,7 @@
#include <qaudio.h>
-
+#include <QDebug>
QT_BEGIN_NAMESPACE
@@ -98,6 +98,48 @@ public:
\value AudioInput audio input device
*/
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug dbg, QAudio::Error error)
+{
+ switch (error) {
+ case QAudio::NoError:
+ return dbg.nospace() << "NoError";
+ case QAudio::OpenError:
+ return dbg.nospace() << "OpenError";
+ case QAudio::IOError:
+ return dbg.nospace() << "IOError";
+ case QAudio::UnderrunError:
+ return dbg.nospace() << "UnderrunError";
+ case QAudio::FatalError:
+ return dbg.nospace() << "FatalError";
+ }
+}
+
+QDebug operator<<(QDebug dbg, QAudio::State state)
+{
+ switch (state) {
+ case QAudio::ActiveState:
+ return dbg.nospace() << "ActiveState";
+ case QAudio::SuspendedState:
+ return dbg.nospace() << "SuspendedState";
+ case QAudio::StoppedState:
+ return dbg.nospace() << "StoppedState";
+ case QAudio::IdleState:
+ return dbg.nospace() << "IdleState";
+ }
+}
+
+QDebug operator<<(QDebug dbg, QAudio::Mode mode)
+{
+ switch (mode) {
+ case QAudio::AudioInput:
+ return dbg.nospace() << "AudioInput";
+ case QAudio::AudioOutput:
+ return dbg.nospace() << "AudioOutput";
+ }
+}
+#endif
+
QT_END_NAMESPACE
diff --git a/src/multimedia/audio/qaudio.h b/src/multimedia/audio/qaudio.h
index fff1094c0..fa6ae3cf2 100644
--- a/src/multimedia/audio/qaudio.h
+++ b/src/multimedia/audio/qaudio.h
@@ -63,12 +63,18 @@ namespace QAudio
enum Mode { AudioInput, AudioOutput };
}
-QT_END_NAMESPACE
+#ifndef QT_NO_DEBUG_STREAM
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::Error error);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::State state);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug dbg, QAudio::Mode mode);
+#endif
-QT_END_HEADER
+QT_END_NAMESPACE
Q_DECLARE_METATYPE(QAudio::Error)
Q_DECLARE_METATYPE(QAudio::State)
Q_DECLARE_METATYPE(QAudio::Mode)
+QT_END_HEADER
+
#endif // QAUDIO_H
diff --git a/src/multimedia/audio/qaudio_mac.cpp b/src/multimedia/audio/qaudio_mac.cpp
index 461508304..733f20a82 100644
--- a/src/multimedia/audio/qaudio_mac.cpp
+++ b/src/multimedia/audio/qaudio_mac.cpp
@@ -44,21 +44,6 @@
QT_BEGIN_NAMESPACE
-// Debugging
-QDebug operator<<(QDebug dbg, const QAudioFormat& audioFormat)
-{
- dbg.nospace() << "QAudioFormat(" <<
- audioFormat.frequency() << "," <<
- audioFormat.channels() << "," <<
- audioFormat.sampleSize()<< "," <<
- audioFormat.codec() << "," <<
- audioFormat.byteOrder() << "," <<
- audioFormat.sampleType() << ")";
-
- return dbg.space();
-}
-
-
// Conversion
QAudioFormat toQAudioFormat(AudioStreamBasicDescription const& sf)
{
diff --git a/src/multimedia/audio/qaudio_mac_p.h b/src/multimedia/audio/qaudio_mac_p.h
index 06ce43010..e18ba0f97 100644
--- a/src/multimedia/audio/qaudio_mac_p.h
+++ b/src/multimedia/audio/qaudio_mac_p.h
@@ -67,10 +67,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
-
-
-extern QDebug operator<<(QDebug dbg, const QAudioFormat& audioFormat);
-
extern QAudioFormat toQAudioFormat(const AudioStreamBasicDescription& streamFormat);
extern AudioStreamBasicDescription toAudioStreamBasicDescription(QAudioFormat const& audioFormat);
diff --git a/src/multimedia/audio/qaudiodeviceinfo.h b/src/multimedia/audio/qaudiodeviceinfo.h
index f16122b4d..fe7622c86 100644
--- a/src/multimedia/audio/qaudiodeviceinfo.h
+++ b/src/multimedia/audio/qaudiodeviceinfo.h
@@ -109,8 +109,8 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
Q_DECLARE_METATYPE(QAudioDeviceInfo)
+QT_END_HEADER
+
#endif // QAUDIODEVICEINFO_H
diff --git a/src/multimedia/audio/qaudioformat.cpp b/src/multimedia/audio/qaudioformat.cpp
index 6ed72516c..39a36f0fb 100644
--- a/src/multimedia/audio/qaudioformat.cpp
+++ b/src/multimedia/audio/qaudioformat.cpp
@@ -403,5 +403,46 @@ QAudioFormat::SampleType QAudioFormat::sampleType() const
\value LittleEndian Samples are little endian byte order
*/
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug dbg, QAudioFormat::Endian endian)
+{
+ switch (endian) {
+ case QAudioFormat::BigEndian:
+ return dbg.nospace() << "BigEndian";
+ case QAudioFormat::LittleEndian:
+ return dbg.nospace() << "LittleEndian";
+ }
+}
+
+QDebug operator<<(QDebug dbg, QAudioFormat::SampleType type)
+{
+ switch (type) {
+ case QAudioFormat::SignedInt:
+ return dbg.nospace() << "SignedInt";
+ case QAudioFormat::UnSignedInt:
+ return dbg.nospace() << "UnSignedInt";
+ case QAudioFormat::Float:
+ return dbg.nospace() << "Float";
+ default:
+ return dbg.nospace() << "Unknown";
+ }
+}
+
+QDebug operator<<(QDebug dbg, const QAudioFormat &f)
+{
+ dbg.nospace() << "QAudioFormat(" << f.sampleRate();
+ dbg.nospace() << "Hz, " << f.sampleSize();
+ dbg.nospace() << "bit, channelCount=" << f.channelCount();
+ dbg.nospace() << ", sampleType=" << f.sampleType();
+ dbg.nospace() << ", byteOrder=" << f.byteOrder();
+ dbg.nospace() << ", codec=" << f.codec();
+ dbg.nospace() << ")";
+
+ return dbg.space();
+}
+#endif
+
+
+
QT_END_NAMESPACE
diff --git a/src/multimedia/audio/qaudioformat.h b/src/multimedia/audio/qaudioformat.h
index 087a16a9d..5d2387ef0 100644
--- a/src/multimedia/audio/qaudioformat.h
+++ b/src/multimedia/audio/qaudioformat.h
@@ -55,8 +55,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
-
-
class QAudioFormatPrivate;
class Q_MULTIMEDIA_EXPORT QAudioFormat
@@ -101,9 +99,18 @@ private:
QSharedDataPointer<QAudioFormatPrivate> d;
};
+#ifndef QT_NO_DEBUG_STREAM
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QAudioFormat &);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAudioFormat::SampleType);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAudioFormat::Endian);
+#endif
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QAudioFormat)
+Q_DECLARE_METATYPE(QAudioFormat::SampleType)
+Q_DECLARE_METATYPE(QAudioFormat::Endian)
+
QT_END_HEADER
#endif // QAUDIOFORMAT_H
diff --git a/src/multimedia/video/qabstractvideobuffer.cpp b/src/multimedia/video/qabstractvideobuffer.cpp
index d0f07ab01..ea946a6a5 100644
--- a/src/multimedia/video/qabstractvideobuffer.cpp
+++ b/src/multimedia/video/qabstractvideobuffer.cpp
@@ -219,6 +219,20 @@ QDebug operator<<(QDebug dbg, QAbstractVideoBuffer::HandleType type)
return dbg.nospace() << QString(QLatin1String("UserHandle(%1)")).arg(int(type)).toAscii().constData();
}
}
+
+QDebug operator<<(QDebug dbg, QAbstractVideoBuffer::MapMode mode)
+{
+ switch (mode) {
+ case QAbstractVideoBuffer::ReadOnly:
+ return dbg.nospace() << "ReadOnly";
+ case QAbstractVideoBuffer::ReadWrite:
+ return dbg.nospace() << "ReadWrite";
+ case QAbstractVideoBuffer::WriteOnly:
+ return dbg.nospace() << "WriteOnly";
+ default:
+ return dbg.nospace() << "NotMapped";
+ }
+}
#endif
QT_END_NAMESPACE
diff --git a/src/multimedia/video/qabstractvideobuffer.h b/src/multimedia/video/qabstractvideobuffer.h
index a7f51f4ad..1426e3115 100644
--- a/src/multimedia/video/qabstractvideobuffer.h
+++ b/src/multimedia/video/qabstractvideobuffer.h
@@ -104,6 +104,7 @@ private:
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAbstractVideoBuffer::HandleType);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QAbstractVideoBuffer::MapMode);
#endif
QT_END_NAMESPACE
diff --git a/src/multimedia/video/qabstractvideosurface.cpp b/src/multimedia/video/qabstractvideosurface.cpp
index 90a7d19e0..b4a7cec82 100644
--- a/src/multimedia/video/qabstractvideosurface.cpp
+++ b/src/multimedia/video/qabstractvideosurface.cpp
@@ -46,12 +46,10 @@
#include "qvideosurfaceformat.h"
#include <QtCore/qvariant.h>
+#include <QDebug>
QT_BEGIN_NAMESPACE
-Q_DECLARE_METATYPE(QVideoSurfaceFormat)
-Q_DECLARE_METATYPE(QAbstractVideoSurface::Error)
-
class QAbstractVideoSurfacePrivate {
@@ -340,6 +338,25 @@ void QAbstractVideoSurface::setNativeResolution(const QSize &resolution)
\since 1.1
*/
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug dbg, const QAbstractVideoSurface::Error& error)
+{
+ switch (error) {
+ case QAbstractVideoSurface::UnsupportedFormatError:
+ return dbg.nospace() << "UnsupportedFormatError";
+ case QAbstractVideoSurface::IncorrectFormatError:
+ return dbg.nospace() << "IncorrectFormatError";
+ case QAbstractVideoSurface::StoppedError:
+ return dbg.nospace() << "StoppedError";
+ case QAbstractVideoSurface::ResourceError:
+ return dbg.nospace() << "ResourceError";
+ default:
+ return dbg.nospace() << "NoError";
+ }
+}
+#endif
+
+
QT_END_NAMESPACE
#include "moc_qabstractvideosurface.cpp"
diff --git a/src/multimedia/video/qabstractvideosurface.h b/src/multimedia/video/qabstractvideosurface.h
index d2c2f0d49..8bc9a62bf 100644
--- a/src/multimedia/video/qabstractvideosurface.h
+++ b/src/multimedia/video/qabstractvideosurface.h
@@ -51,7 +51,6 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Multimedia)
-
class QRectF;
class QVideoSurfaceFormat;
@@ -107,8 +106,14 @@ private:
QScopedPointer<QAbstractVideoSurfacePrivate> d_ptr;
};
+#ifndef QT_NO_DEBUG_STREAM
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QAbstractVideoSurface::Error &);
+#endif
+
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QAbstractVideoSurface::Error)
+
QT_END_HEADER
#endif
diff --git a/src/multimedia/video/qvideoframe.cpp b/src/multimedia/video/qvideoframe.cpp
index efcb4d54f..d18f4875f 100644
--- a/src/multimedia/video/qvideoframe.cpp
+++ b/src/multimedia/video/qvideoframe.cpp
@@ -640,7 +640,10 @@ QVariant QVideoFrame::handle() const
}
/*!
- Returns the presentation time when the frame should be displayed.
+ Returns the presentation time (in microseconds) when the frame should be displayed.
+
+ An invalid time is represented as -1.
+
\since 1.0
*/
qint64 QVideoFrame::startTime() const
@@ -649,7 +652,10 @@ qint64 QVideoFrame::startTime() const
}
/*!
- Sets the presentation \a time when the frame should be displayed.
+ Sets the presentation \a time (in microseconds) when the frame should initially be displayed.
+
+ An invalid time is represented as -1.
+
\since 1.0
*/
void QVideoFrame::setStartTime(qint64 time)
@@ -658,7 +664,9 @@ void QVideoFrame::setStartTime(qint64 time)
}
/*!
- Returns the presentation time when a frame should stop being displayed.
+ Returns the presentation time (in microseconds) when a frame should stop being displayed.
+
+ An invalid time is represented as -1.
\since 1.0
*/
@@ -668,7 +676,10 @@ qint64 QVideoFrame::endTime() const
}
/*!
- Sets the presentation \a time when a frame should stop being displayed.
+ Sets the presentation \a time (in microseconds) when a frame should stop being displayed.
+
+ An invalid time is represented as -1.
+
\since 1.0
*/
void QVideoFrame::setEndTime(qint64 time)
@@ -761,7 +772,6 @@ QImage::Format QVideoFrame::imageFormatFromPixelFormat(PixelFormat format)
}
#ifndef QT_NO_DEBUG_STREAM
-
QDebug operator<<(QDebug dbg, QVideoFrame::PixelFormat pf)
{
switch (pf) {
@@ -837,6 +847,99 @@ QDebug operator<<(QDebug dbg, QVideoFrame::PixelFormat pf)
}
}
+QDebug operator<<(QDebug dbg, QVideoFrame::FieldType f)
+{
+ switch (f) {
+ case QVideoFrame::TopField:
+ return dbg.nospace() << "TopField";
+ case QVideoFrame::BottomField:
+ return dbg.nospace() << "BottomField";
+ case QVideoFrame::InterlacedFrame:
+ return dbg.nospace() << "InterlacedFrame";
+ default:
+ return dbg.nospace() << "ProgressiveFrame";
+ }
+}
+
+static QString qFormatTimeStamps(qint64 start, qint64 end)
+{
+ // Early out for invalid.
+ if (start < 0)
+ return QLatin1String("[no timestamp]");
+
+ bool onlyOne = (start == end);
+
+ // [hh:]mm:ss.ms
+ const int s_millis = start % 1000000;
+ start /= 1000000;
+ const int s_seconds = start % 60;
+ start /= 60;
+ const int s_minutes = start % 60;
+ start /= 60;
+
+ if (onlyOne) {
+ if (start > 0)
+ return QString::fromLatin1("@%1:%2:%3.%4")
+ .arg(start, 1, 10, QLatin1Char('0'))
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'));
+ else
+ return QString::fromLatin1("@%1:%2.%3")
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'));
+ } else if (end == -1) {
+ // Similar to start-start, except it means keep displaying it?
+ if (start > 0)
+ return QString::fromLatin1("%1:%2:%3.%4 - forever")
+ .arg(start, 1, 10, QLatin1Char('0'))
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'));
+ else
+ return QString::fromLatin1("%1:%2.%3 - forever")
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'));
+ } else {
+ const int e_millis = end % 1000000;
+ end /= 1000000;
+ const int e_seconds = end % 60;
+ end /= 60;
+ const int e_minutes = end % 60;
+ end /= 60;
+
+ if (start > 0 || end > 0)
+ return QString::fromLatin1("%1:%2:%3.%4 - %5:%6:%7.%8")
+ .arg(start, 1, 10, QLatin1Char('0'))
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'))
+ .arg(end, 1, 10, QLatin1Char('0'))
+ .arg(e_minutes, 2, 10, QLatin1Char('0'))
+ .arg(e_seconds, 2, 10, QLatin1Char('0'))
+ .arg(e_millis, 2, 10, QLatin1Char('0'));
+ else
+ return QString::fromLatin1("%1:%2.%3 - %4:%5.%6")
+ .arg(s_minutes, 2, 10, QLatin1Char('0'))
+ .arg(s_seconds, 2, 10, QLatin1Char('0'))
+ .arg(s_millis, 2, 10, QLatin1Char('0'))
+ .arg(e_minutes, 2, 10, QLatin1Char('0'))
+ .arg(e_seconds, 2, 10, QLatin1Char('0'))
+ .arg(e_millis, 2, 10, QLatin1Char('0'));
+ }
+}
+
+QDebug operator<<(QDebug dbg, const QVideoFrame& f)
+{
+ return dbg << "QVideoFrame(" << f.size() << ","
+ << f.pixelFormat() << ", "
+ << f.handleType() << ", "
+ << f.mapMode() << ", "
+ << qFormatTimeStamps(f.startTime(), f.endTime()).toLatin1().constData()
+ << ")";
+}
#endif
QT_END_NAMESPACE
diff --git a/src/multimedia/video/qvideoframe.h b/src/multimedia/video/qvideoframe.h
index 9797a586a..1a425963b 100644
--- a/src/multimedia/video/qvideoframe.h
+++ b/src/multimedia/video/qvideoframe.h
@@ -164,11 +164,14 @@ private:
};
#ifndef QT_NO_DEBUG_STREAM
-Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::PixelFormat );
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QVideoFrame&);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::FieldType);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoFrame::PixelFormat);
#endif
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QVideoFrame)
Q_DECLARE_METATYPE(QVideoFrame::FieldType)
Q_DECLARE_METATYPE(QVideoFrame::PixelFormat)
diff --git a/src/multimedia/video/qvideosurfaceformat.cpp b/src/multimedia/video/qvideosurfaceformat.cpp
index 3808292df..526674755 100644
--- a/src/multimedia/video/qvideosurfaceformat.cpp
+++ b/src/multimedia/video/qvideosurfaceformat.cpp
@@ -591,7 +591,6 @@ void QVideoSurfaceFormat::setProperty(const char *name, const QVariant &value)
#ifndef QT_NO_DEBUG_STREAM
-
QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::YCbCrColorSpace cs)
{
switch (cs) {
@@ -612,6 +611,16 @@ QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::YCbCrColorSpace cs)
}
}
+QDebug operator<<(QDebug dbg, QVideoSurfaceFormat::Direction dir)
+{
+ switch (dir) {
+ case QVideoSurfaceFormat::BottomToTop:
+ return dbg.nospace() << "BottomToTop";
+ case QVideoSurfaceFormat::TopToBottom:
+ return dbg.nospace() << "TopToBottom";
+ }
+}
+
QDebug operator<<(QDebug dbg, const QVideoSurfaceFormat &f)
{
dbg.nospace() << "QVideoSurfaceFormat(" << f.pixelFormat();
diff --git a/src/multimedia/video/qvideosurfaceformat.h b/src/multimedia/video/qvideosurfaceformat.h
index 67299177b..7d65a6c7e 100644
--- a/src/multimedia/video/qvideosurfaceformat.h
+++ b/src/multimedia/video/qvideosurfaceformat.h
@@ -135,11 +135,13 @@ private:
#ifndef QT_NO_DEBUG_STREAM
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, const QVideoSurfaceFormat &);
+Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoSurfaceFormat::Direction);
Q_MULTIMEDIA_EXPORT QDebug operator<<(QDebug, QVideoSurfaceFormat::YCbCrColorSpace);
#endif
QT_END_NAMESPACE
+Q_DECLARE_METATYPE(QVideoSurfaceFormat)
Q_DECLARE_METATYPE(QVideoSurfaceFormat::Direction)
Q_DECLARE_METATYPE(QVideoSurfaceFormat::YCbCrColorSpace)
diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp
index c92fb1ef5..07ff69f47 100644
--- a/src/multimediawidgets/qgraphicsvideoitem.cpp
+++ b/src/multimediawidgets/qgraphicsvideoitem.cpp
@@ -54,8 +54,6 @@
#include <QtOpenGL/qgl.h>
#endif
-Q_DECLARE_METATYPE(QVideoSurfaceFormat)
-
QT_BEGIN_NAMESPACE
class QGraphicsVideoItemPrivate