Commit 79751ba1 authored by Hugo Beauzee-Luyssen's avatar Hugo Beauzee-Luyssen

Next frame mode is functionnal

parent 8704d5ce
......@@ -264,6 +264,14 @@ void* TrackWorkflow::getOutput( qint64 currentFrame, qint64 subFra
emit trackEndReached( m_trackId );
//We continue, as there can be ClipWorkflow that requires to be stopped.
}
{
QMutexLocker lock2( m_renderOneFrameMutex );
if ( m_renderOneFrame == true )
{
m_renderOneFrame = false;
renderOneFrame = true;
}
}
{
QMutexLocker lock2( m_forceRepositionningMutex );
if ( m_forceRepositionning == true )
......@@ -271,19 +279,19 @@ void* TrackWorkflow::getOutput( qint64 currentFrame, qint64 subFra
needRepositioning = true;
m_forceRepositionning = false;
}
else if ( m_paused == true && subFrame != m_lastFrame )
// This is a bit hackish : when we want to pop a frame in renderOneFrame mode,
// we also set the position to avoid the stream to be missynchronized.
// this frame setting will most likely toggle the next condition as true
// If this condition is true, the clipworkflow will flush all its buffer
// as we need to resynchronize after a setTime, so this condition has to remain
// false. Easy ain't it ?
else if ( m_paused == true && subFrame != m_lastFrame && renderOneFrame == false)
{
needRepositioning = true;
}
else
needRepositioning = ( abs( subFrame - m_lastFrame ) > 1 ) ? true : false;
}
{
QMutexLocker lock2( m_renderOneFrameMutex );
if ( m_renderOneFrame == true )
{
m_renderOneFrame = false;
renderOneFrame = true;
}
}
while ( it != end )
{
......
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