-
v0.10.0 Stable
released this
2026-09-08 02:00:07 +02:00 | 0 commits to main since this releaseThe virtual camera path was finally run rather than reasoned about, which
found two faults. The configuration is also considerably smaller: 950 lines of
it removed, most being questions with only one sensible answer.Existing configuration is not migrated. Camera and audio assignments are
recorded differently now, so switch each source's Camera and Audio back on
once after upgrading.Two faults, found by testing against a real device
A source carrying no audio got no camera at all. ffmpeg refuses an output
that ends up with no stream in it, and that refusal took the whole process
down, video included, restarting every second. Making the audio mapping
optional does not help, since the output is still empty. Audio is now added
only when the source is actually sending some, asked afresh for each process.-checkwas broken and would have failed on a working setup. A generated
test pattern written without-regoes as fast as the machine can manage, so
the writer finished in a fraction of a second and had let go long before the
read. The device then reverts to output only and reports "not a video capture
device", which reads as broken hardware rather than a test racing itself.The hub's log now also goes to standard error. It only ever reached the
interface, which is why the first fault was invisible to anyone running the
program from a terminal to find out why it was failing.What did check out, against
v4l2-ctl: the capability and format reads agree
exactly, and a device does flip from output to capture as soon as a writer
attaches. There are now end to end tests that publish over RTMP, carry it
through the agent and the sink, and read a frame back off the loopback at the
source's own resolution.Simpler
Virtual devices are no longer picked from menus. A camera is taken from
whichever loopback nodes are free, an audio device is created for the source
and named after it, and each source has two switches. Which device carries
which source is not a decision worth putting to anyone, and every question
asked is another way to end up pointing at the wrong thing. What was chosen is
remembered, so a scene built against a device keeps working.Removed as redundant:
Gone Because manual delay, safety margin the delay tracks the slowest source; a typed number cannot improve on it fast first frame joining at a keyframe is simply correct; the alternative leaves sources permanently offset pinned size the picture size is read from the stream timestamp rebase it discards the alignment this program exists to produce preview size taken from what the source actually sends program view grid one window per source mirrors how cameras work A source is now a device on Linux and a window on Windows, one for one, so the
same rig is set up the same way on either platform.What remains is what cannot be worked out: which ports to listen on, the
shared secret, where the outputs go, the per-source offset, and where to look
for updates.Downloads
File For streamsink-0.10.0-linux-amd64.tar.gzLinux server, client and agent streamsink-0.10.0-windows-agent-amd64.zipWindows agent, headless streamsink-0.10.0-windows-server-amd64.zipWindows server and client, with the GTK4 runtime streamsink-0.10.0-windows-decoder-amd64.zipWindows decoder, for the program view SHA256SUMSchecksums, used by the updater Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)