From 75f63e90583b1d435a6e5672a7d260d806c4cb12 Mon Sep 17 00:00:00 2001 From: Joshua Sattler <34030048+jsattler@users.noreply.github.com> Date: Sat, 28 Mar 2026 23:24:13 +0100 Subject: [PATCH] fix(quality): increase medium bpp for better screen content clarity Screen recordings with text and UI elements need higher bitrates than camera footage. Bump medium preset from 0.15/0.10 to 0.20/0.15 bpp (H.264/HEVC) for cleaner text during scrolling and animation. --- BetterCapture/Model/SettingsStore.swift | 4 ++-- BetterCaptureTests/VideoQualityTests.swift | 8 ++++---- docs/architecture/OUTPUT.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/BetterCapture/Model/SettingsStore.swift b/BetterCapture/Model/SettingsStore.swift index 5a373ba..9cc9e1b 100644 --- a/BetterCapture/Model/SettingsStore.swift +++ b/BetterCapture/Model/SettingsStore.swift @@ -191,7 +191,7 @@ enum VideoQuality: String, CaseIterable, Identifiable { var h264BitsPerPixel: Double { switch self { case .low: 0.04 - case .medium: 0.15 + case .medium: 0.2 case .high: 0.6 } } @@ -200,7 +200,7 @@ enum VideoQuality: String, CaseIterable, Identifiable { var hevcBitsPerPixel: Double { switch self { case .low: 0.02 - case .medium: 0.1 + case .medium: 0.15 case .high: 0.4 } } diff --git a/BetterCaptureTests/VideoQualityTests.swift b/BetterCaptureTests/VideoQualityTests.swift index 68fa810..5d64fdd 100644 --- a/BetterCaptureTests/VideoQualityTests.swift +++ b/BetterCaptureTests/VideoQualityTests.swift @@ -14,7 +14,7 @@ struct VideoQualityTests { @Test func h264BitsPerPixel() { #expect(VideoQuality.low.h264BitsPerPixel == 0.04) - #expect(VideoQuality.medium.h264BitsPerPixel == 0.15) + #expect(VideoQuality.medium.h264BitsPerPixel == 0.2) #expect(VideoQuality.high.h264BitsPerPixel == 0.6) } @@ -22,7 +22,7 @@ struct VideoQualityTests { @Test func hevcBitsPerPixel() { #expect(VideoQuality.low.hevcBitsPerPixel == 0.02) - #expect(VideoQuality.medium.hevcBitsPerPixel == 0.1) + #expect(VideoQuality.medium.hevcBitsPerPixel == 0.15) #expect(VideoQuality.high.hevcBitsPerPixel == 0.4) } @@ -30,13 +30,13 @@ struct VideoQualityTests { @Test func bitsPerPixelForH264() { #expect(VideoQuality.low.bitsPerPixel(for: .h264) == 0.04) - #expect(VideoQuality.medium.bitsPerPixel(for: .h264) == 0.15) + #expect(VideoQuality.medium.bitsPerPixel(for: .h264) == 0.2) #expect(VideoQuality.high.bitsPerPixel(for: .h264) == 0.6) } @Test func bitsPerPixelForHEVC() { #expect(VideoQuality.low.bitsPerPixel(for: .hevc) == 0.02) - #expect(VideoQuality.medium.bitsPerPixel(for: .hevc) == 0.1) + #expect(VideoQuality.medium.bitsPerPixel(for: .hevc) == 0.15) #expect(VideoQuality.high.bitsPerPixel(for: .hevc) == 0.4) } diff --git a/docs/architecture/OUTPUT.md b/docs/architecture/OUTPUT.md index 2f893bf..5110ea5 100644 --- a/docs/architecture/OUTPUT.md +++ b/docs/architecture/OUTPUT.md @@ -26,7 +26,7 @@ bitrate = width * height * bitsPerPixel * frameRate | Quality | H.264 bpp | HEVC bpp | | ------- | --------- | -------- | | Low | 0.04 | 0.02 | -| Medium | 0.15 | 0.10 | +| Medium | 0.20 | 0.15 | | High | 0.60 | 0.40 | HEVC uses lower bpp values because it achieves comparable visual quality at roughly half the bitrate of H.264.