Removed transition wait (buggy)

This commit is contained in:
WarmUpTill 2017-03-04 01:53:07 +01:00 committed by GitHub
parent 73e1849c65
commit 7befd75bb5

View File

@ -2456,9 +2456,9 @@ void SwitcherData::Thread()
if (transitionWs){ if (transitionWs){
transition = obs_weak_source_get_source(transitionWs); transition = obs_weak_source_get_source(transitionWs);
lock.unlock(); //lock.unlock();
transitionCv.wait(transitionLock, transitionActiveCheck); //transitionCv.wait(transitionLock, transitionActiveCheck);
lock.lock(); //lock.lock();
obs_frontend_set_current_transition(transition); obs_frontend_set_current_transition(transition);
} }
@ -2591,9 +2591,9 @@ void SwitcherData::Thread()
else else
transition = obs_weak_source_get_source(s.transition); transition = obs_weak_source_get_source(s.transition);
lock.unlock(); //lock.unlock();
transitionCv.wait(transitionLock, transitionActiveCheck); //transitionCv.wait(transitionLock, transitionActiveCheck);
lock.lock(); //lock.lock();
obs_frontend_set_current_transition(transition); obs_frontend_set_current_transition(transition);
obs_frontend_set_current_scene(source); obs_frontend_set_current_scene(source);
@ -2809,18 +2809,18 @@ void SwitcherData::Thread()
if (nextTransitionWs) if (nextTransitionWs)
{ {
obs_source_t* nextTransition = obs_weak_source_get_source(nextTransitionWs); obs_source_t* nextTransition = obs_weak_source_get_source(nextTransitionWs);
lock.unlock(); //lock.unlock();
transitionCv.wait(transitionLock, transitionActiveCheck); //transitionCv.wait(transitionLock, transitionActiveCheck);
lock.lock(); //lock.lock();
obs_frontend_set_current_transition(nextTransition); obs_frontend_set_current_transition(nextTransition);
obs_source_release(nextTransition); obs_source_release(nextTransition);
} }
else else
{ {
obs_source_t* nextTransition = obs_weak_source_get_source(transition); obs_source_t* nextTransition = obs_weak_source_get_source(transition);
lock.unlock(); //lock.unlock();
transitionCv.wait(transitionLock, transitionActiveCheck); //transitionCv.wait(transitionLock, transitionActiveCheck);
lock.lock(); //lock.lock();
obs_frontend_set_current_transition(nextTransition); obs_frontend_set_current_transition(nextTransition);
obs_source_release(nextTransition); obs_source_release(nextTransition);
} }
@ -2956,12 +2956,14 @@ static void OBSEvent(enum obs_frontend_event event, void* switcher)
if (event == OBS_FRONTEND_EVENT_SCENE_CHANGED) if (event == OBS_FRONTEND_EVENT_SCENE_CHANGED)
{ {
SwitcherData* s = (SwitcherData*)switcher; SwitcherData* s = (SwitcherData*)switcher;
//lock_guard<mutex> lock(s->transitionMutex);
s->stop ? s->transitionActive = false : s->transitionActive = true; s->stop ? s->transitionActive = false : s->transitionActive = true;
} }
if (event == OBS_FRONTEND_EVENT_TRANSITION_STOPPED) if (event == OBS_FRONTEND_EVENT_TRANSITION_STOPPED)
{ {
SwitcherData* s = (SwitcherData*)switcher; SwitcherData* s = (SwitcherData*)switcher;
//lock_guard<mutex> lock(s->transitionMutex);
if (s->transitionActive) if (s->transitionActive)
{ {
/*this sleep seems to be necessary /*this sleep seems to be necessary
@ -2976,6 +2978,7 @@ static void OBSEvent(enum obs_frontend_event event, void* switcher)
if (event == OBS_FRONTEND_EVENT_TRANSITION_CHANGED) if (event == OBS_FRONTEND_EVENT_TRANSITION_CHANGED)
{ {
SwitcherData* s = (SwitcherData*)switcher; SwitcherData* s = (SwitcherData*)switcher;
//lock_guard<mutex> lock(s->transitionMutex);
if (s->transitionActive) if (s->transitionActive)
{ {
s->transitionActive = false; s->transitionActive = false;