Skip to content

feat(moq-gst): add listen mode to moqsink for relay-less publishing#14

Open
santi-ferreiro wants to merge 3 commits into
benchmark-developfrom
feat/moqsink-listen-mode
Open

feat(moq-gst): add listen mode to moqsink for relay-less publishing#14
santi-ferreiro wants to merge 3 commits into
benchmark-developfrom
feat/moqsink-listen-mode

Conversation

@santi-ferreiro

Copy link
Copy Markdown

Adds listen and tls-generate properties to moqsink so it can run its own QUIC/WebTransport server and serve a broadcast directly to subscribers that dial it, with no relay in between. listen is mutually exclusive with url (dial mode stays the default); the server branch in run_session mirrors the relay accept-and-serve path. Documents both properties in doc/bin/gstreamer.md.

Adds `listen` and `tls-generate` properties to moqsink so it can run its own
QUIC/WebTransport server and serve a broadcast directly to subscribers that
dial it, with no relay in between. `listen` is mutually exclusive with `url`
(dial mode stays the default); the server branch in run_session mirrors the
relay accept-and-serve path. Documents both properties in doc/bin/gstreamer.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a "listen mode" for moqsink in the GStreamer plugin, allowing it to run its own QUIC/WebTransport server and serve broadcasts directly to subscribers instead of dialing a relay. It adds configuration properties listen and tls-generate to support this mode. The review feedback highlights several important improvements: validating that tls-generate is provided when in listen mode to prevent runtime initialization failures, implementing a shutdown signal to prevent active accepted sessions from leaking when the element is stopped, and correcting a discrepancy in the documentation regarding the mutual exclusivity of the listen and url properties.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread rs/moq-gst/src/sink/imp.rs
Comment thread rs/moq-gst/src/sink/imp.rs
Comment thread rs/moq-gst/src/sink/imp.rs
Comment thread doc/bin/gstreamer.md Outdated
santi-ferreiro and others added 2 commits June 24, 2026 02:01
Add the `ordered` field to Track initializers in tests so the suite compiles
after the group-order feature added that field to Track.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- require tls-generate in listen mode (server needs a cert; fail early with a
  clear error instead of a cryptic runtime init failure)
- signal accepted sessions to close when the element stops, so detached session
  tasks don't leak connections past run_session
- doc: state listen and url are mutually exclusive (the code already errors if
  both are set)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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