Skip to content

Multi-stream follow-up: simplify UI and fix lifecycle bugs - #11

Draft
BlueCheeseburger wants to merge 10000 commits into
masterfrom
claude/pensive-fermat-ANjMv
Draft

Multi-stream follow-up: simplify UI and fix lifecycle bugs#11
BlueCheeseburger wants to merge 10000 commits into
masterfrom
claude/pensive-fermat-ANjMv

Conversation

@BlueCheeseburger

Copy link
Copy Markdown
Owner

Follow-up to the merged multi-stream feature (#1). Contains UI cleanup and bug fixes found during testing.

UI simplification

  • Removed YouTube from the multi-stream section (it's the primary service — having it again was confusing)
  • Removed the server URL fields; defaults are hardcoded and correct for nearly all users
  • Added a description label explaining these are additional simultaneous destinations
  • Renamed the group to "Also Stream To"

Lifecycle bug fixes (found in bug testing)

  • Orphaned streams on disconnect (critical): StreamingStop() — the signal callback fired when the primary output stops for any reason — now tears down the secondary streams. Previously only the manual stop path did, so a primary disconnect/error left Twitch/TikTok broadcasting and could crash on a later ResetOutputs() via dangling encoder references.
  • Double-start orphan: Start() now defensively stops existing outputs first, avoiding orphaning a running output on the reconnect re-entry path.
  • Shutdown ordering: secondary outputs are force-stopped and released (destructor + explicit reset) before obs_shutdown(), since they share the primary handler's encoders.

Verified correct (not bugs)

  • Encoder sharing across outputs (OBS supports N outputs per encoder)
  • Ref-counting / ownership (operator= takes ownership; no leaks or double-frees)
  • Config persistence, API-triggered streaming routing
  • clang-format clean, CMake alphabetized, .ui valid XML

Test plan

  • Settings → Stream shows "Also Stream To" with Twitch/TikTok (no YouTube, no server fields)
  • Enable Twitch + TikTok with valid keys, start streaming — all three destinations receive video
  • Pull the network on the primary — confirm secondary streams stop (not orphaned)
  • Stop streaming normally — all outputs stop cleanly
  • Close OBS while multi-streaming — no crash on shutdown

https://claude.ai/code/session_01L3WhNDVEXb2TatcruuniCp


Generated by Claude Code

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.