diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 13:15:45 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-05-23 13:15:45 +0200 |
commit | 0ef52f01029176a8fb8fbef2c22ae9350635ebe1 (patch) | |
tree | fad805097d0e40ba57dcfb61ac3067737c7a2ae3 | |
parent | cb324a50c920b275ef6c04162712b1a6f19bbe8d (diff) | |
parent | 5c087bb6153b951e1c5709ee7f998819d08a6122 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I24ffb71c4cc2e262394797deb8a22b2cf9a80c3c
70 files changed, 277 insertions, 246 deletions
diff --git a/config.tests/android/android.pro b/config.tests/android/android.pro new file mode 100644 index 000000000..dcf5df184 --- /dev/null +++ b/config.tests/android/android.pro @@ -0,0 +1,4 @@ +CONFIG += java +API_VERSION = android-11 +JAVASOURCES += main.java + diff --git a/config.tests/android/main.java b/config.tests/android/main.java new file mode 100644 index 000000000..1ab872599 --- /dev/null +++ b/config.tests/android/main.java @@ -0,0 +1,6 @@ +import android.graphics.SurfaceTexture; + +class BuildTest +{ + public static void main(String [] args) { } +} diff --git a/config.tests/directshow/main.cpp b/config.tests/directshow/main.cpp index 6611741db..55e2e80ae 100644 --- a/config.tests/directshow/main.cpp +++ b/config.tests/directshow/main.cpp @@ -43,13 +43,6 @@ #include <d3d9.h> #include <vmr9.h> -#pragma include_alias("dxtrans.h","qedit.h") -#define __IDxtCompositor_INTERFACE_DEFINED__ -#define __IDxtAlphaSetter_INTERFACE_DEFINED__ -#define __IDxtJpeg_INTERFACE_DEFINED__ -#define __IDxtKey_INTERFACE_DEFINED__ -#include <qedit.h> - int main(int, char**) { return 0; diff --git a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc index d0b1694e8..d75584485 100644 --- a/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc +++ b/examples/multimedia/audiodevices/doc/src/audiodevices.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiodevices + \example audiodevices \title Audio Devices Example \ingroup multimedia_examples \brief The Audio Devices example shows the application of the audio devices APIs diff --git a/examples/multimedia/audioengine/doc/src/audioengine.qdoc b/examples/multimedia/audioengine/doc/src/audioengine.qdoc index b52945851..c83247df1 100644 --- a/examples/multimedia/audioengine/doc/src/audioengine.qdoc +++ b/examples/multimedia/audioengine/doc/src/audioengine.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audioengine + \example audioengine \title AudioEngine Example \ingroup multimedia_examples \brief The Audio Engine example demonstrates 3D sound control using diff --git a/examples/multimedia/audioinput/doc/src/audioinput.qdoc b/examples/multimedia/audioinput/doc/src/audioinput.qdoc index 8c4f3542c..39ef26156 100644 --- a/examples/multimedia/audioinput/doc/src/audioinput.qdoc +++ b/examples/multimedia/audioinput/doc/src/audioinput.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audioinput + \example audioinput \title Audio Input Example \ingroup multimedia_examples \brief The Audio Input Example shows the use of the QAudioInput class. diff --git a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc index 9d028efa9..bc79e6a5d 100644 --- a/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc +++ b/examples/multimedia/audiooutput/doc/src/audiooutput.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiooutput + \example audiooutput \title Audio Output Example \ingroup multimedia_examples \brief The Audio Output Example show the use of the QAudioOutput API. diff --git a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc index a369337e6..8453ea34e 100644 --- a/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc +++ b/examples/multimedia/audiorecorder/doc/src/audiorecorder.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/audiorecorder + \example audiorecorder \title Audio Recorder Example \ingroup multimedia_examples \brief The Audio Recorder Example shows how to create a simple audio recorder. diff --git a/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc b/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc index 17870b6a5..99c41114a 100644 --- a/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc +++ b/examples/multimedia/declarative-radio/doc/src/declarative-radio.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/declarative-radio + \example declarative-radio \title Declarative Radio Example \brief Demonstrates the radio functionality \ingroup multimedia_examples diff --git a/examples/multimedia/spectrum/doc/src/spectrum.qdoc b/examples/multimedia/spectrum/doc/src/spectrum.qdoc index 4c9ce60e8..280838956 100644 --- a/examples/multimedia/spectrum/doc/src/spectrum.qdoc +++ b/examples/multimedia/spectrum/doc/src/spectrum.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimedia/spectrum + \example spectrum \title Spectrum Example \ingroup multimedia_examples \brief The Spectrum Example uses a combination multimedia APIs to process microphone input. diff --git a/examples/multimedia/video/doc/src/qmlvideo.qdoc b/examples/multimedia/video/doc/src/qmlvideo.qdoc index 9a2cb37cf..1efed8005 100644 --- a/examples/multimedia/video/doc/src/qmlvideo.qdoc +++ b/examples/multimedia/video/doc/src/qmlvideo.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimedia/video/qmlvideo +\example video/qmlvideo \title QML Video Example \ingroup multimedia_examples diff --git a/examples/multimedia/video/doc/src/qmlvideofx.qdoc b/examples/multimedia/video/doc/src/qmlvideofx.qdoc index b2ea12882..f4abbc571 100644 --- a/examples/multimedia/video/doc/src/qmlvideofx.qdoc +++ b/examples/multimedia/video/doc/src/qmlvideofx.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimedia/video/qmlvideofx +\example video/qmlvideofx \title QML Video Shader Effects Example \ingroup multimedia_examples diff --git a/examples/multimedia/video/qmlvideo/main.cpp b/examples/multimedia/video/qmlvideo/main.cpp index 1a9c52391..e44476a15 100644 --- a/examples/multimedia/video/qmlvideo/main.cpp +++ b/examples/multimedia/video/qmlvideo/main.cpp @@ -67,7 +67,9 @@ int main(int argc, char *argv[]) QString source1, source2; qreal volume = 0.5; QStringList args = app.arguments(); +#ifdef PERFORMANCEMONITOR_SUPPORT PerformanceMonitor::State performanceMonitorState; +#endif bool sourceIsUrl = false; for (int i = 1; i < args.size(); ++i) { const QByteArray arg = args.at(i).toUtf8(); diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp index 2b7a96f82..bd0644db6 100644 --- a/examples/multimediawidgets/camera/camera.cpp +++ b/examples/multimediawidgets/camera/camera.cpp @@ -46,6 +46,7 @@ #include <QMediaService> #include <QMediaRecorder> #include <QCameraViewfinder> +#include <QMediaMetaData> #include <QMessageBox> #include <QPalette> diff --git a/examples/multimediawidgets/camera/doc/src/camera.qdoc b/examples/multimediawidgets/camera/doc/src/camera.qdoc index a7bbf38cc..d1a855d4e 100644 --- a/examples/multimediawidgets/camera/doc/src/camera.qdoc +++ b/examples/multimediawidgets/camera/doc/src/camera.qdoc @@ -29,7 +29,7 @@ /*! -\example multimediawidgets/camera +\example camera \title Camera Example \ingroup multimedia_examples \brief The Camera Example shows how to use the API to capture a still image diff --git a/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc b/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc index de000d8b4..02e77854c 100644 --- a/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc +++ b/examples/multimediawidgets/declarative-camera/doc/src/declarative-camera.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimediawidgets/declarative-camera +\example declarative-camera \title QML Camera Example \ingroup multimedia_examples \brief The Camera Example shows how to use the API to capture a still image diff --git a/examples/multimediawidgets/player/doc/src/player.qdoc b/examples/multimediawidgets/player/doc/src/player.qdoc index 0e7d5dcf4..7a7230914 100644 --- a/examples/multimediawidgets/player/doc/src/player.qdoc +++ b/examples/multimediawidgets/player/doc/src/player.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimediawidgets/player + \example player \title Media Player Example \ingroup multimedia_examples \brief Demonstrates the audio and video playback functionality diff --git a/examples/multimediawidgets/player/player.cpp b/examples/multimediawidgets/player/player.cpp index a1142bef4..377a0ffb9 100644 --- a/examples/multimediawidgets/player/player.cpp +++ b/examples/multimediawidgets/player/player.cpp @@ -47,9 +47,9 @@ #include <QMediaService> #include <QMediaPlaylist> #include <QVideoProbe> +#include <QMediaMetaData> #include <QtWidgets> - Player::Player(QWidget *parent) : QWidget(parent) , videoWidget(0) diff --git a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc index 2b1e44df0..3ccdba5f5 100644 --- a/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc +++ b/examples/multimediawidgets/videographicsitem/doc/src/videographicsitem.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! -\example multimediawidgets/videographicsitem +\example videographicsitem \title Video Graphics Item Example \ingroup multimedia_examples \brief This example demonstrates how to stream video on a graphics scene. diff --git a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc index 765eb6b04..805a830bc 100644 --- a/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc +++ b/examples/multimediawidgets/videowidget/doc/src/videowidget.qdoc @@ -26,7 +26,7 @@ ****************************************************************************/ /*! - \example multimediawidgets/videowidget + \example videowidget \title Video Widget Example \ingroup multimedia_examples \brief This example is a simple video player diff --git a/qtmultimedia.pro b/qtmultimedia.pro index aeb97464d..53f6b9886 100644 --- a/qtmultimedia.pro +++ b/qtmultimedia.pro @@ -8,6 +8,8 @@ win32 { qtCompileTest(evr) } else:mac { qtCompileTest(avfoundation) +} else:android { + !qtCompileTest(android):error("QtMultimedia for Android requires API level 11") } else { qtCompileTest(alsa) qtCompileTest(pulseaudio) diff --git a/src/imports/audioengine/plugins.qmltypes b/src/imports/audioengine/plugins.qmltypes index 6a7dae1a4..8c6267bda 100644 --- a/src/imports/audioengine/plugins.qmltypes +++ b/src/imports/audioengine/plugins.qmltypes @@ -2,6 +2,8 @@ import QtQuick.tooling 1.1 // This file describes the plugin-supplied types contained in the library. // It is used for QML tooling purposes only. +// +// This file was auto-generated with the command 'qmlplugindump -notrelocatable QtAudioEngine 1.0'. Module { Component { @@ -12,27 +14,30 @@ Module { Component { name: "QDeclarativeAttenuationModelInverse" prototype: "QDeclarativeAttenuationModel" - exports: ["AttenuationModelInverse 1.0"] - Property { name: "start"; type: "qreal" } - Property { name: "end"; type: "qreal" } - Property { name: "rolloff"; type: "qreal" } + exports: ["QtAudioEngine/AttenuationModelInverse 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "start"; type: "double" } + Property { name: "end"; type: "double" } + Property { name: "rolloff"; type: "double" } } Component { name: "QDeclarativeAttenuationModelLinear" prototype: "QDeclarativeAttenuationModel" - exports: ["AttenuationModelLinear 1.0"] - Property { name: "start"; type: "qreal" } - Property { name: "end"; type: "qreal" } + exports: ["QtAudioEngine/AttenuationModelLinear 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "start"; type: "double" } + Property { name: "end"; type: "double" } } Component { name: "QDeclarativeAudioCategory" prototype: "QObject" - exports: ["AudioCategory 1.0"] - Property { name: "volume"; type: "qreal" } + exports: ["QtAudioEngine/AudioCategory 1.0"] + exportMetaObjectRevisions: [0] + Property { name: "volume"; type: "double" } Property { name: "name"; type: "string" } Signal { name: "volumeChanged" - Parameter { name: "newVolume"; type: "qreal" } + Parameter { name: "newVolume"; type: "double" } } Signal { name: "stopped" } Signal { name: "paused" } @@ -45,7 +50,8 @@ Module { name: "QDeclarativeAudioEngine" defaultProperty: "bank" prototype: "QObject" - exports: ["AudioEngine 1.0"] + exports: ["QtAudioEngine/AudioEngine 1.0"] + exportMetaObjectRevisions: [0] Property { name: "bank"; type: "QObject"; isList: true; isReadonly: true } Property { name: "categories"; type: "QObject"; isReadonly: true; isPointer: true } Property { name: "samples"; type: "QObject"; isReadonly: true; isPointer: true } @@ -58,8 +64,8 @@ Module { isReadonly: true isPointer: true } - Property { name: "dopplerFactor"; type: "qreal" } - Property { name: "speedOfSound"; type: "qreal" } + Property { name: "dopplerFactor"; type: "double" } + Property { name: "speedOfSound"; type: "double" } Signal { name: "ready" } Signal { name: "liveInstanceCountChanged" } Signal { name: "isLoadingChanged" } @@ -68,18 +74,20 @@ Module { Component { name: "QDeclarativeAudioListener" prototype: "QObject" - exports: ["AudioListener 1.0"] + exports: ["QtAudioEngine/AudioListener 1.0"] + exportMetaObjectRevisions: [0] Property { name: "engine"; type: "QDeclarativeAudioEngine"; isPointer: true } Property { name: "position"; type: "QVector3D" } Property { name: "direction"; type: "QVector3D" } Property { name: "velocity"; type: "QVector3D" } Property { name: "up"; type: "QVector3D" } - Property { name: "gain"; type: "qreal" } + Property { name: "gain"; type: "double" } } Component { name: "QDeclarativeAudioSample" prototype: "QObject" - exports: ["AudioSample 1.0"] + exports: ["QtAudioEngine/AudioSample 1.0"] + exportMetaObjectRevisions: [0] Property { name: "name"; type: "string" } Property { name: "source"; type: "QUrl" } Property { name: "preloaded"; type: "bool" } @@ -90,19 +98,21 @@ Module { Component { name: "QDeclarativePlayVariation" prototype: "QObject" - exports: ["PlayVariation 1.0"] + exports: ["QtAudioEngine/PlayVariation 1.0"] + exportMetaObjectRevisions: [0] Property { name: "sample"; type: "string" } Property { name: "looping"; type: "bool" } - Property { name: "maxGain"; type: "qreal" } - Property { name: "minGain"; type: "qreal" } - Property { name: "maxPitch"; type: "qreal" } - Property { name: "minPitch"; type: "qreal" } + Property { name: "maxGain"; type: "double" } + Property { name: "minGain"; type: "double" } + Property { name: "maxPitch"; type: "double" } + Property { name: "minPitch"; type: "double" } } Component { name: "QDeclarativeSound" defaultProperty: "playVariationlist" prototype: "QObject" - exports: ["Sound 1.0"] + exports: ["QtAudioEngine/Sound 1.0"] + exportMetaObjectRevisions: [0] Enum { name: "PlayType" values: { @@ -124,12 +134,12 @@ Module { Method { name: "play" } Method { name: "play" - Parameter { name: "gain"; type: "qreal" } + Parameter { name: "gain"; type: "double" } } Method { name: "play" - Parameter { name: "gain"; type: "qreal" } - Parameter { name: "pitch"; type: "qreal" } + Parameter { name: "gain"; type: "double" } + Parameter { name: "pitch"; type: "double" } } Method { name: "play" @@ -149,60 +159,60 @@ Module { Method { name: "play" Parameter { name: "position"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } + Parameter { name: "gain"; type: "double" } } Method { name: "play" Parameter { name: "position"; type: "QVector3D" } Parameter { name: "velocity"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } + Parameter { name: "gain"; type: "double" } } Method { name: "play" Parameter { name: "position"; type: "QVector3D" } Parameter { name: "velocity"; type: "QVector3D" } Parameter { name: "direction"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } + Parameter { name: "gain"; type: "double" } } Method { name: "play" Parameter { name: "position"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } - Parameter { name: "pitch"; type: "qreal" } + Parameter { name: "gain"; type: "double" } + Parameter { name: "pitch"; type: "double" } } Method { name: "play" Parameter { name: "position"; type: "QVector3D" } Parameter { name: "velocity"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } - Parameter { name: "pitch"; type: "qreal" } + Parameter { name: "gain"; type: "double" } + Parameter { name: "pitch"; type: "double" } } Method { name: "play" Parameter { name: "position"; type: "QVector3D" } Parameter { name: "velocity"; type: "QVector3D" } Parameter { name: "direction"; type: "QVector3D" } - Parameter { name: "gain"; type: "qreal" } - Parameter { name: "pitch"; type: "qreal" } + Parameter { name: "gain"; type: "double" } + Parameter { name: "pitch"; type: "double" } } Method { name: "newInstance"; type: "QDeclarativeSoundInstance*" } } Component { name: "QDeclarativeSoundCone" prototype: "QObject" - exports: [" 1.0"] - Property { name: "innerAngle"; type: "qreal" } - Property { name: "outerAngle"; type: "qreal" } - Property { name: "outerGain"; type: "qreal" } + Property { name: "innerAngle"; type: "double" } + Property { name: "outerAngle"; type: "double" } + Property { name: "outerGain"; type: "double" } } Component { name: "QDeclarativeSoundInstance" prototype: "QObject" - exports: ["SoundInstance 1.0"] + exports: ["QtAudioEngine/SoundInstance 1.0"] + exportMetaObjectRevisions: [0] Enum { name: "State" values: { - "StopppedState": 0, + "StoppedState": 0, "PlayingState": 1, "PausedState": 2 } @@ -213,14 +223,14 @@ Module { Property { name: "position"; type: "QVector3D" } Property { name: "direction"; type: "QVector3D" } Property { name: "velocity"; type: "QVector3D" } - Property { name: "gain"; type: "qreal" } - Property { name: "pitch"; type: "qreal" } + Property { name: "gain"; type: "double" } + Property { name: "pitch"; type: "double" } Method { name: "play" } Method { name: "stop" } Method { name: "pause" } Method { name: "updatePosition" - Parameter { name: "deltaTime"; type: "qreal" } + Parameter { name: "deltaTime"; type: "double" } } } Component { diff --git a/src/imports/multimedia/Video.qml b/src/imports/multimedia/Video.qml index f65054cda..bf53d5ff5 100644 --- a/src/imports/multimedia/Video.qml +++ b/src/imports/multimedia/Video.qml @@ -186,14 +186,14 @@ Item { This property holds the error state of the video. It can be one of: \list - \li NoError - there is no current error. - \li ResourceError - the video cannot be played due to a problem + \li MediaPlayer.NoError - there is no current error. + \li MediaPlayer.ResourceError - the video cannot be played due to a problem allocating resources. - \li FormatError - the video format is not supported. - \li NetworkError - the video cannot be played due to network issues. - \li AccessDenied - the video cannot be played due to insufficient + \li MediaPlayer.FormatError - the video format is not supported. + \li MediaPlayer.NetworkError - the video cannot be played due to network issues. + \li MediaPlayer.AccessDenied - the video cannot be played due to insufficient permissions. - \li ServiceMissing - the video cannot be played because the media + \li MediaPlayer.ServiceMissing - the video cannot be played because the media service could not be instantiated. \endlist @@ -295,15 +295,15 @@ Item { This property holds the status of media loading. It can be one of: \list - \li NoMedia - no media has been set. - \li Loading - the media is currently being loaded. - \li Loaded - the media has been loaded. - \li Buffering - the media is buffering data. - \li Stalled - playback has been interrupted while the media is buffering data. - \li Buffered - the media has buffered data. - \li EndOfMedia - the media has played to the end. - \li InvalidMedia - the media cannot be played. - \li UnknownStatus - the status of the media cannot be determined. + \li MediaPlayer.NoMedia - no media has been set. + \li MediaPlayer.Loading - the media is currently being loaded. + \li MediaPlayer.Loaded - the media has been loaded. + \li MediaPlayer.Buffering - the media is buffering data. + \li MediaPlayer.Stalled - playback has been interrupted while the media is buffering data. + \li MediaPlayer.Buffered - the media has buffered data. + \li MediaPlayer.EndOfMedia - the media has played to the end. + \li MediaPlayer.InvalidMedia - the media cannot be played. + \li MediaPlayer.UnknownStatus - the status of the media cannot be determined. \endlist */ property alias status: player.status diff --git a/src/imports/multimedia/qdeclarativecamerafocus.cpp b/src/imports/multimedia/qdeclarativecamerafocus.cpp index 19d8ca81e..4b5544d2a 100644 --- a/src/imports/multimedia/qdeclarativecamerafocus.cpp +++ b/src/imports/multimedia/qdeclarativecamerafocus.cpp @@ -179,7 +179,10 @@ bool QDeclarativeCameraFocus::isFocusModeSupported(QDeclarativeCamera::FocusMode void QDeclarativeCameraFocus::setFocusMode(QDeclarativeCamera::FocusMode mode) { - m_focus->setFocusMode(QCameraFocus::FocusModes(int(mode))); + if (mode != focusMode()) { + m_focus->setFocusMode(QCameraFocus::FocusModes(int(mode))); + emit focusModeChanged(focusMode()); + } } /*! \property QDeclarativeCameraFocus::focusPointMode diff --git a/src/imports/multimedia/qdeclarativemediametadata_p.h b/src/imports/multimedia/qdeclarativemediametadata_p.h index 5b7c46993..1983effa0 100644 --- a/src/imports/multimedia/qdeclarativemediametadata_p.h +++ b/src/imports/multimedia/qdeclarativemediametadata_p.h @@ -54,6 +54,7 @@ // #include <QtQml/qqml.h> +#include <QtMultimedia/qmediametadata.h> #include "qmediaobject.h" QT_BEGIN_NAMESPACE diff --git a/src/imports/multimedia/qdeclarativevideooutput.cpp b/src/imports/multimedia/qdeclarativevideooutput.cpp index fc17a20fa..53c810403 100644 --- a/src/imports/multimedia/qdeclarativevideooutput.cpp +++ b/src/imports/multimedia/qdeclarativevideooutput.cpp @@ -484,13 +484,18 @@ QRectF QDeclarativeVideoOutput::contentRect() const This property holds the area of the source video content that is considered for rendering. The - values are in source pixel coordinates. + values are in source pixel coordinates, adjusted for + the source's pixel aspect ratio. Note that typically the top left corner of this rectangle will be \c {0,0} while the width and height will be the - width and height of the input content. + width and height of the input content. Only when the video + source has a viewport set, these values will differ. The orientation setting does not affect this rectangle. + + \sa QVideoSurfaceFormat::pixelAspectRatio() + \sa QVideoSurfaceFormat::viewport() */ QRectF QDeclarativeVideoOutput::sourceRect() const { @@ -499,7 +504,19 @@ QRectF QDeclarativeVideoOutput::sourceRect() const if (!qIsDefaultAspect(m_orientation)) { size.transpose(); } - return QRectF(QPointF(), size); // XXX ignores viewport + + // No backend? Just assume no viewport. + if (!m_nativeSize.isValid() || !m_backend) { + return QRectF(QPointF(), size); + } + + // Take the viewport into account for the top left position. + // m_nativeSize is already adjusted to the viewport, as it originats + // from QVideoSurfaceFormat::sizeHint(), which includes pixel aspect + // ratio and viewport. + const QRectF viewport = m_backend->adjustedViewport(); + Q_ASSERT(viewport.size() == size); + return QRectF(viewport.topLeft(), size); } /*! diff --git a/src/imports/multimedia/qdeclarativevideooutput_backend_p.h b/src/imports/multimedia/qdeclarativevideooutput_backend_p.h index 7f2284bb4..f731b77f1 100644 --- a/src/imports/multimedia/qdeclarativevideooutput_backend_p.h +++ b/src/imports/multimedia/qdeclarativevideooutput_backend_p.h @@ -74,6 +74,9 @@ public: virtual QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data) = 0; virtual QAbstractVideoSurface *videoSurface() const = 0; + // The viewport, adjusted for the pixel aspect ratio + virtual QRectF adjustedViewport() const = 0; + protected: QDeclarativeVideoOutput *q; QPointer<QMediaService> m_service; diff --git a/src/imports/multimedia/qdeclarativevideooutput_render.cpp b/src/imports/multimedia/qdeclarativevideooutput_render.cpp index e9bcf4b26..96b979bc5 100644 --- a/src/imports/multimedia/qdeclarativevideooutput_render.cpp +++ b/src/imports/multimedia/qdeclarativevideooutput_render.cpp @@ -133,30 +133,45 @@ QSize QDeclarativeVideoRendererBackend::nativeSize() const void QDeclarativeVideoRendererBackend::updateGeometry() { + const QRectF viewport = videoSurface()->surfaceFormat().viewport(); + const QSizeF frameSize = videoSurface()->surfaceFormat().frameSize(); + const QRectF normalizedViewport(viewport.x() / frameSize.width(), + viewport.y() / frameSize.height(), + viewport.width() / frameSize.width(), + viewport.height() / frameSize.height()); const QRectF rect(0, 0, q->width(), q->height()); if (nativeSize().isEmpty()) { m_renderedRect = rect; - m_sourceTextureRect = QRectF(0, 0, 1, 1); + m_sourceTextureRect = normalizedViewport; } else if (q->fillMode() == QDeclarativeVideoOutput::Stretch) { m_renderedRect = rect; - m_sourceTextureRect = QRectF(0, 0, 1, 1); + m_sourceTextureRect = normalizedViewport; } else if (q->fillMode() == QDeclarativeVideoOutput::PreserveAspectFit) { - m_sourceTextureRect = QRectF(0, 0, 1, 1); + m_sourceTextureRect = normalizedViewport; m_renderedRect = q->contentRect(); } else if (q->fillMode() == QDeclarativeVideoOutput::PreserveAspectCrop) { m_renderedRect = rect; const qreal contentHeight = q->contentRect().height(); const qreal contentWidth = q->contentRect().width(); + + // Calculate the size of the source rectangle without taking the viewport into account + const qreal relativeOffsetLeft = -q->contentRect().left() / contentWidth; + const qreal relativeOffsetTop = -q->contentRect().top() / contentHeight; + const qreal relativeWidth = rect.width() / contentWidth; + const qreal relativeHeight = rect.height() / contentHeight; + + // Now take the viewport size into account + const qreal totalOffsetLeft = normalizedViewport.x() + relativeOffsetLeft * normalizedViewport.width(); + const qreal totalOffsetTop = normalizedViewport.y() + relativeOffsetTop * normalizedViewport.height(); + const qreal totalWidth = normalizedViewport.width() * relativeWidth; + const qreal totalHeight = normalizedViewport.height() * relativeHeight; + if (qIsDefaultAspect(q->orientation())) { - m_sourceTextureRect = QRectF(-q->contentRect().left() / contentWidth, - -q->contentRect().top() / contentHeight, - rect.width() / contentWidth, - rect.height() / contentHeight); + m_sourceTextureRect = QRectF(totalOffsetLeft, totalOffsetTop, + totalWidth, totalHeight); } else { - m_sourceTextureRect = QRectF(-q->contentRect().top() / contentHeight, - -q->contentRect().left() / contentWidth, - rect.height() / contentHeight, - rect.width() / contentWidth); + m_sourceTextureRect = QRectF(totalOffsetTop, totalOffsetLeft, + totalHeight, totalWidth); } } } @@ -223,6 +238,22 @@ QAbstractVideoSurface *QDeclarativeVideoRendererBackend::videoSurface() const return m_surface; } +QRectF QDeclarativeVideoRendererBackend::adjustedViewport() const +{ + const QRectF viewport = m_surface->surfaceFormat().viewport(); + const QSize pixelAspectRatio = m_surface->surfaceFormat().pixelAspectRatio(); + + if (pixelAspectRatio.height() != 0) { + const qreal ratio = pixelAspectRatio.width() / pixelAspectRatio.height(); + QRectF result = viewport; + result.setX(result.x() * ratio); + result.setWidth(result.width() * ratio); + return result; + } + + return viewport; +} + QOpenGLContext *QDeclarativeVideoRendererBackend::glContext() const { return m_glContext; diff --git a/src/imports/multimedia/qdeclarativevideooutput_render_p.h b/src/imports/multimedia/qdeclarativevideooutput_render_p.h index 2a706b339..3682c15a6 100644 --- a/src/imports/multimedia/qdeclarativevideooutput_render_p.h +++ b/src/imports/multimedia/qdeclarativevideooutput_render_p.h @@ -71,6 +71,7 @@ public: void updateGeometry(); QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data); QAbstractVideoSurface *videoSurface() const; + QRectF adjustedViewport() const Q_DECL_OVERRIDE; QOpenGLContext *glContext() const; friend class QSGVideoItemSurface; diff --git a/src/imports/multimedia/qdeclarativevideooutput_window.cpp b/src/imports/multimedia/qdeclarativevideooutput_window.cpp index 527c08908..2da63c107 100644 --- a/src/imports/multimedia/qdeclarativevideooutput_window.cpp +++ b/src/imports/multimedia/qdeclarativevideooutput_window.cpp @@ -143,4 +143,11 @@ QAbstractVideoSurface *QDeclarativeVideoWindowBackend::videoSurface() const return 0; } +QRectF QDeclarativeVideoWindowBackend::adjustedViewport() const +{ + // No viewport supported by QVideoWindowControl, so make the viewport the same size + // as the source + return QRectF(QPointF(0, 0), nativeSize()); +} + QT_END_NAMESPACE diff --git a/src/imports/multimedia/qdeclarativevideooutput_window_p.h b/src/imports/multimedia/qdeclarativevideooutput_window_p.h index f09b08c42..eb7b35b85 100644 --- a/src/imports/multimedia/qdeclarativevideooutput_window_p.h +++ b/src/imports/multimedia/qdeclarativevideooutput_window_p.h @@ -62,6 +62,7 @@ public: void updateGeometry(); QSGNode *updatePaintNode(QSGNode *oldNode, QQuickItem::UpdatePaintNodeData *data); QAbstractVideoSurface *videoSurface() const; + QRectF adjustedViewport() const Q_DECL_OVERRIDE; private: QPointer<QVideoWindowControl> m_videoWindowControl; diff --git a/src/multimedia/doc/qtmultimedia.qdocconf b/src/multimedia/doc/qtmultimedia.qdocconf index e9c3b4480..b78c91989 100644 --- a/src/multimedia/doc/qtmultimedia.qdocconf +++ b/src/multimedia/doc/qtmultimedia.qdocconf @@ -32,6 +32,9 @@ qhp.QtMultimedia.subprojects.qmltypes.sortPages = true exampledirs += ../../../examples/multimedia \ snippets +# Specify example install dir under QT_INSTALL_EXAMPLES +examplesinstallpath = multimedia + headerdirs += ../.. imagedirs += src/images \ diff --git a/src/multimedia/doc/src/multimedia.qdoc b/src/multimedia/doc/src/multimedia.qdoc index d53967e6b..d93468273 100644 --- a/src/multimedia/doc/src/multimedia.qdoc +++ b/src/multimedia/doc/src/multimedia.qdoc @@ -83,52 +83,52 @@ For some quick recipes, look at the overviews above and consult this table: \li QSoundEffect \row \li Playing low latency audio - \li \l{multimedia/audiooutput}{audioinput}, - \l{multimedia/spectrum}{spectrum} + \li \l{audioinput}, + \l{spectrum} \li \li QAudioOutput \row \li Playing encoded audio (MP3, AAC etc) - \li \l{multimediawidgets/player}{player} + \li \l{player} \li \l Audio, \l {MediaPlayer} \li QMediaPlayer \row \li Accessing raw audio input data - \li \l{multimedia/spectrum}{spectrum}, - \l {multimedia/audioinput}{audioinput} + \li \l{spectrum}, + \l{audioinput} \li \li QAudioInput \row \li Recording encoded audio data - \li \l {multimedia/audiorecorder}{audiorecorder} + \li \l{audiorecorder} \li \li QAudioRecorder \row \li Discovering raw audio devices - \li \l {multimedia/audiodevices}{audiodevices} + \li \l{audiodevices} \li \li QAudioDeviceInfo \row \li Video Playback - \li \l {multimediawidgets/player}{player}, - \l {multimedia/video/qmlvideo}{qmlvideo}, - \l{multimedia/video/qmlvideofx}{qmlvideofx} + \li \l{player}, + \l{video/qmlvideo}{qmlvideo}, + \l{video/qmlvideofx}{qmlvideofx} \li \l MediaPlayer, \l VideoOutput, \l Video \li QMediaPlayer, QVideoWidget, QGraphicsVideoItem \row \li Video Processing - \li \l {multimedia/video/qmlvideofx}{qmlvideofx} + \li \l {video/qmlvideofx}{qmlvideofx} \li \l {MediaPlayer}, \l VideoOutput \li QMediaPlayer, QAbstractVideoSurface, QVideoFrame \row \li Listening to the radio - \li \l {multimedia/declarative-radio}{declarative-radio} + \li \l {declarative-radio} \li \l Radio, \l RadioData \li QRadioTuner, QRadioData \row \li Accessing camera viewfinder \li \l {Camera Example}{camera}, - \l {multimediawidgets/declarative-camera}{declarative-camera} + \l {declarative-camera} \li \l Camera, \l VideoOutput \li QCamera, QVideoWidget, QGraphicsVideoItem \row @@ -139,13 +139,13 @@ For some quick recipes, look at the overviews above and consult this table: \row \li Capturing photos \li \l {Camera Example}{camera}, - \l {multimediawidgets/declarative-camera}{declarative-camera} + \l {declarative-camera} \li \l Camera \li QCamera, QCameraImageCapture \row \li Capturing movies \li \l {Camera Example}{camera}, - \l {multimediawidgets/declarative-camera}{declarative-camera} + \l {declarative-camera} \li \l Camera \li QCamera, QMediaRecorder \row diff --git a/src/multimedia/multimedia.pro b/src/multimedia/multimedia.pro index 61dfb3d08..31c438acb 100644 --- a/src/multimedia/multimedia.pro +++ b/src/multimedia/multimedia.pro @@ -51,10 +51,14 @@ include(radio/radio.pri) include(recording/recording.pri) include(video/video.pri) +ANDROID_BUNDLED_JAR_DEPENDENCIES = \ + jar/QtMultimedia-bundled.jar:org.qtproject.qt5.android.multimedia.QtAndroidMediaPlayer ANDROID_JAR_DEPENDENCIES = \ jar/QtMultimedia.jar:org.qtproject.qt5.android.multimedia.QtAndroidMediaPlayer ANDROID_LIB_DEPENDENCIES = \ plugins/mediaservice/libandroidmediaplayer.so +MODULE_PLUGIN_TYPES = \ + mediaservice mac { LIBS += -framework AppKit -framework QuartzCore -framework QTKit diff --git a/src/multimedia/playback/playlistfileparser.cpp b/src/multimedia/playback/playlistfileparser.cpp index 72bb0cb2a..b7b65c98f 100644 --- a/src/multimedia/playback/playlistfileparser.cpp +++ b/src/multimedia/playback/playlistfileparser.cpp @@ -43,7 +43,7 @@ #include <qfileinfo.h> #include <QtNetwork/QNetworkReply> #include "qmediaobject_p.h" -#include "qmultimedia.h" +#include "qmediametadata.h" QT_BEGIN_NAMESPACE diff --git a/src/multimedia/qmultimedia.h b/src/multimedia/qmultimedia.h index 22028be6c..be4737a70 100644 --- a/src/multimedia/qmultimedia.h +++ b/src/multimedia/qmultimedia.h @@ -47,7 +47,6 @@ #include <QtCore/qstring.h> #include <QtMultimedia/qtmultimediadefs.h> -#include <QtMultimedia/qmediametadata.h> QT_BEGIN_NAMESPACE diff --git a/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf b/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf index 305590f7b..e44a73d77 100644 --- a/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf +++ b/src/multimediawidgets/doc/qtmultimediawidgets.qdocconf @@ -28,6 +28,9 @@ qhp.QtMultimediaWidgets.subprojects.classes.sortPages = true exampledirs += ../../../examples/multimediawidgets \ snippets +# Specify example install dir under QT_INSTALL_EXAMPLES +examplesinstallpath = multimediawidgets + headerdirs += ../ imagedirs += \ diff --git a/src/plugins/android/jar/bundledjar.pro b/src/plugins/android/jar/bundledjar.pro new file mode 100644 index 000000000..cc76164a7 --- /dev/null +++ b/src/plugins/android/jar/bundledjar.pro @@ -0,0 +1,3 @@ +TARGET = QtMultimedia-bundled +CONFIG += bundled_jar_file +include(jar.pri) diff --git a/src/plugins/android/jar/distributedjar.pro b/src/plugins/android/jar/distributedjar.pro new file mode 100644 index 000000000..34724c197 --- /dev/null +++ b/src/plugins/android/jar/distributedjar.pro @@ -0,0 +1,2 @@ +TARGET = QtMultimedia +include(jar.pri) diff --git a/src/plugins/android/jar/jar.pri b/src/plugins/android/jar/jar.pri new file mode 100644 index 000000000..e6a3c63c2 --- /dev/null +++ b/src/plugins/android/jar/jar.pri @@ -0,0 +1,14 @@ +load(qt_build_paths) +CONFIG += java +DESTDIR = $$MODULE_BASE_OUTDIR/jar +API_VERSION = android-11 + +JAVACLASSPATH += $$PWD/src + +JAVASOURCES += $$PWD/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java \ + $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTexture.java \ + $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTextureHolder.java + +# install +target.path = $$[QT_INSTALL_PREFIX]/jar +INSTALLS += target diff --git a/src/plugins/android/jar/jar.pro b/src/plugins/android/jar/jar.pro index 2fa203a4f..6a4fcd389 100644 --- a/src/plugins/android/jar/jar.pro +++ b/src/plugins/android/jar/jar.pro @@ -1,15 +1,3 @@ -load(qt_build_paths) -CONFIG += java -TARGET = QtMultimedia -DESTDIR = $$MODULE_BASE_OUTDIR/jar -API_VERSION = android-11 +TEMPLATE=subdirs +SUBDIRS += distributedjar.pro bundledjar.pro -JAVACLASSPATH += $$PWD/src - -JAVASOURCES += $$PWD/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java \ - $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTexture.java \ - $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTextureHolder.java - -# install -target.path = $$[QT_INSTALL_PREFIX]/jar -INSTALLS += target diff --git a/src/plugins/android/mediaplayer/qandroidmetadatareadercontrol.cpp b/src/plugins/android/mediaplayer/qandroidmetadatareadercontrol.cpp index 9b2f4e17b..e52c46387 100644 --- a/src/plugins/android/mediaplayer/qandroidmetadatareadercontrol.cpp +++ b/src/plugins/android/mediaplayer/qandroidmetadatareadercontrol.cpp @@ -42,6 +42,7 @@ #include "qandroidmetadatareadercontrol.h" #include "jmediametadataretriever.h" +#include <QtMultimedia/qmediametadata.h> #include <qsize.h> #include <QDate> diff --git a/src/plugins/android/mediaplayer/qandroidvideorendercontrol.cpp b/src/plugins/android/mediaplayer/qandroidvideorendercontrol.cpp index 7b810fa41..c63e0e771 100644 --- a/src/plugins/android/mediaplayer/qandroidvideorendercontrol.cpp +++ b/src/plugins/android/mediaplayer/qandroidvideorendercontrol.cpp @@ -182,7 +182,8 @@ void QAndroidVideoRendererControl::setSurface(QAbstractVideoSurface *surface) m_surface = surface; - m_useImage = !m_surface->supportedPixelFormats(QAbstractVideoBuffer::GLTextureHandle).contains(QVideoFrame::Format_BGR32); + if (m_surface) + m_useImage = !m_surface->supportedPixelFormats(QAbstractVideoBuffer::GLTextureHandle).contains(QVideoFrame::Format_BGR32); } jobject QAndroidVideoRendererControl::surfaceHolder() diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayermetadatacontrol.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayermetadatacontrol.mm index 01d325cf4..3a626bcde 100644 --- a/src/plugins/avfoundation/mediaplayer/avfmediaplayermetadatacontrol.mm +++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayermetadatacontrol.mm @@ -42,7 +42,7 @@ #include "avfmediaplayermetadatacontrol.h" #include "avfmediaplayersession.h" -#include <QtMultimedia/qmultimedia.h> +#include <QtMultimedia/qmediametadata.h> #import <AVFoundation/AVFoundation.h> diff --git a/src/plugins/blackberry/mediaplayer/bbmetadatareadercontrol.cpp b/src/plugins/blackberry/mediaplayer/bbmetadatareadercontrol.cpp index 95f85f5e3..99e3c5125 100644 --- a/src/plugins/blackberry/mediaplayer/bbmetadatareadercontrol.cpp +++ b/src/plugins/blackberry/mediaplayer/bbmetadatareadercontrol.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ #include "bbmetadatareadercontrol.h" +#include <QtMultimedia/qmediametadata.h> QT_BEGIN_NAMESPACE diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp index f921dac20..353078f43 100644 --- a/src/plugins/directshow/camera/dscamerasession.cpp +++ b/src/plugins/directshow/camera/dscamerasession.cpp @@ -656,6 +656,10 @@ HRESULT DSCameraSession::getPin(IBaseFilter *pFilter, PIN_DIRECTION PinDir, IPin bool DSCameraSession::createFilterGraph() { + // Previously containered in <qedit.h>. + static const IID iID_ISampleGrabber = { 0x6B652FFF, 0x11FE, 0x4fce, { 0x92, 0xAD, 0x02, 0x66, 0xB5, 0xD7, 0xC7, 0x8F } }; + static const CLSID cLSID_SampleGrabber = { 0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37 } }; + HRESULT hr; IMoniker* pMoniker = NULL; ICreateDevEnum* pDevEnum = NULL; @@ -752,14 +756,14 @@ bool DSCameraSession::createFilterGraph() } // Sample grabber filter - hr = CoCreateInstance(CLSID_SampleGrabber, NULL,CLSCTX_INPROC, + hr = CoCreateInstance(cLSID_SampleGrabber, NULL,CLSCTX_INPROC, IID_IBaseFilter, (void**)&pSG_Filter); if (FAILED(hr)) { qWarning() << "failed to create sample grabber"; return false; } - hr = pSG_Filter->QueryInterface(IID_ISampleGrabber, (void**)&pSG); + hr = pSG_Filter->QueryInterface(iID_ISampleGrabber, (void**)&pSG); if (FAILED(hr)) { qWarning() << "failed to get sample grabber"; return false; diff --git a/src/plugins/directshow/camera/dscamerasession.h b/src/plugins/directshow/camera/dscamerasession.h index db0038813..e78358a5f 100644 --- a/src/plugins/directshow/camera/dscamerasession.h +++ b/src/plugins/directshow/camera/dscamerasession.h @@ -69,7 +69,6 @@ #define __IDxtAlphaSetter_INTERFACE_DEFINED__ #define __IDxtJpeg_INTERFACE_DEFINED__ #define __IDxtKey_INTERFACE_DEFINED__ -#include <qedit.h> struct ICaptureGraphBuilder2; struct ISampleGrabber; diff --git a/src/plugins/directshow/directshow.pro b/src/plugins/directshow/directshow.pro index 95f78ed81..97e72a107 100644 --- a/src/plugins/directshow/directshow.pro +++ b/src/plugins/directshow/directshow.pro @@ -24,4 +24,5 @@ win32-g++ { include(camera/camera.pri) OTHER_FILES += \ - directshow.json + directshow.json \ + directshow_camera.json diff --git a/src/plugins/directshow/directshow_camera.json b/src/plugins/directshow/directshow_camera.json new file mode 100644 index 000000000..d3a58c758 --- /dev/null +++ b/src/plugins/directshow/directshow_camera.json @@ -0,0 +1,3 @@ +{ + "Keys": ["org.qt-project.qt.camera"] +} diff --git a/src/plugins/directshow/dsserviceplugin.h b/src/plugins/directshow/dsserviceplugin.h index f3f89d7cd..82f1acd6d 100644 --- a/src/plugins/directshow/dsserviceplugin.h +++ b/src/plugins/directshow/dsserviceplugin.h @@ -54,7 +54,13 @@ class DSServicePlugin Q_OBJECT Q_INTERFACES(QMediaServiceSupportedDevicesInterface) Q_INTERFACES(QMediaServiceFeaturesInterface) + // The player service provided by the WMF-plugin should preferably be used. + // DirectShow should then only provide the camera (see QTBUG-29172, QTBUG-29175). +#ifdef QMEDIA_DIRECTSHOW_PLAYER Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "directshow.json") +#else + Q_PLUGIN_METADATA(IID "org.qt-project.qt.mediaserviceproviderfactory/5.0" FILE "directshow_camera.json") +#endif public: QMediaService* create(QString const& key); diff --git a/src/plugins/directshow/player/directshowmetadatacontrol.cpp b/src/plugins/directshow/player/directshowmetadatacontrol.cpp index f4bbe16a7..341d2cf1d 100644 --- a/src/plugins/directshow/player/directshowmetadatacontrol.cpp +++ b/src/plugins/directshow/player/directshowmetadatacontrol.cpp @@ -44,9 +44,9 @@ #include <qnetwork.h> #include "directshowmetadatacontrol.h" - #include "directshowplayerservice.h" +#include <QtMultimedia/qmediametadata.h> #include <QtCore/qcoreapplication.h> #ifndef QT_NO_WMSDK diff --git a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp index 0fca0c523..79cfca3bf 100644 --- a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp @@ -46,6 +46,7 @@ #include <private/qgstvideobuffer_p.h> #include <private/qvideosurfacegstsink_p.h> #include <private/qgstutils_p.h> +#include <QtMultimedia/qmediametadata.h> #include <QtCore/qdebug.h> #include <QtCore/qbuffer.h> #include <QtGui/qimagereader.h> diff --git a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp index 788233c6b..353fd8be6 100644 --- a/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinmetadata.cpp @@ -41,6 +41,8 @@ #include "camerabinmetadata.h" +#include <QtMultimedia/qmediametadata.h> + #include <gst/gst.h> #include <gst/gstversion.h> diff --git a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp index dd3d6a4fb..fd7fb7d82 100644 --- a/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp +++ b/src/plugins/gstreamer/mediacapture/qgstreamercapturemetadatacontrol.cpp @@ -41,6 +41,8 @@ #include "qgstreamercapturemetadatacontrol.h" +#include <QtMultimedia/qmediametadata.h> + #include <gst/gst.h> #include <gst/gstversion.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp index 841c13ff6..22f203665 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp @@ -42,6 +42,7 @@ #include "qgstreamermetadataprovider.h" #include "qgstreamerplayersession.h" #include <QDebug> +#include <QtMultimedia/qmediametadata.h> #include <gst/gstversion.h> diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp index 36db67054..04d612b06 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp @@ -52,6 +52,7 @@ #include <gst/gstvalue.h> #include <gst/base/gstbasesrc.h> +#include <QtMultimedia/qmediametadata.h> #include <QtCore/qdatetime.h> #include <QtCore/qdebug.h> #include <QtCore/qsize.h> diff --git a/src/plugins/qt7/mediaplayer/qt7playermetadata.mm b/src/plugins/qt7/mediaplayer/qt7playermetadata.mm index 18e2f920e..84d434be2 100644 --- a/src/plugins/qt7/mediaplayer/qt7playermetadata.mm +++ b/src/plugins/qt7/mediaplayer/qt7playermetadata.mm @@ -43,6 +43,7 @@ #include "qt7playermetadata.h" #include "qt7playersession.h" #include <QtCore/qvarlengtharray.h> +#include <QtMultimedia/qmediametadata.h> #import <QTKit/QTMovie.h> diff --git a/src/plugins/wmf/player/mfmetadatacontrol.cpp b/src/plugins/wmf/player/mfmetadatacontrol.cpp index f27370ed2..23e81f48d 100644 --- a/src/plugins/wmf/player/mfmetadatacontrol.cpp +++ b/src/plugins/wmf/player/mfmetadatacontrol.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#include <qmediametadata.h> #include <qdatetime.h> #include <qimage.h> diff --git a/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-amd64.txt index 7ff972c33..56b4c5942 100644 --- a/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-amd64.txt +++ b/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-amd64.txt @@ -4798,40 +4798,15 @@ QScreenOrientationChangeEvent (0x7f96f31b8958) 0 QEvent (0x7f96f31b90c0) 0 primary-for QScreenOrientationChangeEvent (0x7f96f31b8958) -Class QAccessible::QPrivateSignal - size=1 align=1 - base size=0 base align=1 -QAccessible::QPrivateSignal (0x7f96f31b9180) 0 empty - Class QAccessible::State size=8 align=8 base size=5 base align=8 QAccessible::State (0x7f96f31b91e0) 0 -Vtable for QAccessible -QAccessible::_ZTV11QAccessible: 14u entries -0 (int (*)(...))0 -8 (int (*)(...))(& _ZTI11QAccessible) -16 (int (*)(...))QAccessible::metaObject -24 (int (*)(...))QAccessible::qt_metacast -32 (int (*)(...))QAccessible::qt_metacall -40 (int (*)(...))QAccessible::~QAccessible -48 (int (*)(...))QAccessible::~QAccessible -56 (int (*)(...))QObject::event -64 (int (*)(...))QObject::eventFilter -72 (int (*)(...))QObject::timerEvent -80 (int (*)(...))QObject::childEvent -88 (int (*)(...))QObject::customEvent -96 (int (*)(...))QObject::connectNotify -104 (int (*)(...))QObject::disconnectNotify - Class QAccessible - size=16 align=8 - base size=16 base align=8 -QAccessible (0x7f96f31b8af8) 0 - vptr=((& QAccessible::_ZTV11QAccessible) + 16u) - QObject (0x7f96f31b9120) 0 - primary-for QAccessible (0x7f96f31b8af8) + size=1 align=1 + base size=0 base align=1 +QAccessible (0x7f96f31b8af8) 0 empty Vtable for QAccessibleInterface QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries diff --git a/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-ia32.txt b/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-ia32.txt index 24afc6fa9..77d7125dd 100644 --- a/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-ia32.txt +++ b/tests/auto/bic/data/QtMultimedia.5.0.0.linux-gcc-ia32.txt @@ -4798,40 +4798,15 @@ QScreenOrientationChangeEvent (0xb377712c) 0 QEvent (0xb35aa770) 0 primary-for QScreenOrientationChangeEvent (0xb377712c) -Class QAccessible::QPrivateSignal - size=1 align=1 - base size=0 base align=1 -QAccessible::QPrivateSignal (0xb35aa930) 0 empty - Class QAccessible::State size=8 align=4 base size=5 base align=4 QAccessible::State (0xb35aa968) 0 -Vtable for QAccessible -QAccessible::_ZTV11QAccessible: 14u entries -0 (int (*)(...))0 -4 (int (*)(...))(& _ZTI11QAccessible) -8 (int (*)(...))QAccessible::metaObject -12 (int (*)(...))QAccessible::qt_metacast -16 (int (*)(...))QAccessible::qt_metacall -20 (int (*)(...))QAccessible::~QAccessible -24 (int (*)(...))QAccessible::~QAccessible -28 (int (*)(...))QObject::event -32 (int (*)(...))QObject::eventFilter -36 (int (*)(...))QObject::timerEvent -40 (int (*)(...))QObject::childEvent -44 (int (*)(...))QObject::customEvent -48 (int (*)(...))QObject::connectNotify -52 (int (*)(...))QObject::disconnectNotify - Class QAccessible - size=8 align=4 - base size=8 base align=4 -QAccessible (0xb3777168) 0 - vptr=((& QAccessible::_ZTV11QAccessible) + 8u) - QObject (0xb35aa850) 0 - primary-for QAccessible (0xb3777168) + size=1 align=1 + base size=0 base align=1 +QAccessible (0xb3777168) 0 empty Vtable for QAccessibleInterface QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries diff --git a/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-amd64.txt index 5b55c44f1..fda7d51ab 100644 --- a/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-amd64.txt +++ b/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-amd64.txt @@ -3986,40 +3986,15 @@ QScreenOrientationChangeEvent (0x7f51f085d2d8) 0 QEvent (0x7f51f08540c0) 0 primary-for QScreenOrientationChangeEvent (0x7f51f085d2d8) -Class QAccessible::QPrivateSignal - size=1 align=1 - base size=0 base align=1 -QAccessible::QPrivateSignal (0x7f51f0854180) 0 empty - Class QAccessible::State size=8 align=8 base size=5 base align=8 QAccessible::State (0x7f51f08541e0) 0 -Vtable for QAccessible -QAccessible::_ZTV11QAccessible: 14u entries -0 (int (*)(...))0 -8 (int (*)(...))(& _ZTI11QAccessible) -16 (int (*)(...))QAccessible::metaObject -24 (int (*)(...))QAccessible::qt_metacast -32 (int (*)(...))QAccessible::qt_metacall -40 (int (*)(...))QAccessible::~QAccessible -48 (int (*)(...))QAccessible::~QAccessible -56 (int (*)(...))QObject::event -64 (int (*)(...))QObject::eventFilter -72 (int (*)(...))QObject::timerEvent -80 (int (*)(...))QObject::childEvent -88 (int (*)(...))QObject::customEvent -96 (int (*)(...))QObject::connectNotify -104 (int (*)(...))QObject::disconnectNotify - Class QAccessible - size=16 align=8 - base size=16 base align=8 -QAccessible (0x7f51f085d478) 0 - vptr=((& QAccessible::_ZTV11QAccessible) + 16u) - QObject (0x7f51f0854120) 0 - primary-for QAccessible (0x7f51f085d478) + size=1 align=1 + base size=0 base align=1 +QAccessible (0x7f51f085d478) 0 empty Vtable for QAccessibleInterface QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries diff --git a/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-ia32.txt b/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-ia32.txt index 110a56892..2319a77a2 100644 --- a/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-ia32.txt +++ b/tests/auto/bic/data/QtMultimediaWidgets.5.0.0.linux-gcc-ia32.txt @@ -3986,40 +3986,15 @@ QScreenOrientationChangeEvent (0xb39638e8) 0 QEvent (0xb3a2ff50) 0 primary-for QScreenOrientationChangeEvent (0xb39638e8) -Class QAccessible::QPrivateSignal - size=1 align=1 - base size=0 base align=1 -QAccessible::QPrivateSignal (0xb3a48070) 0 empty - Class QAccessible::State size=8 align=4 base size=5 base align=4 QAccessible::State (0xb3a480a8) 0 -Vtable for QAccessible -QAccessible::_ZTV11QAccessible: 14u entries -0 (int (*)(...))0 -4 (int (*)(...))(& _ZTI11QAccessible) -8 (int (*)(...))QAccessible::metaObject -12 (int (*)(...))QAccessible::qt_metacast -16 (int (*)(...))QAccessible::qt_metacall -20 (int (*)(...))QAccessible::~QAccessible -24 (int (*)(...))QAccessible::~QAccessible -28 (int (*)(...))QObject::event -32 (int (*)(...))QObject::eventFilter -36 (int (*)(...))QObject::timerEvent -40 (int (*)(...))QObject::childEvent -44 (int (*)(...))QObject::customEvent -48 (int (*)(...))QObject::connectNotify -52 (int (*)(...))QObject::disconnectNotify - Class QAccessible - size=8 align=4 - base size=8 base align=4 -QAccessible (0xb3963924) 0 - vptr=((& QAccessible::_ZTV11QAccessible) + 8u) - QObject (0xb3a2fb60) 0 - primary-for QAccessible (0xb3963924) + size=1 align=1 + base size=0 base align=1 +QAccessible (0xb3963924) 0 empty Vtable for QAccessibleInterface QAccessibleInterface::_ZTV20QAccessibleInterface: 23u entries diff --git a/tests/auto/integration/multimedia.pro b/tests/auto/integration/multimedia.pro index d5708532c..1daa1ee50 100644 --- a/tests/auto/integration/multimedia.pro +++ b/tests/auto/integration/multimedia.pro @@ -12,3 +12,4 @@ SUBDIRS += \ qsoundeffect \ qsound +!qtHaveModule(widgets): SUBDIRS -= qcamerabackend diff --git a/tests/auto/integration/qcamerabackend/qcamerabackend.pro b/tests/auto/integration/qcamerabackend/qcamerabackend.pro index 50da92fbd..1a0c44ea8 100644 --- a/tests/auto/integration/qcamerabackend/qcamerabackend.pro +++ b/tests/auto/integration/qcamerabackend/qcamerabackend.pro @@ -1,6 +1,7 @@ TARGET = tst_qcamerabackend -QT += multimedia-private testlib +# DirectShow plugin requires widgets. +QT += multimedia-private widgets testlib # This is more of a system test CONFIG += testcase diff --git a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp index b6b3f1632..57f820b54 100644 --- a/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp +++ b/tests/auto/unit/qdeclarativeaudio/tst_qdeclarativeaudio.cpp @@ -46,6 +46,7 @@ #include "qdeclarativeaudio_p.h" #include "qdeclarativemediametadata_p.h" +#include <QtMultimedia/qmediametadata.h> #include <qmediaplayercontrol.h> #include <qmediaservice.h> #include <private/qmediaserviceprovider_p.h> diff --git a/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp b/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp index 0ac266809..8d0bf889e 100644 --- a/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp +++ b/tests/auto/unit/qmediaobject/tst_qmediaobject.cpp @@ -45,6 +45,7 @@ #include <QtCore/qtimer.h> +#include <QtMultimedia/qmediametadata.h> #include <qmediaobject.h> #include <qmediaservice.h> #include <qmetadatareadercontrol.h> diff --git a/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp index 37c7e096a..514678617 100644 --- a/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp +++ b/tests/auto/unit/qmediarecorder/tst_qmediarecorder.cpp @@ -43,6 +43,7 @@ #include <QtTest/QtTest> #include <QDebug> +#include <QtMultimedia/qmediametadata.h> #include <qmediaobject.h> #include <qmediacontrol.h> #include <qmediaservice.h> diff --git a/tests/auto/unit/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp b/tests/auto/unit/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp index b9b835843..b03ded400 100644 --- a/tests/auto/unit/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp +++ b/tests/auto/unit/qmetadatareadercontrol/tst_qmetadatareadercontrol.cpp @@ -41,6 +41,7 @@ #include <QtCore/QString> #include <QtTest/QtTest> #include <QtCore/QCoreApplication> +#include <QtMultimedia/qmediametadata.h> #include "mockmetadatareadercontrol.h" diff --git a/tests/auto/unit/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp b/tests/auto/unit/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp index 8e08f8090..9baf91b70 100644 --- a/tests/auto/unit/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp +++ b/tests/auto/unit/qmetadatawritercontrol/tst_qmetadatawritercontrol.cpp @@ -41,6 +41,7 @@ #include <QtCore/QString> #include <QtTest/QtTest> #include <QtCore/QCoreApplication> +#include <QtMultimedia/qmediametadata.h> #include "qmetadatawritercontrol.h" #include "mockmetadatawritercontrol.h" diff --git a/tests/auto/unit/qmultimedia_common/mockcameraimagecapturecontrol.h b/tests/auto/unit/qmultimedia_common/mockcameraimagecapturecontrol.h index cc374e91a..c8e174a82 100644 --- a/tests/auto/unit/qmultimedia_common/mockcameraimagecapturecontrol.h +++ b/tests/auto/unit/qmultimedia_common/mockcameraimagecapturecontrol.h @@ -44,6 +44,7 @@ #include <QDateTime> #include <QTimer> +#include <QtMultimedia/qmediametadata.h> #include "qcameraimagecapturecontrol.h" #include "qcameracontrol.h" |