From 8fad6d1b90a5de0d24f3293131f81b40db1c1836 Mon Sep 17 00:00:00 2001 From: Guillaume Louel <37544189+glouel@users.noreply.github.com> Date: Mon, 2 Dec 2024 13:39:14 +0100 Subject: [PATCH] Add a bit of brightness decrease (but increase in practice) to make invert colors it look a bit more usable --- Aerial.xcodeproj/project.pbxproj | 8 +++--- .../Extensions/AVPlayerItem+vibrance.swift | 27 ++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Aerial.xcodeproj/project.pbxproj b/Aerial.xcodeproj/project.pbxproj index feaf7ee0..8cf3cdbc 100644 --- a/Aerial.xcodeproj/project.pbxproj +++ b/Aerial.xcodeproj/project.pbxproj @@ -3249,7 +3249,7 @@ CODE_SIGN_IDENTITY = "Developer ID Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3.5.2beta2; + CURRENT_PROJECT_VERSION = 3.5.2beta3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 3L54M5L5KK; ENABLE_HARDENED_RUNTIME = YES; @@ -3257,7 +3257,7 @@ INSTALL_PATH = "$(HOME)/Library/Screen Savers"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 3.5.2beta2; + MARKETING_VERSION = 3.5.2beta3; PRODUCT_BUNDLE_IDENTIFIER = com.johncoates.Aerial; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3278,7 +3278,7 @@ CODE_SIGN_IDENTITY = "Developer ID Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 3.5.2beta2; + CURRENT_PROJECT_VERSION = 3.5.2beta3; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = 3L54M5L5KK; ENABLE_HARDENED_RUNTIME = YES; @@ -3286,7 +3286,7 @@ INSTALL_PATH = "$(HOME)/Library/Screen Savers"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.14; - MARKETING_VERSION = 3.5.2beta2; + MARKETING_VERSION = 3.5.2beta3; OTHER_CODE_SIGN_FLAGS = "--timestamp"; PRODUCT_BUNDLE_IDENTIFIER = com.johncoates.Aerial; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Aerial/Source/Models/Extensions/AVPlayerItem+vibrance.swift b/Aerial/Source/Models/Extensions/AVPlayerItem+vibrance.swift index f167aec9..c9c3e35e 100644 --- a/Aerial/Source/Models/Extensions/AVPlayerItem+vibrance.swift +++ b/Aerial/Source/Models/Extensions/AVPlayerItem+vibrance.swift @@ -36,18 +36,27 @@ extension AVPlayerItem { func setColorInvert() { if #available(OSX 10.14, *) { - debugLog("Applying color invert") + debugLog("Applying color invert with brightness adjustment") - if let filter = CIFilter(name: "CIColorInvert") { - self.videoComposition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in - let source = request.sourceImage.clampedToExtent() - filter.setValue(source, forKey: kCIInputImageKey) - let output = filter.outputImage + if let invertFilter = CIFilter(name: "CIColorInvert"), + let brightnessFilter = CIFilter(name: "CIColorControls") { - request.finish(with: output!, context: nil) - }) + self.videoComposition = AVVideoComposition(asset: asset, applyingCIFiltersWithHandler: { request in + let source = request.sourceImage.clampedToExtent() + + // First apply invert + invertFilter.setValue(source, forKey: kCIInputImageKey) + + // Then apply brightness + brightnessFilter.setValue(invertFilter.outputImage, forKey: kCIInputImageKey) + brightnessFilter.setValue(-0.25, forKey: kCIInputBrightnessKey) // 25% decrease + + let output = brightnessFilter.outputImage + + request.finish(with: output!, context: nil) + }) + } } - } } }