diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2011-11-01 12:46:48 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-02 02:38:02 +0100 |
commit | 7dfb883df639f8d80cec7bd2c51eb37561bc4522 (patch) | |
tree | 96fd66844a9733a354d7890bd3d71ba6c326fe23 /src/multimedia/video | |
parent | 6a3a442ea6326ca5e94bd214ad4c88a9f9ec84f3 (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/multimedia/video')
-rw-r--r-- | src/multimedia/video/qabstractvideobuffer.cpp | 14 | ||||
-rw-r--r-- | src/multimedia/video/qabstractvideobuffer.h | 1 | ||||
-rw-r--r-- | src/multimedia/video/qabstractvideosurface.cpp | 23 | ||||
-rw-r--r-- | src/multimedia/video/qabstractvideosurface.h | 7 | ||||
-rw-r--r-- | src/multimedia/video/qvideoframe.cpp | 113 | ||||
-rw-r--r-- | src/multimedia/video/qvideoframe.h | 5 | ||||
-rw-r--r-- | src/multimedia/video/qvideosurfaceformat.cpp | 11 | ||||
-rw-r--r-- | src/multimedia/video/qvideosurfaceformat.h | 2 |
8 files changed, 165 insertions, 11 deletions
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) |