Releases: Eyevinn/strom
Release list
v0.6.6
What's Changed
- chore: bump to 0.6.6-dev, document 0.6.3–0.6.5 by @srperens in #641
- chore(deps): bump thread-priority from 3.0.0 to 3.1.0 by @dependabot[bot] in #642
- chore(deps): bump egui_extras from 0.34.2 to 0.34.3 by @dependabot[bot] in #643
- chore(deps): bump time from 0.3.47 to 0.3.49 by @dependabot[bot] in #644
- chore(deps): bump tower-http from 0.6.11 to 0.7.0 by @dependabot[bot] in #645
- chore(deps): bump chrono from 0.4.44 to 0.4.45 by @dependabot[bot] in #646
- chore(deps): bump sysinfo from 0.39.3 to 0.39.5 by @dependabot[bot] in #648
- chore(deps): bump time from 0.3.49 to 0.3.51 by @dependabot[bot] in #649
- chore(deps): bump rustls from 0.23.40 to 0.23.41 by @dependabot[bot] in #650
- chore(deps): bump thread-priority from 3.1.0 to 3.1.1 by @dependabot[bot] in #651
- chore(deps): bump uuid from 1.23.2 to 1.23.3 by @dependabot[bot] in #652
- chore(ci): move sccache cache to olivedev MinIO instance by @srperens in #653
- ci: make sccache cache non-blocking via a backend preflight by @srperens in #654
- TAMS Output block with OSC PAT/SAT auth by @srperens in #647
- chore: release v0.6.6 by @srperens in #655
Full Changelog: v0.6.5...v0.6.6
v0.6.5
What's Changed
- feat(vision-mixer): make multiview PVW/PGM positions swappable by @srperens in #637
- docs(readme): link to hosted Open Live platform by @srperens in #638
- feat(vision-mixer): ColorCorrect, dithered looks, Vogel blur, and transition fixes by @srperens in #639
- chore(release): v0.6.5 by @srperens in #640
Full Changelog: v0.6.4...v0.6.5
v0.6.4
What's Changed
- Handle missing pad properties gracefully across GStreamer versions by @srperens in #633
- Fix vision mixer FX shader crash on macOS core-profile GL by @srperens in #634
- fix(videoenc): tame VideoToolbox burst behavior by @srperens in #635
- fix(vision-mixer): shader FX time-precision freeze, heart wipe pop, real TV roll by @srperens in #636
Full Changelog: v0.6.3...v0.6.4
v0.6.3
What's Changed
- docs(changelog): add 0.6.1 and 0.6.2 release notes by @srperens in #628
- fix(whep): re-enable RTX retransmission, keep FEC disabled by @srperens in #629
- fix(server): harden HTTP(S) accept path against fd exhaustion by @srperens in #630
- fix(videoenc): cap VBR excursions and bound frame sizes via VBV by @srperens in #631
- chore: bump version to 0.6.3 by @srperens in #632
Full Changelog: v0.6.2...v0.6.3
v0.6.2
What's Changed
- ci: route sccache through self-hosted MinIO (S3) cache by @srperens in #611
- fix(videoenc): decouple VideoToolbox realtime from quality, wire rate-control + keyframe duration by @srperens in #612
- ci: give x86_64 build job its own rust-cache key by @srperens in #613
- feat(devices): show exposing API prefix in device picker and sort the list by @srperens in #614
- ci: cut GHA cache footprint — save rust-cache on main only, drop one-shot caches by @srperens in #615
- ci: bump actions to Node 24 runtimes by @srperens in #616
- feat(vision-mixer): per-source crop/zoom (punch-in) for PiP compositions by @srperens in #622
- ci: build without sccache when S3 credentials are unavailable by @srperens in #623
- refactor(pipeline): split effects.rs into focused sub-modules by @srperens in #624
- chore(deps): bump socket2 from 0.6.3 to 0.6.4 by @dependabot[bot] in #617
- chore(deps): bump sysinfo from 0.39.2 to 0.39.3 by @dependabot[bot] in #618
- chore(deps): bump egui from 0.34.2 to 0.34.3 by @dependabot[bot] in #619
- chore(deps): bump serial_test from 3.4.0 to 3.5.0 by @dependabot[bot] in #620
- chore(deps): bump uuid from 1.23.1 to 1.23.2 by @dependabot[bot] in #621
- feat(vision-mixer): zone borders as underlay pads, PiP layout presets, transition fixes by @srperens in #625
- feat(vision-mixer): shader FX engine — custom GLSL looks, wipes and master FX takes (GPU) by @srperens in #626
- fix(tests): vision mixer FX tests — skip without a working GL context, drop fixed-sleep sampling by @srperens in #627
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- docs: Open Live setup guide for a local Strom instance by @srperens in #604
- docs: documentation overhaul — Open Live, archive, slimmer README, AI-authorship by @srperens in #605
- Vision mixer UX: pixel zone editor, snap feedback, honest bus tally by @srperens in #603
- fix(sources): deinterlace interlaced SRT/EFP inputs for the GL vision mixer by @srperens in #606
- docs: correct changelog release dates to match git tags by @srperens in #607
- feat(setup): make NVIDIA driver install non-interactive via REBOOT by @srperens in #608
- fix(qos): drop upstream QoS events at sink source to stop GstEvent leak by @srperens in #609
- fix(clocks): restore PTP statistics panel hidden behind domain list by @srperens in #610
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- Mixer: Monitor bus, parallel PFL/AFL, collapsing property panel, scaled max counts by @srperens in #570
- Bump version to 0.5.2-dev in Cargo.toml by @srperens in #571
- chore(deps): bump rand from 0.8.5 to 0.8.6 by @dependabot[bot] in #572
- feat(vision-mixer): Picture-in-Picture sources with zones, FIFO + morph transitions by @srperens in #578
- chore(deps): bump gst-plugin-webrtc from 0.15.0 to 0.15.2 by @dependabot[bot] in #573
- feat(api): block-properties endpoint with persist semantics for transient state by @srperens in #579
- chore(deps): bump mdns-sd from 0.19.1 to 0.19.2 by @dependabot[bot] in #577
- chore(deps): bump egui_extras from 0.34.1 to 0.34.2 by @dependabot[bot] in #576
- chore(deps): bump tower-http from 0.6.10 to 0.6.11 by @dependabot[bot] in #575
- chore(deps): bump gstreamer-controller from 0.25.0 to 0.25.2 by @dependabot[bot] in #574
- chore(deps): cargo update — patch bumps across the tree by @srperens in #580
- test(volume-ramp): shrink buffer size to stabilize mid-fade samples by @srperens in #581
- Bump version to 0.6.0-dev in Cargo.toml by @srperens in #582
- fix(transitions): lift morphing pad when higher-z incoming is inside morph_start by @srperens in #583
- ci: bump Check (Linux) timeout from 15 to 25 minutes by @srperens in #584
- fix(properties): coerce int/uint values for gdouble/gfloat properties by @srperens in #586
- fix(srt): don't synthesize phantom caller on idle listener by @srperens in #585
- fix(whep): migrate legacy mode to explicit track counts on flow load by @srperens in #587
- feat(mixer): derive monitor source gates from PFL/AFL writes by @srperens in #588
- Update Cargo.toml by @srperens in #589
- fix(vision-mixer): render overlay VU meters with 4-zone sectors by @srperens in #590
- fix(build): isolate wasm target dir to avoid cargo lock deadlock by @srperens in #591
- docs(vision-mixer): add operator-facing user guide by @srperens in #593
- feat(mixer): tap channel level meters pre-fader by @srperens in #592
- chore(deps): drop unused agua-gst watermark plugin by @srperens in #595
- chore(deps): bump mdns-sd from 0.19.2 to 0.20.0 by @dependabot[bot] in #599
- chore(deps): bump serde_json from 1.0.149 to 1.0.150 by @dependabot[bot] in #598
- chore(deps): bump garde from 0.22.1 to 0.23.0 by @dependabot[bot] in #596
- chore(deps): bump reqwest from 0.13.3 to 0.13.4 by @dependabot[bot] in #597
- perf(state): skip absent elements in block property read-back by @srperens in #601
- feat(api): per-property ramp_ms overrides on block PATCH by @srperens in #600
- feat(mixer): add AFL on every aux master and group bus by @srperens in #594
- chore: bump version to 0.6.0 by @srperens in #602
Full Changelog: v0.5.1...v0.6.0
v0.5.1
v0.5.0
What's Changed
- docs: chrony NTP sync quality notes + generic [CLIENT] log tag by @srperens in #533
- fix(vision-mixer): use gpu-aware videoconvert in CPU pipeline by @srperens in #534
- fix(buffer-age): show external pad label instead of internal "sink" by @srperens in #535
- fix(nvidia-setup): cgroupfs + dev-char workarounds for NVML cgroup-reload bug by @srperens in #536
- fix(audio-mixer): use UInt type for channel/aux/group count properties by @srperens in #537
- fix(toolbar): move Debug Graph button next to Save by @srperens in #538
- feat(audio-mixer): smooth volume/mute via GstController (anti-zipper, anti-click) by @srperens in #539
- ingest prep: SDI/EFP fixes + decklink probe tooling by @srperens in #541
- feat(audio-mixer): honor ramp_ms on mute toggles, with cancel-guard by @srperens in #540
- setup/ntp: add chrony install script and runbook by @srperens in #547
- vision-mixer: default gl_download to false by @srperens in #548
- chore(deps): bump rustls from 0.23.39 to 0.23.40 by @dependabot[bot] in #543
- chore(deps): bump tokio from 1.52.1 to 1.52.2 by @dependabot[bot] in #544
- chore(deps): bump egui from 0.34.1 to 0.34.2 by @dependabot[bot] in #545
- chore(deps): bump utoipa from 5.4.0 to 5.5.0 by @dependabot[bot] in #542
- refactor(decklink): merge per-media blocks into Input/Output by @srperens in #546
- ci: cache and verify Zig tarball, harden against truncated downloads by @srperens in #550
- fix(vision-mixer): enforce framerate on PGM/MV outputs in GL passthrough by @srperens in #549
- refactor(srt): unify property order, expose resilience knobs on inputs, share defaults by @srperens in #553
- Patched decklink plugin with synchronized capture group support by @srperens in #554
- feat(time-offset): add Time Offset block for live PTS shifting by @srperens in #555
- feat(whep): multi-audio + multi-video on WHEP Output; replace mode with track counts by @srperens in #556
- fix(videoenc): vp9enc bitrate unit + realtime knobs by @srperens in #562
- chore(deps): bump gstreamer-app from 0.25.0 to 0.25.2 by @dependabot[bot] in #557
- chore(deps): bump gst-plugin-audiofx from 0.15.0 to 0.15.2 by @dependabot[bot] in #558
- chore(deps): bump gst-plugin-inter from 0.15.0 to 0.15.2 by @dependabot[bot] in #560
- chore(deps): bump tower-http from 0.6.8 to 0.6.10 by @dependabot[bot] in #561
- chore(deps): bump sysinfo from 0.38.4 to 0.39.1 by @dependabot[bot] in #559
- feat: Local Input block — cross-platform USB/built-in capture with device picker by @srperens in #563
- feat(srt): add SRT statistics for inputs and outputs by @srperens in #564
- fix(time-offset): surface offset_ms on property read path by @srperens in #565
- fix(whep): align encoder profile and SDP fmtp with WebRTC decoder expectations by @srperens in #566
- chore: bump version to 0.5.0 by @srperens in #567
Full Changelog: v0.4.12...v0.5.0
Patched GStreamer plugins v1.0 (gst 1.22.12)
First release of patched GStreamer plugins for strom.
Contents
- libgstdecklink-linux-{amd64,arm64}.so — patched decklink plugin exposing a
capture-groupint property ondecklinkvideosrc. Lets multiple inputs on the same physical card share a synchronized capture group, so their captured frames have a common time origin and audio/video are sample-aligned across SDI ports. - gstreamer-rev-linux-{amd64,arm64}.txt — exact upstream GStreamer commit the plugin was built from.
Build target
- GStreamer source: 1.22.12
- ABI: forward-compatible with GStreamer 1.22, 1.24, 1.26+.
- BMD synced capture group flags:
bmdVideoInputSynchronizeToCaptureGroup+bmdDeckLinkConfigCaptureGroup.
Reproducing
tools/patched-gstreamer-plugins/ in this repo holds the Dockerfile, build script, and patch source. Run ./build.sh from that directory to rebuild from the same Debian bookworm base.
Known driver behaviour
BMD's StopStreams() on a synced capture input blocks ~12 s before returning (reproducible in BMD's own SynchronizedCapture SDK example; see forum thread 190441). The patch accepts this wait to keep the documented teardown order intact — bypassing StopStreams causes not-negotiated errors on subsequent pipeline starts.