Move

Move 3.2.1

Hello, does this work with Aitum Vertical? I have the horizontal canvas working perfectly, but the same settings in the vertical transition don't seem to work beyond the default settings. After changing the properties of the vertical transition, the animation is exactly the same. Sorry if this has been asked before.
Solved: I realized I was getting a lot of issues in my vertical transitions due to "with the last word removed matches the other source name" being checked. If you're seeing unexpected transition results in Autumn Vertical, try turning that off.

If you need to, you can try the Move Transition Override filter on the scene in order to manually match 2 sources.
 
Hi there ! first off, a huge thank you for what you do! @Exeldro

I see there are some other issues with the Aitum Vertical plugin, but right now, it’s the only one that really gets it right... the vertical smartphone format is clearly driving this trend, so platforms are following suit, and streamers are too.
I experienced crashes due to an audio memory address issue.
Edit: I should point out that the crash occurs after several hours of streaming on average, 5 or even 7 hours in.
I used Gemini to help me out:

Title: Crash (0xC0000005) in move_enum_active_sources when running alongside Aitum Vertical Canvas

Description
An access violation crash (0xC0000005) occurs on the audio-io thread during concurrent source enumeration. This issue appears when using Move Transition together with Aitum Vertical Canvas, especially in setups featuring nested scenes or shared audio sources.

Crash Context
  • Thread: audio-io
  • Exception Code: 0xC0000005 (Access Violation)
  • Faulting Modules: move-transition.dll / vertical-canvas.dll
  • Relevant Call Stack:
    • move-transition.dll!move_enum_active_sources
    • vertical-canvas.dll!audio_wrapper_enum_all_sources
Suspected Root Cause
A race condition occurs when move_enum_active_sources traverses the active source tree while Aitum's audio wrapper simultaneously enumerates/modifies sources across canvases. Move attempts to read a source pointer that has become invalid or unmapped during the iteration without proper mutex locking or ref-counting.

Suggested Fix
  • Add explicit null-checks and status guards before inspecting sources (e.g., `if (!source || obs_source_removed(source)) continue;`).
  • Protect source lifecycles during iteration using `libobs` reference counting: call `obs_source_addref()` (or `obs_source_get_ref()`) before dereferencing, and `obs_source_release()` once processing is done.
  • Guard the tree traversal in `move_enum_active_sources` with scene/source mutex locks or safer enumeration callbacks to prevent data races with third-party audio wrappers like Aitum on the `audio-io` thread.
 
Last edited:
Back
Top