RtspSrc is not an Element: every consumer writes the same AppSrc bridging task #50
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
zensight-sensor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
marcpardo/parallax#50
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
RtspSrcis a config builder, not a pipeline element, so every consumer writes the same bridging task.src/elements/rtp/rtsp.rs:278—RtspSrcholds config;:362connect()returns anRtspSession(:391).RtspSessiondoes not implementElement— you pull from it withnext_frame()and feed the result into anAppSrcby hand (seeexamples/58_rtsp_display.rs:83-107).Every other source (
V4l2Src,VideoTestSrc, ...) is a graph node youadd_source()and link. RTSP is the odd one out, and the boilerplate — spawn a task, loopnext_frame(), push into anAppSrc, handle EOS and reconnect — is identical for everyone who does it.Ask
An
Elementsource wrapping the session, so RTSP isadd_source("rtsp", RtspSrc::new(url).connect()?)like everything else. Keep the manualRtspSessionpath for callers who want to own the pump.Lowest priority of the batch — it's boilerplate, not a blocker. Filing it for completeness while the upstream asks are being collected.
Update: breaking changes are on the table, so this can be the real fix rather than an additive convenience.
Make
RtspSrcanElement, changing/retiring theRtspSessionpull API rather than preserving it alongside. Every other source in the crate is a graph node youadd_source()andlink(); RTSP being a config-builder-plus-manual-pump is an inconsistency, not a feature, and every consumer pays the same boilerplate (spawn a task, loopnext_frame(), push into anAppSrc, handle EOS and reconnect).Still the lowest-priority item in this batch — but if a breaking release is being cut anyway, this is the moment to take it, because doing it later costs a second break.