Fix Android SRT crashes and restore the OBS camera feed - #67
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
YashasVM
marked this pull request as ready for review
September 26, 2026 17:29
Remove obsolete OpenStream documentation and agent guidance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Android app could abort before opening or while stopping its SRT listener. Kotlin's six native method names also did not match the exported JNI symbols, so the phone could not send media. This change starts libsrt after library initialization, makes listener cancellation safe, aligns JNI exports, and prevents an Activity stop/start race from closing a restarted session.
Phone discovery now keeps one ID across app restarts and updates. Without that, OBS kept a source bound to the old random ID and displayed "Waiting for selected Android phone" after the app returned. A debug APK receives an automatically newer version code on each build;
tools/build_android_apk.shexplains signing and downgrade errors. The Android workflow can produce a release-signed 1.0.2 candidate with the same certificate as v1.0.1. The OBS dock groups connection and camera controls.Validation: 116 repository tests; Android unit tests, lint, and APK build across four ABIs; Linux OBS build and CTest 4/4; Windows plugin and website CI builds. On a Samsung SM-S928B, the app survived 12 background/foreground cycles without a new crash. Linux OBS decoded 4,200 consecutive 1920×1080 H.264 frames with AAC at about 30 fps, released the reservation on source disable, and reconnected on re-enable. A force-stop/relaunch of the debug app during streaming reconnected without phone reselection. The release-signed candidate passed CI signature and version checks and installed over v1.0.1 while preserving Android's original installation date; the production app also connected to OBS and decoded over 23,000 frames. The production app was force-stopped and relaunched during streaming; OBS kept the selected phone ID, reconnected to the phone, reopened H.264/AAC, and resumed decoding 1920×1080 frames without reselection.
The host's UFW firewall initially blocked UDP discovery on port 51615. Allowing that port from the phone let OBS discover and reserve it. Battery impact has not been measured, so this PR makes no battery-life claim.