disable auto key frames and make fullscreen not buns

This commit is contained in:
KingKDot
2026-07-19 16:48:11 -05:00
parent 7140874a13
commit 037559068a
5 changed files with 569 additions and 70 deletions
+2 -2
View File
@@ -741,7 +741,7 @@ func avgBytes(b int64, frames int64) float64 {
const (
blockSize = 64
maxBlockRatio = 0.40
keyframeEvery = 5 * time.Second
keyframeEvery = 0 * time.Second
enableBlocks = true
samplingRate = 3
minBlockSize = 32
@@ -926,7 +926,7 @@ func buildFramebackstage(img *image.RGBA, display int, quality int) (wire.Frame,
pf := backstagePrevFrame
backstagePrevMu.Unlock()
if pf == nil || pf.w != width || pf.h != height || now.Sub(time.Unix(0, backstageLastKeyframe.Load())) > keyframeEvery {
if pf == nil || pf.w != width || pf.h != height || (keyframeEvery > 0 && now.Sub(time.Unix(0, backstageLastKeyframe.Load())) > keyframeEvery) {
jpegBytes, err := encodeJPEG(img, quality)
backstagePrevMu.Lock()
copyPrevbackstage(img)
@@ -13,7 +13,7 @@ func directVideoKeyframeDue(requested bool, nowNs, lastKeyframeNs int64) bool {
if requested || lastKeyframeNs == 0 {
return true
}
return time.Duration(nowNs-lastKeyframeNs) >= keyframeEvery
return keyframeEvery > 0 && time.Duration(nowNs-lastKeyframeNs) >= keyframeEvery
}
func tryBuildDirectH264Frame(display int) (wire.Frame, time.Duration, time.Duration, bool, error) {
@@ -93,7 +93,6 @@ func TestCaptureDisplayDXGI(t *testing.T) {
func TestDirectVideoKeyframeDue(t *testing.T) {
now := (10 * time.Second).Nanoseconds()
last := now - keyframeEvery.Nanoseconds()
tests := []struct {
name string
@@ -103,8 +102,7 @@ func TestDirectVideoKeyframeDue(t *testing.T) {
}{
{name: "explicit request", requested: true, last: now, want: true},
{name: "first frame", last: 0, want: true},
{name: "before periodic interval", last: last + 1, want: false},
{name: "at periodic interval", last: last, want: true},
{name: "periodic keyframes disabled", last: now - (30 * time.Second).Nanoseconds(), want: false},
}
for _, test := range tests {