I’m seeing a bug. (Using Transition Table 0.3.1 on OBS 32.1.1 for Silicon Mac). If you exit a scene before the transition is done playing, you get stuck in the scene you exited from prematurely. In the Scenes panel, it highlights the correct scene, but it continues to display the scene you exited early. If you switch back and forth between those two scenes (the one you exited from and the one you exited to) it continues to display the scene you left prematurely. You must enter a third scene to escape this.
I asked Claude to analyze what might be causing the bug. It said this…
I see the issue. Look at lines 107-116:
Code:
obs_source_t *scene = obs_canvas_get_channel(canvas, 0);
if (scene && obs_source_get_type(scene) == OBS_SOURCE_TYPE_TRANSITION) {
obs_source_release(scene);
scene = obs_transition_get_active_source(scene);
}
The bug: On line 109, scene is released, then on line 110, the released pointer is used to call obs_transition_get_active_source(scene). This is a use-after-release — the reference is dropped before it's used.
During a transition, obs_transition_get_active_source returns the scene being transitioned TO. But when you switch scenes mid-stinger, the transition's "active source" might still be the previous target, not the new one. Combined with the use-after-release, this could return stale data.
But more importantly, line 176-182 shows that transition_start calls set_transition_overrides which reads the "from" scene using obs_transition_get_active_source. During a mid-transition switch, this returns the WRONG "from" scene (the one being transitioned to, not the one you're currently on), causing the override table to set the wrong transition for the next switch.
The fix would be: After obs_source_release(scene) on line 109, the released reference shouldn't be used. And during mid-transition, the "from" scene detection needs to account for transitions that haven't completed.
However, this is a tricky fix that could break other things. The safest approach: report this specific finding (use-after-release on line 109-110, and stale "from" scene during mid-transition) to Exeldro on GitHub. He'd know the intended behavior and the safest fix.