summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2010-02-25 01:17:49 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2010-02-25 01:17:49 (GMT)
commitd9e0fad176e277d84af4d80c916becabdf01d969 (patch)
treecfd1fb57e7b50b629308c7cbdaf4ad4c46f0c836
parent091467faaed8728e3f49dbb402f71372f088f808 (diff)
parentb888a694c35fb0c291942a2aa4a056d7deec3245 (diff)
downloadQt-d9e0fad176e277d84af4d80c916becabdf01d969.zip
Qt-d9e0fad176e277d84af4d80c916becabdf01d969.tar.gz
Qt-d9e0fad176e277d84af4d80c916becabdf01d969.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-qml
-rwxr-xr-xconfigure19
-rwxr-xr-xconfigure.exebin1008128 -> 1221632 bytes
-rw-r--r--demos/multimedia/player/player.cpp12
-rw-r--r--demos/multimedia/player/player.h2
-rw-r--r--doc/src/declarative/integrating.qdoc10
-rw-r--r--src/declarative/util/qdeclarativegraphicswidget.cpp457
-rw-r--r--src/declarative/util/qdeclarativegraphicswidget.h113
-rw-r--r--src/declarative/util/util.pri6
-rw-r--r--src/multimedia/base/qmediacontent.cpp13
-rw-r--r--src/multimedia/base/qmediacontent.h2
-rw-r--r--src/multimedia/base/qmediaserviceprovider.cpp2
-rw-r--r--src/multimedia/qml/multimediadeclarative.cpp71
-rw-r--r--src/multimedia/qml/multimediadeclarative.h62
-rw-r--r--src/multimedia/qml/qdeclarativeaudio_p.h11
-rw-r--r--src/multimedia/qml/qdeclarativemediabase_p.h10
-rw-r--r--src/multimedia/qml/qdeclarativevideo_p.h11
-rw-r--r--src/multimedia/qml/qmetadatacontrolmetaobject_p.h11
-rw-r--r--src/multimedia/qml/qml.pri4
-rw-r--r--src/multimedia/qml/wavedecoder_p.h11
-rw-r--r--src/plugins/mediaservices/directshow/dsserviceplugin.cpp2
-rw-r--r--src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp2
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp7
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp4
-rw-r--r--src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp3
-rw-r--r--src/plugins/mediaservices/mediaservices.pro24
-rw-r--r--src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm8
-rw-r--r--src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm6
-rw-r--r--src/plugins/mediaservices/qt7/qt7movierenderer.mm25
-rw-r--r--src/plugins/mediaservices/qt7/qt7movievideowidget.mm4
-rw-r--r--src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm11
-rw-r--r--src/plugins/qdeclarativemodules/multimedia/multimedia.cpp4
-rw-r--r--tests/auto/qmediacontent/qmediacontent.pro2
-rw-r--r--tests/auto/qmediacontent/tst_qmediacontent.cpp13
-rw-r--r--tools/configure/configure.pro1
-rw-r--r--tools/configure/configureapp.cpp13
37 files changed, 316 insertions, 648 deletions
diff --git a/configure b/configure
index 1c3c99b..43f7189 100755
--- a/configure
+++ b/configure
@@ -676,6 +676,7 @@ CFG_RELEASE_QMAKE=no
CFG_PHONON=auto
CFG_PHONON_BACKEND=yes
CFG_MULTIMEDIA=yes
+CFG_MEDIASERVICE=yes
CFG_AUDIO_BACKEND=yes
CFG_SVG=yes
CFG_DECLARATIVE=auto
@@ -924,7 +925,7 @@ while [ "$#" -gt 0 ]; do
VAL=no
;;
#Qt style yes options
- -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config)
+ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-mediaservice|-audio-backend|-svg|-declarative|-webkit|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config)
VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
VAL=yes
;;
@@ -2105,6 +2106,13 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ mediaservice)
+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
+ CFG_MEDIASERVICE="$VAL"
+ else
+ UNKNOWN_OPT=yes
+ fi
+ ;;
audio-backend)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_AUDIO_BACKEND="$VAL"
@@ -3318,7 +3326,8 @@ Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
[-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
[-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
- [-no-audio-backend] [-audio-backend] [-no-openssl] [-openssl] [-openssl-linked]
+ [-no-mediaservice] [-mediaservice] [-no-audio-backend] [-audio-backend]
+ [-no-openssl] [-openssl] [-openssl-linked]
[-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-no-javascript-jit] [-javascript-jit]
[-no-script] [-script] [-no-scripttools] [-scripttools] [-no-declarative] [-declarative]
@@ -3458,6 +3467,9 @@ fi
-no-multimedia ..... Do not build the QtMultimedia module.
+ -multimedia ........ Build the QtMultimedia module.
+ -no-mediaservice.... Do not build platform mediaservice plugin.
+ + -mediaservice ...... Build the platform mediaservice plugin.
+
-no-audio-backend .. Do not build the platform audio backend into QtMultimedia.
+ -audio-backend ..... Build the platform audio backend into QtMultimedia if available.
@@ -6537,6 +6549,9 @@ if [ "$CFG_MULTIMEDIA" = "no" ]; then
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MULTIMEDIA"
else
QT_CONFIG="$QT_CONFIG multimedia"
+ if [ "$CFG_MEDIASERVICE" = "yes" ]; then
+ QT_CONFIG="$QT_CONFIG mediaservice"
+ fi
fi
if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
diff --git a/configure.exe b/configure.exe
index 9974236..f937ea2 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/demos/multimedia/player/player.cpp b/demos/multimedia/player/player.cpp
index 64b1f25..49d18cb 100644
--- a/demos/multimedia/player/player.cpp
+++ b/demos/multimedia/player/player.cpp
@@ -99,7 +99,7 @@ Player::Player(QWidget *parent)
connect(controls, SIGNAL(pause()), player, SLOT(pause()));
connect(controls, SIGNAL(stop()), player, SLOT(stop()));
connect(controls, SIGNAL(next()), playlist, SLOT(next()));
- connect(controls, SIGNAL(previous()), playlist, SLOT(previous()));
+ connect(controls, SIGNAL(previous()), this, SLOT(previousClicked()));
connect(controls, SIGNAL(changeVolume(int)), player, SLOT(setVolume(int)));
connect(controls, SIGNAL(changeMuting(bool)), player, SLOT(setMuted(bool)));
connect(controls, SIGNAL(changeRate(qreal)), player, SLOT(setPlaybackRate(qreal)));
@@ -200,6 +200,16 @@ void Player::metaDataChanged()
}
}
+void Player::previousClicked()
+{
+ // Go to previous track if we are within the first 5 seconds of playback
+ // Otherwise, seek to the beginning.
+ if(player->position() <= 5000)
+ playlist->previous();
+ else
+ player->setPosition(0);
+}
+
void Player::jump(const QModelIndex &index)
{
if (index.isValid()) {
diff --git a/demos/multimedia/player/player.h b/demos/multimedia/player/player.h
index 0ad609b..1de8b1a 100644
--- a/demos/multimedia/player/player.h
+++ b/demos/multimedia/player/player.h
@@ -77,6 +77,8 @@ private slots:
void positionChanged(qint64 progress);
void metaDataChanged();
+ void previousClicked();
+
void seek(int seconds);
void jump(const QModelIndex &index);
void playlistPositionChanged(int);
diff --git a/doc/src/declarative/integrating.qdoc b/doc/src/declarative/integrating.qdoc
index 09ed178..c685d3d 100644
--- a/doc/src/declarative/integrating.qdoc
+++ b/doc/src/declarative/integrating.qdoc
@@ -86,9 +86,6 @@ QGraphicsObject *object =
scene->addItem(object);
\endcode
-There is a convenience QGraphicsWidget subclass, QDeclarativeGraphicsWidget, which takes care of the engine
-and component instantiation for you.
-
The following QGraphicsView options are recommended for optimal performance
of QML UIs:
@@ -98,13 +95,6 @@ of QML UIs:
\o QGraphicsScene::setItemIndexMethod(QGraphicsScene::NoIndex);
\endlist
-And the following QGraphicsView options are required for QML key handling to work:
-
-\list
-\o QGraphicsView::viewport()->setFocusPolicy(Qt::NoFocus);
-\o QGraphicsScene::setStickyFocus(true);
-\endlist
-
\section1 Using existing QGraphicsWidgets in QML
Another way of integrating with a QGraphicsView based UI is to expose your
existing QGraphicsWidgets to QML, and constructing your scene in QML. Note that
diff --git a/src/declarative/util/qdeclarativegraphicswidget.cpp b/src/declarative/util/qdeclarativegraphicswidget.cpp
deleted file mode 100644
index 1d0d468..0000000
--- a/src/declarative/util/qdeclarativegraphicswidget.cpp
+++ /dev/null
@@ -1,457 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qdeclarativegraphicswidget.h"
-
-#include "qperformancelog_p_p.h"
-#include "qfxperf_p_p.h"
-
-#include <qdeclarative.h>
-#include <qdeclarativeitem.h>
-#include <qdeclarativeengine.h>
-#include <qdeclarativecontext.h>
-#include <qdeclarativedebug_p.h>
-#include <qdeclarativedebugservice_p.h>
-#include <qdeclarativeglobal_p.h>
-#include <qdeclarativeerror.h>
-
-#include <qscriptvalueiterator.h>
-#include <qdebug.h>
-#include <qtimer.h>
-#include <qevent.h>
-#include <qdir.h>
-#include <qcoreapplication.h>
-#include <qfontdatabase.h>
-#include <qicon.h>
-#include <qurl.h>
-#include <qboxlayout.h>
-#include <qbasictimer.h>
-#include <QtCore/qabstractanimation.h>
-#include <private/qguard_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QDeclarativeGraphicsWidgetSharedQDeclarativeEngine
-{
-public:
- QDeclarativeGraphicsWidgetSharedQDeclarativeEngine(){}
-
- static QDeclarativeEngine* sharedEngine(){
- if(!references)
- return 0;
- return &QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::m_instance->engine;
- }
- static void attach(){
- if(!references++)
- m_instance = new QDeclarativeGraphicsWidgetSharedQDeclarativeEngine();
- }
-
- static void detach(){
- if(!--references)
- delete m_instance;
- }
-
-private:
- static QDeclarativeGraphicsWidgetSharedQDeclarativeEngine* m_instance;
- static int references;
- QDeclarativeEngine engine;
-};
-
-int QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::references = 0;
-QDeclarativeGraphicsWidgetSharedQDeclarativeEngine* QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::m_instance = 0;
-
-class QDeclarativeGraphicsWidgetPrivate
-{
-public:
- QDeclarativeGraphicsWidgetPrivate()
- : root(0), component(0),
- resizeMode(QDeclarativeGraphicsWidget::SizeViewToRootObject)
- {
- QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::attach();
- engine = QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::sharedEngine();
- }
-
- ~QDeclarativeGraphicsWidgetPrivate()
- {
- QDeclarativeGraphicsWidgetSharedQDeclarativeEngine::detach();
- }
-
- QGuard<QGraphicsObject> root;
- QGuard<QDeclarativeItem> declarativeRoot;
-
- QUrl source;
-
- QDeclarativeEngine* engine;
- QDeclarativeComponent *component;
- QBasicTimer resizetimer;
-
- mutable QSize initialSize;
- QDeclarativeGraphicsWidget::ResizeMode resizeMode;
-
- void init();
-
-};
-
-/*!
- \class QDeclarativeGraphicsWidget
- \brief The QDeclarativeGraphicsWidget class provides a QGraphicsWidget for displaying a Qt Declarative user interface.
-
- Any QGraphicsObject or QDeclarativeGraphicsItem
- created via Qt Declarative can be placed on a standard QGraphicsScene and viewed with a standard
- QGraphicsView.
-
- QDeclarativeGraphicsWidget is a convenience class which handles QDeclarativeComponent loading and object creation.
- It shares the same QDeclarativeEngine between all QDeclarativeGraphicsWidgets in the application, to minimize overhead.
-
- QDeclarativeGraphicsWidget is ideal for when you have many small components styled with Qt Declarative, and want to integrate
- them into a larger QGraphicsItem based scene. If your interface is primarily Qt Declarative based, consider using QDeclarativeView
- instead.
-
- Note that the following settings on your QGraphicsScene/View are recommended for optimal performance with Qt Declarative:
- \list
- \o QGraphicsView::setOptimizationFlags(QGraphicsView::DontSavePainterState);
- \o QGraphicsView::setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
- \o QGraphicsScene::setItemIndexMethod(QGraphicsScene::NoIndex);
- \endlist
- Also note that the following settings on your QGraphicsScene/View are required for key handling in Qt Declarative to work:
- \list
- \o QGraphicsView::viewport()->setFocusPolicy(Qt::NoFocus);
- \o QGraphicsScene::setStickyFocus(true);
- \endlist
-
- To receive errors related to loading and executing declarative files with QDeclarativeGraphicsWidget,
- you can connect to the statusChanged() signal and monitor for QDeclarativeGraphicsWidget::Error.
- The errors are available via QDeclarativeGraphicsWidget::errors().
-*/
-
-
-/*! \fn void QDeclarativeGraphicsWidget::sceneResized(QSize size)
- This signal is emitted when the view is resized to \a size.
-*/
-
-/*! \fn void QDeclarativeGraphicsWidget::statusChanged(QDeclarativeGraphicsWidget::Status status)
- This signal is emitted when the component's current \l{QDeclarativeGraphicsWidget::Status} {status} changes.
-*/
-
-/*!
- \fn QDeclarativeGraphicsWidget::QDeclarativeGraphicsWidget(QGraphicsItem *parent)
-
- Constructs a QDeclarativeGraphicsWidget with the given \a parent.
-*/
-QDeclarativeGraphicsWidget::QDeclarativeGraphicsWidget(QGraphicsItem *parent)
-: QGraphicsWidget(parent), d(new QDeclarativeGraphicsWidgetPrivate)
-{
- setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
- d->init();
-}
-
-void QDeclarativeGraphicsWidgetPrivate::init()
-{
-}
-
-/*!
- The destructor clears the view's \l {QGraphicsObject} {items} and
- deletes the internal representation.
- */
-QDeclarativeGraphicsWidget::~QDeclarativeGraphicsWidget()
-{
- delete d->root;
- delete d;
-}
-
-/*!
- Sets the source to the \a url.
-
- Will also load the QML file and instantiate the component.
-
- */
-void QDeclarativeGraphicsWidget::setSource(const QUrl& url)
-{
- d->source = url;
-
- //Execute
- if(d->root)
- delete d->root;
- if(d->component)
- delete d->component;
- d->component = new QDeclarativeComponent(d->engine, d->source, this);
-
- if (!d->component->isLoading()) {
- continueExecute();
- } else {
- connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(continueExecute()));
- }
-}
-
-/*!
- Returns the source URL, if set.
-
- \sa setSource()
- */
-QUrl QDeclarativeGraphicsWidget::source() const
-{
- return d->source;
-}
-
-/*!
- Returns a pointer to the QDeclarativeEngine used for instantiating
- Qt Declarative Components.
- */
-QDeclarativeEngine* QDeclarativeGraphicsWidget::engine()
-{
- return d->engine;
-}
-
-/*!
- This function returns the root of the context hierarchy. Each declarative
- component is instantiated in a QDeclarativeContext. QDeclarativeContext's are
- essential for passing data to declarative components. In Qt Declarative, contexts are
- arranged hierarchically and this hierarchy is managed by the
- QDeclarativeEngine.
- */
-QDeclarativeContext* QDeclarativeGraphicsWidget::rootContext()
-{
- return d->engine->rootContext();
-}
-
-
-/*!
- \enum QDeclarativeGraphicsWidget::Status
-
- Specifies the loading status of the QDeclarativeGraphicsWidget.
-
- \value Null This QDeclarativeGraphicsWidget has no source set.
- \value Ready This QDeclarativeGraphicsWidget has loaded and created the declarative component.
- \value Loading This QDeclarativeGraphicsWidget is loading network data.
- \value Error An error has occured. Calling errorDescription() to retrieve a description.
-*/
-
-/*!
- \property QDeclarativeGraphicsWidget::status
- The component's current \l{QDeclarativeGraphicsWidget::Status} {status}.
-*/
-
-QDeclarativeGraphicsWidget::Status QDeclarativeGraphicsWidget::status() const
-{
- if (!d->component)
- return QDeclarativeGraphicsWidget::Null;
-
- return QDeclarativeGraphicsWidget::Status(d->component->status());
-}
-
-/*!
- Return the list of errors that occured during the last compile or create
- operation. An empty list is returned if isError() is not set.
-*/
-QList<QDeclarativeError> QDeclarativeGraphicsWidget::errors() const
-{
- if (d->component)
- return d->component->errors();
- return QList<QDeclarativeError>();
-}
-
-
-/*!
- \property QDeclarativeGraphicsWidget::resizeMode
- \brief whether the view should resize the canvas contents
-
- If this property is set to SizeViewToRootObject (the default), the view
- resizes with the root item in the declarative file.
-
- If this property is set to SizeRootObjectToView, the view will
- automatically resize the root item.
-
- Regardless of this property, the sizeHint of the view
- is the initial size of the root item. Note though that
- since declarative files may load dynamically, that size may change.
-
- \sa initialSize()
-*/
-
-void QDeclarativeGraphicsWidget::setResizeMode(ResizeMode mode)
-{
- if (d->resizeMode == mode)
- return;
-
- d->resizeMode = mode;
- if (d->declarativeRoot) {
- if (d->resizeMode == SizeRootObjectToView) {
- d->declarativeRoot->setWidth(size().width());
- d->declarativeRoot->setHeight(size().height());
- } else {
- d->declarativeRoot->setWidth(d->initialSize.width());
- d->declarativeRoot->setHeight(d->initialSize.height());
- }
- }
-}
-
-QDeclarativeGraphicsWidget::ResizeMode QDeclarativeGraphicsWidget::resizeMode() const
-{
- return d->resizeMode;
-}
-
-/*!
- \internal
- */
-void QDeclarativeGraphicsWidget::continueExecute()
-{
-
- disconnect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), this, SLOT(continueExecute()));
-
- if (d->component->isError()) {
- QList<QDeclarativeError> errorList = d->component->errors();
- foreach (const QDeclarativeError &error, errorList) {
- qWarning() << error;
- }
- emit statusChanged(status());
- return;
- }
-
- QObject *obj = d->component->create();
-
- if(d->component->isError()) {
- QList<QDeclarativeError> errorList = d->component->errors();
- foreach (const QDeclarativeError &error, errorList) {
- qWarning() << error;
- }
- emit statusChanged(status());
- return;
- }
-
- if (obj) {
- if (QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(obj)) {
-
- item->QGraphicsItem::setParentItem(this);
- item->QObject::setParent(this);
-
- d->root = item;
- d->declarativeRoot = item;
- connect(item, SIGNAL(widthChanged()), this, SLOT(sizeChanged()));
- connect(item, SIGNAL(heightChanged()), this, SLOT(sizeChanged()));
- if (d->initialSize.height() <= 0 && d->declarativeRoot->width() > 0)
- d->initialSize.setWidth(d->declarativeRoot->width());
- if (d->initialSize.height() <= 0 && d->declarativeRoot->height() > 0)
- d->initialSize.setHeight(d->declarativeRoot->height());
- resize(d->initialSize);
-
- if (d->resizeMode == SizeRootObjectToView) {
- d->declarativeRoot->setWidth(size().width());
- d->declarativeRoot->setHeight(size().height());
- } else {
- QSizeF sz(d->declarativeRoot->width(),d->declarativeRoot->height());
- emit sceneResized(sz);
- resize(sz);
- }
- updateGeometry();
- } else if (QGraphicsObject *item = qobject_cast<QGraphicsObject *>(obj)) {
- item->setParent(this);
- qWarning() << "QDeclarativeGraphicsWidget::resizeMode is not honored for components of type QGraphicsObject";
- } else if (qobject_cast<QWidget *>(obj)) {
- qWarning() << "QDeclarativeGraphicsWidget does not support loading QML files containing QWidgets";
- }
- }
- emit statusChanged(status());
-}
-
-/*!
- \internal
- */
-void QDeclarativeGraphicsWidget::sizeChanged()
-{
- // delay, so we catch both width and height changing.
- d->resizetimer.start(0,this);
-}
-
-/*!
- \internal
- If the \l {QTimerEvent} {timer event} \a e is this
- view's resize timer, sceneResized() is emitted.
- */
-void QDeclarativeGraphicsWidget::timerEvent(QTimerEvent* e)
-{
- if (!e || e->timerId() == d->resizetimer.timerId()) {
- if (d->declarativeRoot) {
- QSize sz(d->declarativeRoot->width(),d->declarativeRoot->height());
- emit sceneResized(sz);
- }
- d->resizetimer.stop();
- updateGeometry();
- }
-}
-
-/*!
- \internal
- The size hint is the size of the root item.
-*/
-QSizeF QDeclarativeGraphicsWidget::sizeHint() const
-{
- if (d->declarativeRoot) {
- if (d->initialSize.width() <= 0)
- d->initialSize.setWidth(d->declarativeRoot->width());
- if (d->initialSize.height() <= 0)
- d->initialSize.setHeight(d->declarativeRoot->height());
- }
- return d->initialSize;
-}
-
-/*!
- Returns the view's root \l {QGraphicsObject} {item}.
- */
-QGraphicsObject *QDeclarativeGraphicsWidget::rootObject() const
-{
- return d->root;
-}
-
-/*!
- \internal
- This function handles the \l {QGraphicsSceneResizeEvent} {resize event}
- \a e.
- */
-void QDeclarativeGraphicsWidget::resizeEvent(QGraphicsSceneResizeEvent *e)
-{
- if (d->resizeMode == SizeRootObjectToView && d->declarativeRoot) {
- d->declarativeRoot->setWidth(size().width());
- d->declarativeRoot->setHeight(size().height());
- }
- QGraphicsWidget::resizeEvent(e);
-}
-
-QT_END_NAMESPACE
diff --git a/src/declarative/util/qdeclarativegraphicswidget.h b/src/declarative/util/qdeclarativegraphicswidget.h
deleted file mode 100644
index 33ebc7b..0000000
--- a/src/declarative/util/qdeclarativegraphicswidget.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QDECLARATIVEGRAPHICSWIDGET_H
-#define QDECLARATIVEGRAPHICSWIDGET_H
-
-#include <QtCore/qdatetime.h>
-#include <QtCore/qurl.h>
-#include <QtGui/qgraphicssceneevent.h>
-#include <QtGui/qgraphicswidget.h>
-#include <QtGui/qwidget.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Declarative)
-
-class QGraphicsObject;
-class QDeclarativeEngine;
-class QDeclarativeContext;
-class QDeclarativeError;
-
-class QDeclarativeGraphicsWidgetPrivate;
-
-class Q_DECLARATIVE_EXPORT QDeclarativeGraphicsWidget : public QGraphicsWidget
-{
- Q_OBJECT
- Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
- Q_PROPERTY(Status status READ status NOTIFY statusChanged)
- Q_PROPERTY(QUrl source READ source WRITE setSource)
-
-public:
- explicit QDeclarativeGraphicsWidget(QGraphicsItem *parent = 0);
- virtual ~QDeclarativeGraphicsWidget();
-
- QUrl source() const;
- void setSource(const QUrl&);
-
- QDeclarativeEngine* engine();
- QDeclarativeContext* rootContext();
-
- QGraphicsObject *rootObject() const;
-
- enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView };
- ResizeMode resizeMode() const;
- void setResizeMode(ResizeMode);
- QSizeF sizeHint() const;
-
- enum Status { Null, Ready, Loading, Error };
- Status status() const;
-
- QList<QDeclarativeError> errors() const;
-
-Q_SIGNALS:
- void sceneResized(QSizeF size);
- void statusChanged(QDeclarativeGraphicsWidget::Status);
-
-private Q_SLOTS:
- void continueExecute();
- void sizeChanged();
-
-protected:
- virtual void resizeEvent(QGraphicsSceneResizeEvent *);
- void timerEvent(QTimerEvent*);
-
-private:
- QDeclarativeGraphicsWidgetPrivate* d;
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QDECLARATIVEGRAPHICSWIDGET_H
diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri
index 46126e5..610eb3f 100644
--- a/src/declarative/util/util.pri
+++ b/src/declarative/util/util.pri
@@ -30,8 +30,7 @@ SOURCES += \
$$PWD/qdeclarativedatetimeformatter.cpp \
$$PWD/qdeclarativebehavior.cpp \
$$PWD/qdeclarativefontloader.cpp \
- $$PWD/qdeclarativestyledtext.cpp \
- $$PWD/qdeclarativegraphicswidget.cpp
+ $$PWD/qdeclarativestyledtext.cpp
HEADERS += \
$$PWD/qdeclarativeutilmodule_p.h\
@@ -66,8 +65,7 @@ HEADERS += \
$$PWD/qdeclarativedatetimeformatter_p.h \
$$PWD/qdeclarativebehavior_p.h \
$$PWD/qdeclarativefontloader_p.h \
- $$PWD/qdeclarativestyledtext_p.h \
- $$PWD/qdeclarativegraphicswidget.h
+ $$PWD/qdeclarativestyledtext_p.h
contains(QT_CONFIG, xmlpatterns) {
QT+=xmlpatterns
diff --git a/src/multimedia/base/qmediacontent.cpp b/src/multimedia/base/qmediacontent.cpp
index 3e32af0..fd519c6 100644
--- a/src/multimedia/base/qmediacontent.cpp
+++ b/src/multimedia/base/qmediacontent.cpp
@@ -109,6 +109,19 @@ QMediaContent::QMediaContent(const QUrl &url):
}
/*!
+ Constructs a media content with \a request providing a reference to the content.
+
+ This constructor can be used to reference media content via network protocols such as HTTP.
+ This may include additional information required to obtain the resource, such as Cookies or HTTP headers.
+*/
+
+QMediaContent::QMediaContent(const QNetworkRequest &request):
+ d(new QMediaContentPrivate)
+{
+ d->resources << QMediaResource(request);
+}
+
+/*!
Constructs a media content with \a resource providing a reference to the content.
*/
diff --git a/src/multimedia/base/qmediacontent.h b/src/multimedia/base/qmediacontent.h
index 1ea4898..b6f3017 100644
--- a/src/multimedia/base/qmediacontent.h
+++ b/src/multimedia/base/qmediacontent.h
@@ -46,6 +46,7 @@
#include <QtCore/qshareddata.h>
#include <QtMultimedia/qmediaresource.h>
+#include <QtNetwork/qnetworkrequest.h>
QT_BEGIN_HEADER
@@ -60,6 +61,7 @@ class Q_MULTIMEDIA_EXPORT QMediaContent
public:
QMediaContent();
QMediaContent(const QUrl &contentUrl);
+ QMediaContent(const QNetworkRequest &contentRequest);
QMediaContent(const QMediaResource &contentResource);
QMediaContent(const QMediaResourceList &resources);
QMediaContent(const QMediaContent &other);
diff --git a/src/multimedia/base/qmediaserviceprovider.cpp b/src/multimedia/base/qmediaserviceprovider.cpp
index 76377d9..02c9b29 100644
--- a/src/multimedia/base/qmediaserviceprovider.cpp
+++ b/src/multimedia/base/qmediaserviceprovider.cpp
@@ -594,8 +594,6 @@ QMediaServiceProvider *QMediaServiceProvider::defaultServiceProvider()
#endif
}
-QT_END_NAMESPACE
-
/*!
\class QMediaServiceProviderPlugin
\preliminary
diff --git a/src/multimedia/qml/multimediadeclarative.cpp b/src/multimedia/qml/multimediadeclarative.cpp
new file mode 100644
index 0000000..cfb8999
--- /dev/null
+++ b/src/multimedia/qml/multimediadeclarative.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtMultimedia module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtMultimedia/multimediadeclarative.h>
+#include <QtMultimedia/private/qsoundeffect_p.h>
+#include <QtMultimedia/private/qdeclarativeaudio_p.h>
+#include <QtMultimedia/private/qdeclarativevideo_p.h>
+
+
+QT_BEGIN_NAMESPACE
+
+namespace QtMultimedia
+{
+
+/*!
+ Register the Multimedia QML elements.
+ \internal
+*/
+
+void qRegisterDeclarativeElements(QDeclarativeEngine *engine, const char *uri)
+{
+ Q_UNUSED(engine)
+ Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.multimedia"));
+
+ qmlRegisterType<QSoundEffect>("Qt.multimedia", 4, 7, "SoundEffect", "SoundEffect");
+ qmlRegisterType<QDeclarativeAudio>("Qt.multimedia", 4, 7, "Audio", "Audio");
+ qmlRegisterType<QDeclarativeVideo>("Qt.multimedia", 4, 7, "Video", "Video");
+}
+
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/multimedia/qml/multimediadeclarative.h b/src/multimedia/qml/multimediadeclarative.h
new file mode 100644
index 0000000..befddb6
--- /dev/null
+++ b/src/multimedia/qml/multimediadeclarative.h
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtMultimedia module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTMULTIMEDIA_QML_H
+#define QTMULTIMEDIA_QML_H
+
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_HEADER
+QT_BEGIN_NAMESPACE
+
+QT_MODULE(Multimedia)
+
+class QDeclarativeEngine;
+
+namespace QtMultimedia
+{
+extern void Q_MULTIMEDIA_EXPORT qRegisterDeclarativeElements(QDeclarativeEngine* engine, const char *uri);
+}
+
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#endif // ifndef QTMULTIMEDIA_QML_H
diff --git a/src/multimedia/qml/qdeclarativeaudio_p.h b/src/multimedia/qml/qdeclarativeaudio_p.h
index d28c1dd..d1fb275 100644
--- a/src/multimedia/qml/qdeclarativeaudio_p.h
+++ b/src/multimedia/qml/qdeclarativeaudio_p.h
@@ -42,6 +42,17 @@
#ifndef QDECLARATIVEAUDIO_P_H
#define QDECLARATIVEAUDIO_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtMultimedia/private/qdeclarativemediabase_p.h>
#include <QtCore/qbasictimer.h>
diff --git a/src/multimedia/qml/qdeclarativemediabase_p.h b/src/multimedia/qml/qdeclarativemediabase_p.h
index cee190c..2fc48db 100644
--- a/src/multimedia/qml/qdeclarativemediabase_p.h
+++ b/src/multimedia/qml/qdeclarativemediabase_p.h
@@ -42,6 +42,16 @@
#ifndef QDECLARATIVEMEDIABASE_P_H
#define QDECLARATIVEMEDIABASE_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
#include <QtCore/qbasictimer.h>
#include <QtMultimedia/qmediaplayer.h>
diff --git a/src/multimedia/qml/qdeclarativevideo_p.h b/src/multimedia/qml/qdeclarativevideo_p.h
index 164edae..d5ebde1 100644
--- a/src/multimedia/qml/qdeclarativevideo_p.h
+++ b/src/multimedia/qml/qdeclarativevideo_p.h
@@ -42,6 +42,17 @@
#ifndef QDECLARATIVEVIDEO_H
#define QDECLARATIVEVIDEO_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtMultimedia/private/qdeclarativemediabase_p.h>
#include <QtMultimedia/qgraphicsvideoitem.h>
diff --git a/src/multimedia/qml/qmetadatacontrolmetaobject_p.h b/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
index c0fd4e8..ec4df05 100644
--- a/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
+++ b/src/multimedia/qml/qmetadatacontrolmetaobject_p.h
@@ -42,6 +42,17 @@
#ifndef QMETADATACONTROLMETAOBJECT_P_H
#define QMETADATACONTROLMETAOJBECT_P_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtCore/qmetaobject.h>
#include <QtMultimedia/qtmedianamespace.h>
diff --git a/src/multimedia/qml/qml.pri b/src/multimedia/qml/qml.pri
index dfc006e..d0ff71d 100644
--- a/src/multimedia/qml/qml.pri
+++ b/src/multimedia/qml/qml.pri
@@ -17,7 +17,7 @@ contains(QT_CONFIG, declarative) {
}
HEADERS += \
- $$PWD/qdeclarative.h \
+ $$PWD/multimediadeclarative.h \
$$PWD/qmetadatacontrolmetaobject_p.h \
$$PWD/qdeclarativeaudio_p.h \
$$PWD/qdeclarativevideo_p.h \
@@ -26,7 +26,7 @@ contains(QT_CONFIG, declarative) {
$$PWD/wavedecoder_p.h
SOURCES += \
- $$PWD/qdeclarative.cpp \
+ $$PWD/multimediadeclarative.cpp \
$$PWD/qmetadatacontrolmetaobject.cpp \
$$PWD/qdeclarativeaudio.cpp \
$$PWD/qdeclarativevideo.cpp \
diff --git a/src/multimedia/qml/wavedecoder_p.h b/src/multimedia/qml/wavedecoder_p.h
index 3bcd90d..00aa14e 100644
--- a/src/multimedia/qml/wavedecoder_p.h
+++ b/src/multimedia/qml/wavedecoder_p.h
@@ -42,6 +42,17 @@
#ifndef WAVEDECODER_H
#define WAVEDECODER_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists for the convenience
+// of other Qt classes. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QtCore/qiodevice.h>
#include <QtMultimedia/qaudioformat.h>
diff --git a/src/plugins/mediaservices/directshow/dsserviceplugin.cpp b/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
index f3ab889..c482fd5 100644
--- a/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
+++ b/src/plugins/mediaservices/directshow/dsserviceplugin.cpp
@@ -94,7 +94,7 @@ QMediaService* DSServicePlugin::create(QString const& key)
return new DirectShowPlayerService;
#endif
- qDebug() << "unsupported key:" << key;
+ qWarning() << "DirectShow service plugin: unsupported service -" << key;
return 0;
}
diff --git a/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp b/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
index c2fb0d4..1dca465 100644
--- a/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
+++ b/src/plugins/mediaservices/directshow/mediaplayer/directshowiosource.cpp
@@ -624,11 +624,7 @@ bool DirectShowRcSource::open(const QUrl &url)
m_file.setFileName(QLatin1Char(':') + url.path());
- qDebug("qrc file %s", qPrintable(m_file.fileName()));
-
if (m_file.open(QIODevice::ReadOnly)) {
- qDebug("Size %d", m_file.size());
- qDebug("Sequential %d", int(m_file.isSequential()));
setDevice(&m_file);
diff --git a/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
index 49eeb23..4d0ffe4 100644
--- a/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
+++ b/src/plugins/mediaservices/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
@@ -41,7 +41,7 @@
#include "qgstreamermetadataprovider.h"
#include "qgstreamerplayersession.h"
-#include <QDebug>
+#include <QtCore/qdebug.h>
#include <gst/gstversion.h>
diff --git a/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp b/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
index 9e5f425..589d2b5 100644
--- a/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstreamerserviceplugin.cpp
@@ -43,7 +43,6 @@
#include <QtCore/qdebug.h>
#include <QtGui/QIcon>
#include <QtCore/QDir>
-#include <QtCore/QDebug>
#include "qgstreamerserviceplugin.h"
@@ -99,7 +98,7 @@ QMediaService* QGstreamerServicePlugin::create(const QString &key)
return new QGstreamerCaptureService(key);
#endif
- qDebug() << "unsupported key:" << key;
+ qWarning() << "GStreamer service plugin: unsupported service -" << key;
return 0;
}
@@ -145,7 +144,7 @@ void QGstreamerServicePlugin::updateDevices() const
QFileInfoList entries = devDir.entryInfoList(QStringList() << "video*");
foreach( const QFileInfo &entryInfo, entries ) {
- qDebug() << "Try" << entryInfo.filePath();
+// qDebug() << "Try" << entryInfo.filePath();
int fd = ::open(entryInfo.filePath().toLatin1().constData(), O_RDWR );
if (fd == -1)
@@ -172,7 +171,7 @@ void QGstreamerServicePlugin::updateDevices() const
name = entryInfo.fileName();
else
name = QString((const char*)vcap.card);
- qDebug() << "found camera: " << name;
+// qDebug() << "found camera: " << name;
m_cameraDevices.append(entryInfo.filePath().toLocal8Bit());
m_cameraDescriptions.append(name);
diff --git a/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp b/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
index ac9a1e3..94ae847 100644
--- a/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstreamervideoinputdevicecontrol.cpp
@@ -120,7 +120,7 @@ void QGstreamerVideoInputDeviceControl::update()
QFileInfoList entries = devDir.entryInfoList(QStringList() << "video*");
foreach( const QFileInfo &entryInfo, entries ) {
- qDebug() << "Try" << entryInfo.filePath();
+// qDebug() << "Try" << entryInfo.filePath();
int fd = ::open(entryInfo.filePath().toLatin1().constData(), O_RDWR );
if (fd == -1)
@@ -147,7 +147,7 @@ void QGstreamerVideoInputDeviceControl::update()
name = entryInfo.fileName();
else
name = QString((const char*)vcap.card);
- qDebug() << "found camera: " << name;
+// qDebug() << "found camera: " << name;
m_names.append(entryInfo.filePath());
m_descriptions.append(name);
diff --git a/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp b/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
index 0e47c98..5b99817 100644
--- a/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
+++ b/src/plugins/mediaservices/gstreamer/qgstxvimagebuffer.cpp
@@ -182,7 +182,7 @@ void QGstXvImageBufferPool::queuedAlloc()
);
if (!xvBuffer->xvImage) {
- qDebug() << "QGstXvImageBufferPool: XvShmCreateImage failed";
+// qDebug() << "QGstXvImageBufferPool: XvShmCreateImage failed";
m_allocWaitCondition.wakeOne();
return;
}
@@ -192,7 +192,7 @@ void QGstXvImageBufferPool::queuedAlloc()
xvBuffer->shmInfo.readOnly = False;
if (!XShmAttach(QX11Info::display(), &xvBuffer->shmInfo)) {
- qDebug() << "QGstXvImageBufferPool: XShmAttach failed";
+// qDebug() << "QGstXvImageBufferPool: XShmAttach failed";
m_allocWaitCondition.wakeOne();
return;
}
diff --git a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
index 9e3807b..402a225 100644
--- a/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
+++ b/src/plugins/mediaservices/gstreamer/qvideosurfacegstsink.cpp
@@ -41,9 +41,8 @@
#include <QtMultimedia/QAbstractVideoSurface>
#include <QtMultimedia/QVideoFrame>
-#include <QDebug>
+#include <QtCore/qdebug.h>
#include <QMap>
-#include <QDebug>
#include <QThread>
#include <QtGui/qx11info_x11.h>
diff --git a/src/plugins/mediaservices/mediaservices.pro b/src/plugins/mediaservices/mediaservices.pro
index 55e6aba..0cef605 100644
--- a/src/plugins/mediaservices/mediaservices.pro
+++ b/src/plugins/mediaservices/mediaservices.pro
@@ -1,18 +1,20 @@
TEMPLATE = subdirs
-win32:!wince: SUBDIRS += directshow
+contains(QT_CONFIG, mediaservice) {
+ win32:!wince: SUBDIRS += directshow
-mac: SUBDIRS += qt7
+ mac: SUBDIRS += qt7
-unix:!mac:!symbian {
- TMP_GST_LIBS = \
- gstreamer-0.10 >= 0.10.19 \
- gstreamer-base-0.10 >= 0.10.19 \
- gstreamer-interfaces-0.10 >= 0.10.19 \
- gstreamer-audio-0.10 >= 0.10.19 \
- gstreamer-video-0.10 >= 0.10.19
+ unix:!mac:!symbian {
+ TMP_GST_LIBS = \
+ gstreamer-0.10 >= 0.10.19 \
+ gstreamer-base-0.10 >= 0.10.19 \
+ gstreamer-interfaces-0.10 >= 0.10.19 \
+ gstreamer-audio-0.10 >= 0.10.19 \
+ gstreamer-video-0.10 >= 0.10.19
- system(pkg-config --exists \'$${TMP_GST_LIBS}\' --print-errors): {
- SUBDIRS += gstreamer
+ system(pkg-config --exists \'$${TMP_GST_LIBS}\' --print-errors): {
+ SUBDIRS += gstreamer
+ }
}
}
diff --git a/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm b/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
index df15fa8..faf75d1 100644
--- a/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
+++ b/src/plugins/mediaservices/qt7/mediaplayer/qt7playerservice.mm
@@ -79,7 +79,7 @@ QT7PlayerService::QT7PlayerService(QObject *parent):
#if defined(QT_MAC_USE_COCOA)
m_videoWidnowControl = new QT7MovieViewOutput(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::WindowOutput);
- qDebug() << "Using cocoa";
+// qDebug() << "Using cocoa";
#endif
#ifdef QUICKTIME_C_API_AVAILABLE
@@ -88,11 +88,11 @@ QT7PlayerService::QT7PlayerService(QObject *parent):
m_videoWidgetControl = new QT7MovieVideoWidget(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::WidgetOutput);
- qDebug() << "QuickTime C API is available";
+// qDebug() << "QuickTime C API is available";
#else
m_videoRendererControl = new QT7MovieViewRenderer(this);
m_videoOutputControl->enableOutput(QVideoOutputControl::RendererOutput);
- qDebug() << "QuickTime C API is not available";
+// qDebug() << "QuickTime C API is not available";
#endif
@@ -129,7 +129,7 @@ QMediaControl *QT7PlayerService::control(const char *name) const
void QT7PlayerService::updateVideoOutput()
{
- qDebug() << "QT7PlayerService::updateVideoOutput" << m_videoOutputControl->output();
+// qDebug() << "QT7PlayerService::updateVideoOutput" << m_videoOutputControl->output();
switch (m_videoOutputControl->output()) {
case QVideoOutputControl::WindowOutput:
diff --git a/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm b/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
index d516a99..3f198b9 100644
--- a/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
+++ b/src/plugins/mediaservices/qt7/mediaplayer/qt7playersession.mm
@@ -372,7 +372,7 @@ void QT7PlayerSession::setMedia(const QMediaContent &content, QIODevice *stream)
else
return;
- qDebug() << "Open media" << url;
+// qDebug() << "Open media" << url;
NSError *err = 0;
NSString *urlString = (NSString *)qString2CFStringRef(url.toString());
@@ -436,7 +436,7 @@ void QT7PlayerSession::processStateChange()
{
signed long state = [[(QTMovie*)m_QTMovie attributeForKey:QTMovieLoadStateAttribute]
longValue];
- qDebug() << "Moview load state changed:" << state;
+// qDebug() << "Moview load state changed:" << state;
#ifndef QUICKTIME_C_API_AVAILABLE
enum {
@@ -505,7 +505,7 @@ void QT7PlayerSession::processNaturalSizeChange()
{
if (m_videoOutput) {
NSSize size = [[(QTMovie*)m_QTMovie attributeForKey:@"QTMovieNaturalSizeAttribute"] sizeValue];
- qDebug() << "Native size changed:" << QSize(size.width, size.height);
+// qDebug() << "Native size changed:" << QSize(size.width, size.height);
m_videoOutput->updateNaturalSize(QSize(size.width, size.height));
}
}
diff --git a/src/plugins/mediaservices/qt7/qt7movierenderer.mm b/src/plugins/mediaservices/qt7/qt7movierenderer.mm
index 587f3b9..6b9fd21 100644
--- a/src/plugins/mediaservices/qt7/qt7movierenderer.mm
+++ b/src/plugins/mediaservices/qt7/qt7movierenderer.mm
@@ -169,7 +169,7 @@ QT7MovieRenderer::QT7MovieRenderer(QObject *parent)
#endif
m_surface(0)
{
- qDebug() << "QT7MovieRenderer";
+// qDebug() << "QT7MovieRenderer";
m_displayLink = new QCvDisplayLink(this);
connect(m_displayLink, SIGNAL(tick(CVTimeStamp)), SLOT(updateVideoFrame(CVTimeStamp)));
@@ -262,7 +262,7 @@ void QT7MovieRenderer::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieRenderer::setupVideoOutput" << m_movie;
+// qDebug() << "QT7MovieRenderer::setupVideoOutput" << m_movie;
if (m_movie == 0 || m_surface == 0) {
m_displayLink->stop();
@@ -286,9 +286,9 @@ void QT7MovieRenderer::setupVideoOutput()
if (m_surface->isActive())
m_surface->stop();
- qDebug() << "Starting the surface with format" << format;
+// qDebug() << "Starting the surface with format" << format;
if (!m_surface->start(format)) {
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "failed to start video surface" << m_surface->error();
glSupported = false;
} else {
m_usingGLContext = true;
@@ -301,14 +301,15 @@ void QT7MovieRenderer::setupVideoOutput()
QVideoSurfaceFormat format(m_nativeSize, QVideoFrame::Format_RGB32);
if (m_surface->isActive() && m_surface->surfaceFormat() != format) {
- qDebug() << "Surface format was changed, stop the surface.";
+// qDebug() << "Surface format was changed, stop the surface.";
m_surface->stop();
}
if (!m_surface->isActive()) {
- qDebug() << "Starting the surface with format" << format;
- if (!m_surface->start(format))
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "Starting the surface with format" << format;
+ m_surface->start(format);
+// if (!m_surface->start(format))
+// qDebug() << "failed to start video surface" << m_surface->error();
}
}
}
@@ -328,14 +329,14 @@ void QT7MovieRenderer::setupVideoOutput()
if (!m_nativeSize.isEmpty()) {
if (!m_visualContext) {
if (m_usingGLContext) {
- qDebug() << "Building OpenGL visual context" << m_nativeSize;
+// qDebug() << "Building OpenGL visual context" << m_nativeSize;
m_currentGLContext = QGLContext::currentContext();
if (!createGLVisualContext()) {
qWarning() << "QT7MovieRenderer: failed to create visual context";
return;
}
} else {
- qDebug() << "Building Pixel Buffer visual context" << m_nativeSize;
+// qDebug() << "Building Pixel Buffer visual context" << m_nativeSize;
if (!createPixelBufferVisualContext()) {
qWarning() << "QT7MovieRenderer: failed to create visual context";
return;
@@ -358,7 +359,7 @@ void QT7MovieRenderer::setEnabled(bool)
void QT7MovieRenderer::setMovie(void *movie)
{
- qDebug() << "QT7MovieRenderer::setMovie" << movie;
+// qDebug() << "QT7MovieRenderer::setMovie" << movie;
#ifdef QUICKTIME_C_API_AVAILABLE
QMutexLocker locker(&m_mutex);
@@ -393,7 +394,7 @@ QAbstractVideoSurface *QT7MovieRenderer::surface() const
void QT7MovieRenderer::setSurface(QAbstractVideoSurface *surface)
{
- qDebug() << "Set video surface" << surface;
+// qDebug() << "Set video surface" << surface;
if (surface == m_surface)
return;
diff --git a/src/plugins/mediaservices/qt7/qt7movievideowidget.mm b/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
index 6e74fcd..4043330 100644
--- a/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
+++ b/src/plugins/mediaservices/qt7/qt7movievideowidget.mm
@@ -184,7 +184,7 @@ QT7MovieVideoWidget::QT7MovieVideoWidget(QObject *parent)
m_hue(0),
m_saturation(0)
{
- qDebug() << "QT7MovieVideoWidget";
+// qDebug() << "QT7MovieVideoWidget";
QGLFormat format = QGLFormat::defaultFormat();
format.setSwapInterval(1); // Vertical sync (avoid tearing)
@@ -249,7 +249,7 @@ void QT7MovieVideoWidget::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieVideoWidget::setupVideoOutput" << m_movie;
+// qDebug() << "QT7MovieVideoWidget::setupVideoOutput" << m_movie;
if (m_movie == 0) {
m_displayLink->stop();
diff --git a/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm b/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
index 7271f5b..5047853 100644
--- a/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
+++ b/src/plugins/mediaservices/qt7/qt7movieviewrenderer.mm
@@ -247,7 +247,7 @@ void QT7MovieViewRenderer::setupVideoOutput()
{
AutoReleasePool pool;
- qDebug() << "QT7MovieViewRenderer::setupVideoOutput" << m_movie << m_surface;
+// qDebug() << "QT7MovieViewRenderer::setupVideoOutput" << m_movie << m_surface;
HiddenQTMovieView *movieView = (HiddenQTMovieView*)m_movieView;
@@ -274,14 +274,15 @@ void QT7MovieViewRenderer::setupVideoOutput()
QVideoSurfaceFormat format(m_nativeSize, QVideoFrame::Format_RGB32);
if (m_surface->isActive() && m_surface->surfaceFormat() != format) {
- qDebug() << "Surface format was changed, stop the surface.";
+// qDebug() << "Surface format was changed, stop the surface.";
m_surface->stop();
}
if (!m_surface->isActive()) {
- qDebug() << "Starting the surface with format" << format;
- if (!m_surface->start(format))
- qDebug() << "failed to start video surface" << m_surface->error();
+// qDebug() << "Starting the surface with format" << format;
+ m_surface->start(format);
+// if (!m_surface->start(format))
+// qDebug() << "failed to start video surface" << m_surface->error();
}
}
}
diff --git a/src/plugins/qdeclarativemodules/multimedia/multimedia.cpp b/src/plugins/qdeclarativemodules/multimedia/multimedia.cpp
index 1158c88..e27dd8d 100644
--- a/src/plugins/qdeclarativemodules/multimedia/multimedia.cpp
+++ b/src/plugins/qdeclarativemodules/multimedia/multimedia.cpp
@@ -41,7 +41,7 @@
#include <QtDeclarative/qdeclarativeextensionplugin.h>
#include <QtDeclarative/qdeclarative.h>
-#include <QtMultimedia/qdeclarative.h>
+#include <QtMultimedia/multimediadeclarative.h>
QT_BEGIN_NAMESPACE
@@ -51,7 +51,7 @@ class QMultimediaQmlModule : public QDeclarativeExtensionPlugin
public:
virtual void initialize(QDeclarativeEngine *engine, const char *uri)
{
- QtMultimedia::qRegisterQmlElements(engine, uri);
+ QtMultimedia::qRegisterDeclarativeElements(engine, uri);
}
};
diff --git a/tests/auto/qmediacontent/qmediacontent.pro b/tests/auto/qmediacontent/qmediacontent.pro
index f7884f6..6c13c8b 100644
--- a/tests/auto/qmediacontent/qmediacontent.pro
+++ b/tests/auto/qmediacontent/qmediacontent.pro
@@ -2,5 +2,5 @@ load(qttest_p4)
SOURCES += tst_qmediacontent.cpp
-QT = core multimedia
+QT = core network multimedia
diff --git a/tests/auto/qmediacontent/tst_qmediacontent.cpp b/tests/auto/qmediacontent/tst_qmediacontent.cpp
index 35dd0a9..8987241 100644
--- a/tests/auto/qmediacontent/tst_qmediacontent.cpp
+++ b/tests/auto/qmediacontent/tst_qmediacontent.cpp
@@ -51,6 +51,7 @@ class tst_QMediaContent : public QObject
private slots:
void testNull();
void testUrlCtor();
+ void testRequestCtor();
void testResourceCtor();
void testResourceListCtor();
void testCopy();
@@ -77,6 +78,18 @@ void tst_QMediaContent::testUrlCtor()
QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
}
+void tst_QMediaContent::testRequestCtor()
+{
+ QNetworkRequest request(QUrl("http://example.com/movie.mov"));
+ request.setAttribute(QNetworkRequest::User, QVariant(1234));
+
+ QMediaContent media(request);
+
+ QCOMPARE(media.canonicalUrl(), QUrl("http://example.com/movie.mov"));
+ QCOMPARE(media.canonicalResource().request(), request);
+ QCOMPARE(media.canonicalResource().url(), QUrl("http://example.com/movie.mov"));
+}
+
void tst_QMediaContent::testResourceCtor()
{
QMediaContent media(QMediaResource(QUrl("http://example.com/movie.mov")));
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 91de7c2..d926a76 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -119,3 +119,4 @@ DEFINES += COMMERCIAL_VERSION
INCLUDEPATH += $$QT_SOURCE_TREE/src/corelib/arch/generic \
$$QT_SOURCE_TREE/include/QtCore \
+ $$QT_SOURCE_TREE/tools/shared
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 1fe4503..0ff7301 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -248,6 +248,7 @@ Configure::Configure( int& argc, char** argv )
dictionary[ "PHONON_BACKEND" ] = "yes";
dictionary[ "MULTIMEDIA" ] = "yes";
dictionary[ "AUDIO_BACKEND" ] = "auto";
+ dictionary[ "MEDIASERVICE"] = "auto";
dictionary[ "DIRECTSHOW" ] = "no";
dictionary[ "WEBKIT" ] = "auto";
dictionary[ "DECLARATIVE" ] = "auto";
@@ -907,6 +908,10 @@ void Configure::parseCmdLine()
dictionary[ "AUDIO_BACKEND" ] = "yes";
} else if( configCmdLine.at(i) == "-no-audio-backend" ) {
dictionary[ "AUDIO_BACKEND" ] = "no";
+ } else if( configCmdLine.at(i) == "-mediaservice") {
+ dictionary[ "MEDIASERVICE" ] = "yes";
+ } else if (configCmdLine.at(i) == "-no-mediaservice") {
+ dictionary[ "MEDIASERVICE" ] = "no";
} else if( configCmdLine.at(i) == "-no-phonon" ) {
dictionary[ "PHONON" ] = "no";
} else if( configCmdLine.at(i) == "-phonon" ) {
@@ -1771,6 +1776,8 @@ bool Configure::displayHelp()
desc("MULTIMEDIA", "yes","-multimedia", "Compile in multimedia module");
desc("AUDIO_BACKEND", "no","-no-audio-backend", "Do not compile in the platform audio backend into QtMultimedia");
desc("AUDIO_BACKEND", "yes","-audio-backend", "Compile in the platform audio backend into QtMultimedia");
+ desc("MEDIASERVICE", "no","-no-mediaservice", "Do not compile in the platform-specific QtMultimedia media service.");
+ desc("MEDIASERVICE", "yes","-mediaservice", "Compile in the platform-specific QtMultimedia media service.");
desc("WEBKIT", "no", "-no-webkit", "Do not compile in the WebKit module");
desc("WEBKIT", "yes", "-webkit", "Compile in the WebKit module (WebKit is built if a decent C++ compiler is used.)");
desc("SCRIPT", "no", "-no-script", "Do not build the QtScript module.");
@@ -2052,7 +2059,7 @@ bool Configure::checkAvailability(const QString &part)
&& dictionary.value("QMAKESPEC") != "win32-msvc.net" // Leave for now, since we can't be sure if they are using 2002 or 2003 with this spec
&& dictionary.value("QMAKESPEC") != "win32-msvc2002"
&& dictionary.value("EXCEPTIONS") == "yes";
- } else if (part == "PHONON") {
+ } else if (part == "PHONON" || part == "MEDIASERVICE") {
available = findFile("vmr9.h") && findFile("dshow.h") && findFile("dmo.h") && findFile("dmodshow.h")
&& (findFile("strmiids.lib") || findFile("libstrmiids.a"))
&& (findFile("dmoguids.lib") || findFile("libdmoguids.a"))
@@ -2212,6 +2219,8 @@ void Configure::autoDetection()
dictionary["DECLARATIVE"] = checkAvailability("DECLARATIVE") ? "yes" : "no";
if (dictionary["AUDIO_BACKEND"] == "auto")
dictionary["AUDIO_BACKEND"] = checkAvailability("AUDIO_BACKEND") ? "yes" : "no";
+ if (dictionary["MEDIASERVICE"] == "auto")
+ dictionary["MEDIASERVICE"] = checkAvailability("MEDIASERVICE") ? "yes" : "no";
// Qt/WinCE remote test application
if (dictionary["CETEST"] == "auto")
@@ -2602,6 +2611,8 @@ void Configure::generateOutputVars()
qtConfig += "multimedia";
if (dictionary["AUDIO_BACKEND"] == "yes")
qtConfig += "audio-backend";
+ if (dictionary["MEDIASERVICE"] == "yes")
+ qtConfig += "mediaservice";
}
if (dictionary["WEBKIT"] == "yes")