avmedia/source/opengl/oglplayer.cxx | 7 +++++-- avmedia/source/opengl/oglplayer.hxx | 2 +- slideshow/source/engine/shapes/viewmediashape.cxx | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-)
New commits: commit 3453273086ef4c546c2a7dca41654627fd720cfa Author: Jan Holesovsky <ke...@collabora.com> Date: Wed May 28 16:43:08 2014 +0200 First stop the timer, then the animation. Change-Id: Icd5f9f4b8e1c48176fdb73c954e1c4b7d0811516 diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx index fefbb31..88c93a6 100644 --- a/avmedia/source/opengl/oglplayer.cxx +++ b/avmedia/source/opengl/oglplayer.cxx @@ -145,8 +145,8 @@ void SAL_CALL OGLPlayer::start() throw ( uno::RuntimeException, std::exception ) void SAL_CALL OGLPlayer::stop() throw ( uno::RuntimeException, std::exception ) { osl::MutexGuard aGuard(m_aMutex); - gltf_animation_stop(m_pHandle); m_aTimer.Stop(); + gltf_animation_stop(m_pHandle); } sal_Bool SAL_CALL OGLPlayer::isPlaying() throw ( uno::RuntimeException, std::exception ) commit 8d40fd2e0d7c264ce38c361fe7c9a20de9a81f0a Author: Jan Holesovsky <ke...@collabora.com> Date: Wed May 28 16:40:12 2014 +0200 slideshow: Don't assume anything about the duration. Let the player decide what to do when the duration is zero, and start()/stop() was called. Change-Id: I17027349e8d61f7b114e193a769402c04a64f3f3 diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx index d598237..ce50717 100644 --- a/slideshow/source/engine/shapes/viewmediashape.cxx +++ b/slideshow/source/engine/shapes/viewmediashape.cxx @@ -128,7 +128,7 @@ namespace slideshow if( !mxPlayer.is() ) implInitialize( maBounds ); - if( mxPlayer.is() && ( mxPlayer->getDuration() > 0.0 ) ) + if (mxPlayer.is()) mxPlayer->start(); return true; @@ -170,7 +170,7 @@ namespace slideshow void ViewMediaShape::pauseMedia() { - if( mxPlayer.is() && ( mxPlayer->getDuration() > 0.0 ) ) + if (mxPlayer.is()) mxPlayer->stop(); } @@ -178,7 +178,7 @@ namespace slideshow void ViewMediaShape::setMediaTime(double fTime) { - if( mxPlayer.is() && ( mxPlayer->getDuration() > 0.0 ) ) + if (mxPlayer.is()) mxPlayer->setMediaTime(fTime); } commit 91fb0866cad2518e5f2cbc48af0e952282fee19d Author: Jan Holesovsky <ke...@collabora.com> Date: Wed May 28 15:38:22 2014 +0200 Use AutoTimer instead of Timer, and add some more locking. Change-Id: I83a99e333a6c62bf7779e3fbbcc3e5af38bb2ca5 diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx index 22ff457..fefbb31 100644 --- a/avmedia/source/opengl/oglplayer.cxx +++ b/avmedia/source/opengl/oglplayer.cxx @@ -31,6 +31,7 @@ OGLPlayer::OGLPlayer() OGLPlayer::~OGLPlayer() { + osl::MutexGuard aGuard(m_aMutex); if( m_pHandle ) { for (size_t i = 0; i < m_pHandle->size; ++i) @@ -63,6 +64,8 @@ static bool lcl_LoadFile( glTFFile* io_pFile, const OUString& rURL) bool OGLPlayer::create( const OUString& rURL ) { + osl::MutexGuard aGuard(m_aMutex); + m_sURL = rURL; // Load *.json file and init renderer @@ -297,8 +300,8 @@ IMPL_LINK(OGLPlayer,TimerHandler,Timer*,pTimer) { if (pTimer == &m_aTimer) { + osl::MutexGuard aGuard(m_aMutex); m_pOGLWindow->update(); - m_aTimer.Start(); } return 0; diff --git a/avmedia/source/opengl/oglplayer.hxx b/avmedia/source/opengl/oglplayer.hxx index b41df21..42476fc 100644 --- a/avmedia/source/opengl/oglplayer.hxx +++ b/avmedia/source/opengl/oglplayer.hxx @@ -62,7 +62,7 @@ private: OUString m_sURL; glTFHandle* m_pHandle; OpenGLContext m_aContext; - Timer m_aTimer; + AutoTimer m_aTimer; OGLWindow* m_pOGLWindow; }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits