perf: port Apollo low-latency/jitter improvements (AP1, AP6, AP9, SP1, SP2)#281
Open
sh00bx wants to merge 1 commit into
Open
perf: port Apollo low-latency/jitter improvements (AP1, AP6, AP9, SP1, SP2)#281sh00bx wants to merge 1 commit into
sh00bx wants to merge 1 commit into
Conversation
…, SP2) Ports the latency- and WiFi-jitter-relevant subset of the Apollo perf-curated branch onto Vibepollo, adapted to Vibepollo's code structure. DS5 customizations were intentionally excluded (obsolete via the CTM bridge). Knobs already present in Vibepollo (min_qp, filler_data, split_encode, weighted_prediction) were skipped. - AP1: configurable RTP send-pacing bandwidth (pacing_max_bitrate_kbps). Replaces the hardcoded ~80%-of-1Gbps pacer that no-ops on WiFi links and lets AMPDU aggregation amplify per-frame bursts into 30-60ms inter-arrival spikes. 0 = legacy. Includes a 1-packet/ms floor. - AP6: raise videoBroadcastThread + sync/async encode threads high->critical; audioBroadcastThread stays high. - AP9: expose nvenc_temporal_aq with NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ probe. - SP1: server-side packetsize cap (200..65535) to avoid fragmentation on low-MTU links. - SP2: harden intra-refresh - add outputRecoveryPointSEI to the HEVC path and add the previously-missing H264 intra-refresh block (caps-probe + recoveryPointSEI + single-slice). Activates when the client negotiates enableIntraRefresh. Web-UI strings and docs intentionally omitted; keys are sunshine.conf-only.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ports the latency- and WiFi-jitter-relevant subset of an Apollo perf-curated branch onto Vibepollo, adapted to Vibepollo's code structure. All knobs default to legacy behaviour, so nothing changes unless explicitly enabled. Knobs already present in Vibepollo (
min_qp,filler_data,split_encode,weighted_prediction) were skipped, and DS5-specific customizations were intentionally excluded.Changes
pacing_max_bitrate_kbps). Replaces the hardcoded ~80%-of-1Gbps pacer that effectively no-ops on WiFi links and lets AMPDU aggregation amplify per-frame bursts into 30–60 ms inter-arrival spikes.0= legacy behaviour; includes a 1-packet/ms floor.videoBroadcastThread+ the sync/async encode threads from high → critical priority;audioBroadcastThreadstays high.nvenc_temporal_aq, gated behind anNV_ENC_CAPS_SUPPORT_TEMPORAL_AQprobe.outputRecoveryPointSEIto the HEVC path and add the previously-missing H264 intra-refresh block (caps-probe + recoveryPointSEI + single-slice). Activates only when the client negotiatesenableIntraRefresh.New keys are
sunshine.conf-only; web-UI strings and docs were intentionally omitted to keep the diff small for review.Touches
src/config.{cpp,h},src/nvenc/nvenc_base.cpp,src/nvenc/nvenc_config.h,src/rtsp.cpp,src/stream.cpp,src/video.cpp.🤖 Generated with Claude Code