github derekshreds/Snacks v2.5.1
Snacks v2.5.1

5 hours ago

Snacks v2.5.1

Automated Video Library Encoder

Patch release that fixes a subtle but important cluster bug: the Is4K flag on a job was determined on the master but never sent to workers, so worker-side Hybrid-mode mux decisions evaluated every 4K source against the 1080p bitrate ceiling. 4K files that should have qualified for a video-copy mux pass were getting fully re-encoded on workers instead.


Bug Fixes

Cluster: 4K Flag Now Reaches Workers

  • Is4K is plumbed through job dispatch -- JobMetadata (master → worker handshake), WorkItem materialization on the worker, and the dispatch payload in ClusterService all now carry the Is4K flag. Previously the master populated WorkItem.Is4K locally from the source probe but dropped it when serializing the job, so workers always saw Is4K = false. The result was that MeetsBitrateTarget on the worker compared a 4K source's bitrate against the configured 1080p ceiling (TargetBitrate * 1.0) instead of the 4K ceiling (TargetBitrate * FourKBitrateMultiplier, default 4×), and Hybrid-mode jobs that should have mux-copied a 4K stream that already met the 4K target instead burned a full re-encode. Master-only encodes were unaffected.
  • Applied at both dispatch sites -- standard work-item dispatch and the autonomous-encoding upload path both now include Is4K in the JobMetadata payload they send to the worker.

Cluster: Worker-Side Mux-Decision Diagnostic

  • Worker logs the inputs to MeetsBitrateTarget at encode start -- before each cluster encode, the worker now prints EncodingMode, MuxStreams, Is4K, IsHevc, and Bitrate exactly as it received them. If a user ever sees these print as defaults while the master is configured otherwise, it points at a metadata-flow bug rather than a transcode-logic bug — which is precisely how this 4K-flag issue would have been caught earlier.

Files Changed

  • Snacks/Models/JobMetadata.cs -- new Is4K property on the master→worker job handshake
  • Snacks/Services/ClusterNodeJobService.cs -- worker copies Is4K from incoming JobMetadata onto the materialized WorkItem; logs mux-decision inputs at encode start
  • Snacks/Services/ClusterService.cs -- master populates Is4K in both job-dispatch sites (standard dispatch and autonomous-encoding upload)

Version Bumps

  • Snacks/Controllers/HomeController.cs
  • Snacks/Services/ClusterDiscoveryService.cs -- protocol version bump to 2.5.1
  • Snacks/Views/Shared/_Layout.cshtml
  • README.md
  • build-and-export.bat
  • electron-app/package.json / package-lock.json

Full documentation: README.md

Don't miss a new Snacks release

NewReleases is sending notifications on new releases.