Commit 3b4b3e29 authored by Hugo Beauzee-Luyssen's avatar Hugo Beauzee-Luyssen

Solved dead lock when reaching end of a clip workflow

parent bb04a164
......@@ -32,7 +32,7 @@ Instance::Instance()
{
char const *argv[] =
{
"-vvvvv",
// "-vvvvv",
"--no-skip-frames",
// "--intf", "dummy",
//"--no-audio",
......
......@@ -209,8 +209,8 @@ void ClipWorkflow::startRender( bool startInPausedMode )
void ClipWorkflow::clipEndReached()
{
qDebug() << "Clip workflow end reached";
setState( EndReached );
emit renderComplete( this );
}
Clip* ClipWorkflow::getClip()
......
......@@ -339,7 +339,9 @@ unsigned char* MainWorkflow::getSynchroneOutput()
{
m_synchroneRenderWaitConditionMutex->lock();
getOutput();
// qDebug() << "Waiting for sync output";
m_synchroneRenderWaitCondition->wait( m_synchroneRenderWaitConditionMutex );
// qDebug() << "Got it";
m_synchroneRenderWaitConditionMutex->unlock();
if ( m_synchroneRenderingBuffer == NULL )
return MainWorkflow::blackOutput;
......
......@@ -159,6 +159,7 @@ void TrackWorkflow::renderClip( ClipWorkflow* cw, qint64 currentFrame,
else if ( cw->getState() == ClipWorkflow::EndReached )
{
cw->getStateLock()->unlock();
clipWorkflowRenderCompleted( cw );
//The stopClipWorkflow() method will take care of that.
}
else if ( cw->getState() == ClipWorkflow::Paused )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment