Conversation
…ection Mirror the resilience knobs that already exist on the SRT output blocks (efpsrt, mpegtssrt) onto the input blocks (efpsrt_input, mpegtssrt_input). Three new properties on both input blocks, all defaulting to a production-friendly value: - **keep_listening** (default true): keep the SRT source alive after a peer disconnect so reconnects work without flow restart. Was already exposed on efpsrt_input; added to mpegtssrt_input. - **auto_reconnect** (default true): srtsrc reconnects on connection failure. Same semantics and default as on the output blocks. New on both input blocks. - **wait_for_connection** (default false): do NOT block pipeline state changes waiting for a peer. Upstream srtsrc default is `true`, but we override to `false` to match the output blocks and avoid deadlocking PAUSED→PLAYING transitions when the peer is offline. New on both input blocks. Each is gated by `srtsrc.has_property(...)` so we don't break against older gst-plugins-bad versions that lack the property. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…n defaults Move the three boolean SRT defaults into strom-types so all four SRT blocks (efpsrt + mpegtssrt × input + output) reference the same constants instead of repeating literal values: - DEFAULT_SRT_KEEP_LISTENING = true - DEFAULT_SRT_AUTO_RECONNECT = true - DEFAULT_SRT_WAIT_FOR_CONNECTION = false This matches the existing pattern for DEFAULT_SRT_INPUT_URI, DEFAULT_SRT_OUTPUT_URI, and DEFAULT_SRT_LATENCY_MS. No behavior change — the previous inline literals matched these values exactly. The user-visible win is that future tweaks happen in one place and are guaranteed consistent across input and output blocks. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reorder ExposedProperty entries in efpsrt_input and mpegtssrt_input so the first 6 properties match the SRT output blocks (efpsrt, mpegtssrt). The unified prefix is now: 1. num_video_tracks 2. num_audio_tracks 3. srt_uri 4. latency 5. wait_for_connection 6. auto_reconnect (7. keep_listening on inputs only — srtsink doesn't expose it) Then block-specific properties follow: - efpsrt_input: decode, bucket_timeout, hol_timeout, normalize_segment - mpegtssrt_input: tsdemux_latency, ignore_pcr, decode - efpsrt: sync, mtu - mpegtssrt: sync Previously the inputs had num_video_tracks / num_audio_tracks at the bottom and the SRT-resilience props sandwiched in the middle, which jumped the track-count properties from "near top" (output convention) to "near bottom" in the frontend rendering. The frontend renders properties in declared order with no sorting, so the only fix is to keep the source order consistent across blocks. No behavior change — only ExposedProperty declaration order moves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Place 'decode' at the same position (#8, right after the SRT-resilience group) as it sits in efpsrt-input. Now both input blocks have identical prefix ordering through 'decode' (the block-specific tail differs after). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6 tasks
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.
Summary
Mirror the SRT resilience knobs that already exist on the SRT output blocks (efpsrt, mpegtssrt) onto the input blocks (efpsrt_input, mpegtssrt_input), and centralise the boolean defaults in strom-types so all four SRT blocks reference the same constants.
Changes
Three properties exposed on both SRT input blocks (efpsrt_input, mpegtssrt_input):
keep_listening(defaulttrue) — keep srtsrc alive after peer disconnectauto_reconnect(defaulttrue) — auto-reconnect on connection failurewait_for_connection(defaultfalse) — do NOT block pipeline state on peer presenceEach is gated by
srtsrc.has_property(...)for compatibility with older gst-plugins-bad versions that lack the property.Shared defaults moved to strom-types (
types/src/block.rs):DEFAULT_SRT_KEEP_LISTENING = trueDEFAULT_SRT_AUTO_RECONNECT = trueDEFAULT_SRT_WAIT_FOR_CONNECTION = falseAll four SRT blocks (efpsrt + mpegtssrt × input + output) now reference these constants instead of repeating literal values, matching the existing pattern for
DEFAULT_SRT_INPUT_URI/DEFAULT_SRT_OUTPUT_URI/DEFAULT_SRT_LATENCY_MS.Why these defaults
keep_listening=true: reconnects don't require a flow restart on the listener sideauto_reconnect=true: handles transient network drops automaticallywait_for_connection=false: upstream srtsrc defaults totruewhich deadlocks PAUSED→PLAYING when the peer is offline; we override consistently across all SRT blocksTest plan
cargo checkcleancargo fmtcleancargo test --test openapi_testcleanstrhost: srt input survives peer drop and reconnects without flow restart🤖 Generated with Claude Code