github Nonary/Vibepollo 2.0.2-nightly.d20261025.r.2.484463b6400e

pre-release3 hours ago

This is a nightly release of Vibepollo and contains several bug fixes and may contain new features. Check the commit log for more information.

Windows installer · Linux (Arch x86_64)

Nightly Windows installers are unsigned and include self-signed gamepad components. They may cause false-positive antivirus alerts.

Commit log

Source: 484463b6400e

Since the preceding successfully published nightly 2.0.2-nightly.d20261025.ed7f5b2d04cf: compare exact sources.

29e27dc6bf29

feat(stream): opt-in host adaptive packet pacing (#364)

* feat(stream): add host adaptive pacing controller and FEC status parser

Port the experimental adaptive pacing state machine (start rate, guarded
probes, loss-driven cuts and recovery holds) as a pure header, together
with the validated, de-duplicated parser for the client SS_FRAME_FEC_STATUS
(0x5502) report that feeds it. Nothing is wired in yet. Tests cover the
controller rules, the report parser and its de-duplication.

Signed-off-by: Ramazan Kara <github@r-kara.de>

* feat(stream): add host_adaptive_pacing option

Off by default. Registers the option in the config, the documentation and
the English locale so the config catalog contract stays satisfied.

Signed-off-by: Ramazan Kara <github@r-kara.de>

* feat(stream): drive video packet spacing from host adaptive pacing

When host_adaptive_pacing is on, ordinary H.264/HEVC/AV1 sessions feed
control pings and client FEC status reports to the controller, tick it from
the control loop, and let the send loop read the resulting rate instead of
the fixed pace. Encoder bitrate and FPS are untouched; PyroWave and the
option-off send path are unchanged. Start rate, probe results and cuts are
logged once per event.

Signed-off-by: Ramazan Kara <github@r-kara.de>

* fix(stream): address review of host adaptive pacing

- Report the configured FEC percentage to the wire-demand estimate, so a
  frame over four FEC blocks (which zeroes its own percentage) no longer
  moves the floor, withdraws a probe or sets the fence.
- Log a cut only when the rate actually changed.
- Fence client reports on the index written when a frame starts sending,
  stored only when adaptive pacing is on.
- With the option off, 0x5502 falls through to the unknown-packet debug
  dump again, and the report tracker keeps a vector so a disabled session
  allocates nothing.
- Drop the unused preview_rate, enabled, ceiling and wire_floor accessors
  and their tests; add the oversized-frame regression test.

Signed-off-by: Ramazan Kara <github@r-kara.de>

* fix(stream): pace adaptive video at the controller's exact rate

The sender turned the adaptive pacing rate into whole packets per
millisecond, rounding down. At 10 Mbps/60 fps with 1392-byte packets the
controller chose 20 Mbps but the sender paced 1 packet/ms (11.8 Mbps),
below the 14.15 Mbps the stream needs, so frames queued behind each other.

Deadlines now charge each packet its exact wire time at the chosen rate,
as Rubylight's pacer does. Whole packets per millisecond only bound the
burst between waits. Paths without adaptive pacing keep the old math.

Tests model the sender's FEC block split and check from rate() through
the applied deadlines that frames keep up at startup without pings and at
the wire floor through a loss cut and recovery hold, across bitrates,
60/120 fps, LAN/WAN packet sizes, IPv4/IPv6 and encryption.

Signed-off-by: Ramazan Kara <github@r-kara.de>

---------

Signed-off-by: Ramazan Kara <github@r-kara.de>
(cherry picked from commit 07366c503ee22402dc93abf302c4c2c77b0f7b56)

Pollo adaptation: preserve the hard UDP operator ceiling and cumulative frame
deadlines while adding exact adaptive wire pacing. Keep the independent
per-call demand bound and PyroWave path; extend the real sender replay.

Co-authored-by: Codex <noreply@openai.com>

59d720e98aeb

Optional Dolby Digital (AC-3) and Dolby Digital Plus (E-AC-3) Audio Output (#365)

* Add optional Dolby audio settings to web UI

* Add Dolby audio configuration fields

* Parse Dolby audio settings

* Document optional Dolby audio settings

* Declare optional Dolby audio encoder API

* Track per-client Dolby codec offer

* Add optional FFmpeg AC-3 and E-AC-3 encoding

* Negotiate optional AC-3 and E-AC-3 audio streams

* Add Dolby audio settings translations (cs)

* Add Dolby audio settings translations (en)

* Add Dolby audio settings translations (bg)

* Add Dolby audio settings translations (en_GB)

* Add Dolby audio settings translations (de)

* Add Dolby audio settings translations (it)

* Add Dolby audio settings translations (en_US)

* Add Dolby audio settings translations (es)

* Add Dolby audio settings translations (fr)

* Add Dolby audio settings translations (hu)

* Add Dolby audio settings translations (ja)

* Add Dolby audio settings translations (ko)

* Add Dolby audio settings translations (pl)

* Add Dolby audio settings translations (pt)

* Add Dolby audio settings translations (pt_BR)

* Add Dolby audio settings translations (ru)

* Add Dolby audio settings translations (sv)

* Add Dolby audio settings translations (tr)

* Add Dolby audio settings translations (uk)

* Add Dolby audio settings translations (vi)

* Add Dolby audio settings translations (zh)

* Add Dolby audio settings translations (zh_TW)

* Reject unsupported accepted Dolby audio negotiations

* Allow larger encrypted Dolby audio packets

* Include string_view for Dolby codec API

* Add Dolby session isolation regression test

* Fix Dolby test extraction boundary

* Register Dolby session isolation regression test

* Support MSVC in Dolby isolation test

* Extract testable Dolby session worker control flow

* Use shared Dolby worker and capture cleanup paths

* Test Dolby failure paths through production worker lifecycle

(cherry picked from commit a60d99958e9abcf51e38a5e2baa8990c653eabfd)

Pollo adaptation: preserve input-only audio layout, sink options, launch
claim/clone/resource ownership, pacing admission statuses and lifecycle unlock
ordering. Carry the codec offer into the existing metadata-only snapshot.
Existing translations and downstream settings remain intact.

Co-authored-by: Codex <noreply@openai.com>

92ecc9b1969a

build(ffmpeg): Integrate verified Dolby packages into nightly

Replace stock Windows AMD64 and Linux x86_64 dependencies with the
reviewed immutable native AC3/EAC3 maintenance release and hash-isolated
cache loader. Preserve the exact-source nightly controls and other
platform pins, plus the prepared-package override and Opus linkage.

Integrates reviewed source commits bc431a76d529b057db3d8a1e10e92389d0d98df7 and cc5c10a974aeb37ba712e6b1a28f79d055c8db66.

Co-authored-by: Codex <noreply@openai.com>
(cherry picked from commit fa3adc9bc06f4a34f3d741c143bced3966017e4d)

a1c7436a0852

test(rtsp): Compose production Dolby negotiation in terminal fixture

The terminal composition harness extracts the current ANNOUNCE parser but
omitted its Dolby interfaces. Extract the production audio types and helpers,
control encoder discovery at the fixture boundary, and cover negotiation and
resource retirement while preserving the existing terminal cleanup checks.

Co-authored-by: Codex <noreply@openai.com>
(cherry picked from commit ddf42cfa263db350718ebd8d3f2889ff95d49627)

feda692fe9f8

test(web): Include the accepted Steam profile in parity coverage

Pollo already exposes vhf_steam from the accepted Steam Controller change,
but its Windows-only option expectation omitted the profile. Port the missing
assertion from reviewed Shine source dd91f2abfc0f37c892cc851d19adcafe7a5fd5cb.
Keep every existing option and the Linux platform assertions unchanged.

Co-authored-by: Codex <noreply@openai.com>

0a2aad994bba

fix(release): Order distinct same-day host nightlies

The date-only identity hid later same-day source updates. Allocate numeric
revisions before the source hash so shipped clients can discover the bridge,
while validating exact identities and refusing duplicate or rewound sources.
Preserve existing MSI transactions, signing policy and published releases.

Co-authored-by: Codex <noreply@openai.com>

acc52561f132

ci(nightly): Run qualified releases from confirmed Canary

Manual and scheduled launches must execute the same reviewed Canary workflow,
without promoting product changes to the protected default branch. Pin source
to the dispatched workflow SHA, reject moved refs, and keep disabled or
validation-only runs from reserving release tags.

Co-authored-by: Codex <noreply@openai.com>

484463b6400e

fix(nightly): Preserve updater qualification and CRT include lookup

The frozen compatibility fixture must not add src to the system header search
path, where it shadows MinGW's process.h. Resolve its comparator locally while
retaining every assertion and the byte-identical shipped updater fixture.
Align web UI nightly metadata and revision validation with the backend.

Co-authored-by: Codex <noreply@openai.com>

Don't miss a new Vibepollo release

NewReleases is sending notifications on new releases.