From c2c0d0f6e33a726e9df6e1aaf40e25b88b57e84d Mon Sep 17 00:00:00 2001 From: Hugo Beauzee-Luyssen Date: Thu, 5 Nov 2009 22:51:13 +0100 Subject: [PATCH] Solved position problem when starting to playback a splitted clip. --- src/Workflow/ClipWorkflow.cpp | 7 +++++++ src/Workflow/ClipWorkflow.h | 1 + 2 files changed, 8 insertions(+) diff --git a/src/Workflow/ClipWorkflow.cpp b/src/Workflow/ClipWorkflow.cpp index d455887c6..95954ad8e 100644 --- a/src/Workflow/ClipWorkflow.cpp +++ b/src/Workflow/ClipWorkflow.cpp @@ -88,6 +88,7 @@ void ClipWorkflow::initialize( bool preloading /*= false*/ ) void ClipWorkflow::pauseAfterPlaybackStarted() { + adjustBegin(); disconnect( m_mediaPlayer, SIGNAL( playing() ), this, SLOT( pauseAfterPlaybackStarted() ) ); connect( m_mediaPlayer, SIGNAL( paused() ), this, SLOT( initializedMediaPlayer() ), Qt::DirectConnection ); @@ -96,6 +97,7 @@ void ClipWorkflow::pauseAfterPlaybackStarted() void ClipWorkflow::loadingComplete() { + adjustBegin(); disconnect( m_mediaPlayer, SIGNAL( playing() ), this, SLOT( loadingComplete() ) ); setState( Ready ); } @@ -106,6 +108,11 @@ void ClipWorkflow::initializedMediaPlayer() setState( Ready ); } +void ClipWorkflow::adjustBegin() +{ + m_mediaPlayer->setTime( m_clip->getBegin() / m_clip->getParent()->getFps() * 1000 ); +} + bool ClipWorkflow::isReady() const { QReadLocker lock( m_stateLock ); diff --git a/src/Workflow/ClipWorkflow.h b/src/Workflow/ClipWorkflow.h index 6a7052ec5..d4e6cbfce 100644 --- a/src/Workflow/ClipWorkflow.h +++ b/src/Workflow/ClipWorkflow.h @@ -166,6 +166,7 @@ class ClipWorkflow : public QObject private: void setState( State state ); void checkSynchronisation( State newState ); + void adjustBegin(); private: Clip* m_clip; -- GitLab