Skip to content
Snippets Groups Projects
Commit 727d95b2 authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen
Browse files

ClipWorkflow: Proceed with cleanup once the media player has been stopped

This aims toward a more event-based approch, to be continued in the next
commits
parent 7cc7d533
No related branches found
No related tags found
No related merge requests found
......@@ -82,6 +82,7 @@ ClipWorkflow::initialize()
connect( m_eventWatcher, SIGNAL( playing() ), this, SLOT( loadingComplete() ), Qt::QueuedConnection );
connect( m_eventWatcher, SIGNAL( endReached() ), this, SLOT( clipEndReached() ), Qt::DirectConnection );
connect( m_eventWatcher, SIGNAL( errorEncountered() ), this, SLOT( errorEncountered() ) );
connect( m_eventWatcher, &RendererEventWatcher::stopped, this, &ClipWorkflow::mediaPlayerStopped );
m_renderer->start();
}
......@@ -130,14 +131,6 @@ ClipWorkflow::stop()
if ( m_renderer && m_state != Stopped )
{
m_renderer->stop();
m_eventWatcher->disconnect();
if ( m_state != Error )
m_state = Stopped;
flushComputedBuffers();
m_isRendering = false;
m_initWaitCond->wakeAll();
m_renderWaitCond->wakeAll();
}
}
......@@ -228,6 +221,19 @@ ClipWorkflow::mediaPlayerUnpaused()
m_pauseDuration = mdate() - m_beginPausePts;
}
void
ClipWorkflow::mediaPlayerStopped()
{
m_eventWatcher->disconnect();
if ( m_state != Error )
m_state = Stopped;
flushComputedBuffers();
m_isRendering = false;
m_initWaitCond->wakeAll();
m_renderWaitCond->wakeAll();
}
void
ClipWorkflow::resyncClipWorkflow()
{
......
......@@ -243,6 +243,7 @@ class ClipWorkflow : public EffectUser
void clipEndReached();
void mediaPlayerPaused();
void mediaPlayerUnpaused();
void mediaPlayerStopped();
void resyncClipWorkflow();
protected slots:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment