diff options
author | Gareth Stockwell <ext-gareth.stockwell@nokia.com> | 2010-06-08 13:37:21 (GMT) |
---|---|---|
committer | Gareth Stockwell <ext-gareth.stockwell@nokia.com> | 2010-07-07 12:21:25 (GMT) |
commit | 50fbb9d19b3f524361c146de8ff0fb2fe6abacc9 (patch) | |
tree | 747739b75b1cac36b3f483972ca0f9a1ff6529d0 | |
parent | 80af9a7b09b531a849b863695b244dd1df7dfb1d (diff) | |
download | Qt-50fbb9d19b3f524361c146de8ff0fb2fe6abacc9.zip Qt-50fbb9d19b3f524361c146de8ff0fb2fe6abacc9.tar.gz Qt-50fbb9d19b3f524361c146de8ff0fb2fe6abacc9.tar.bz2 |
Close media clip before creating new player object
Failure to Close() an existing MMF player utility object before
creating a new one - which happens in the MMF backend's implementation
of Phonon::MediaObject::setCurrentSource() - causes intialization of the
newly-created utility to fail later on.
Task-number: QTBUG-11377
Reviewed-by: Thierry Bastian
-rw-r--r-- | src/3rdparty/phonon/mmf/abstractmediaplayer.h | 1 | ||||
-rw-r--r-- | src/3rdparty/phonon/mmf/abstractplayer.h | 1 | ||||
-rw-r--r-- | src/3rdparty/phonon/mmf/dummyplayer.cpp | 4 | ||||
-rw-r--r-- | src/3rdparty/phonon/mmf/dummyplayer.h | 1 | ||||
-rw-r--r-- | src/3rdparty/phonon/mmf/mediaobject.cpp | 3 |
5 files changed, 9 insertions, 1 deletions
diff --git a/src/3rdparty/phonon/mmf/abstractmediaplayer.h b/src/3rdparty/phonon/mmf/abstractmediaplayer.h index 23a8233..7d28caf 100644 --- a/src/3rdparty/phonon/mmf/abstractmediaplayer.h +++ b/src/3rdparty/phonon/mmf/abstractmediaplayer.h @@ -71,7 +71,6 @@ protected: virtual int openFile(RFile& file) = 0; virtual int openUrl(const QString& url) = 0; virtual int bufferStatus() const = 0; - virtual void close() = 0; void updateMetaData(); virtual int numberOfMetaDataEntries() const = 0; diff --git a/src/3rdparty/phonon/mmf/abstractplayer.h b/src/3rdparty/phonon/mmf/abstractplayer.h index ab892f5..30d5243 100644 --- a/src/3rdparty/phonon/mmf/abstractplayer.h +++ b/src/3rdparty/phonon/mmf/abstractplayer.h @@ -55,6 +55,7 @@ public: AbstractPlayer(const AbstractPlayer *player); virtual void open(const Phonon::MediaSource&, RFile&) = 0; + virtual void close() = 0; // MediaObjectInterface (implemented) qint32 tickInterval() const; diff --git a/src/3rdparty/phonon/mmf/dummyplayer.cpp b/src/3rdparty/phonon/mmf/dummyplayer.cpp index 6970088..d39ef76 100644 --- a/src/3rdparty/phonon/mmf/dummyplayer.cpp +++ b/src/3rdparty/phonon/mmf/dummyplayer.cpp @@ -97,6 +97,10 @@ void MMF::DummyPlayer::open(const Phonon::MediaSource &, RFile &) } +void MMF::DummyPlayer::close() +{ + +} //----------------------------------------------------------------------------- // AbstractPlayer diff --git a/src/3rdparty/phonon/mmf/dummyplayer.h b/src/3rdparty/phonon/mmf/dummyplayer.h index 6841b5d..9d45696 100644 --- a/src/3rdparty/phonon/mmf/dummyplayer.h +++ b/src/3rdparty/phonon/mmf/dummyplayer.h @@ -58,6 +58,7 @@ public: // AbstractPlayer virtual void open(const Phonon::MediaSource&, RFile&); + virtual void close(); virtual void doSetTickInterval(qint32 interval); }; } diff --git a/src/3rdparty/phonon/mmf/mediaobject.cpp b/src/3rdparty/phonon/mmf/mediaobject.cpp index e1b921b..d264377 100644 --- a/src/3rdparty/phonon/mmf/mediaobject.cpp +++ b/src/3rdparty/phonon/mmf/mediaobject.cpp @@ -281,6 +281,9 @@ void MMF::MediaObject::createPlayer(const MediaSource &source) break; } + if (oldPlayer) + oldPlayer->close(); + AbstractPlayer* newPlayer = 0; // Construct newPlayer using oldPlayer (if not 0) in order to copy |