Skip to content

fix: settle and release recorder sources of the client API - #420

Merged
devopvoid merged 1 commit into
mainfrom
fix/recorder-source-lifecycle
Oct 23, 2026
Merged

devopvoid merged 1 commit into
mainfrom
fix/recorder-source-lifecycle

Conversation

@devopvoid

Copy link
Copy Markdown
Owner
  • EncodedFrames.of(sender|track) now tracks its future and submits with a drop fallback, so it fails at once after the runtime stopped instead of making MediaRecorder.addTrack wait 10 s.
  • EncodedFrames.Source owns its native reference until take() hands it to the recorder; close() drops it otherwise (new NativeApi.releaseEncodedFrames).
  • A recorder that times out or is interrupted cancels the request and closes a source that still arrives; the peer closes one that comes after the cancellation.

EncodedFrames futures fail at once when the runtime stopped or the control
executor rejects the task. A source owns its native reference until the
recorder takes it; a recorder that gives up cancels and closes late sources.
@devopvoid
devopvoid merged commit 7068bde into main Oct 23, 2026
36 of 37 checks passed
@devopvoid
devopvoid deleted the fix/recorder-source-lifecycle branch October 23, 2026 05:20
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.

1 participant