From 92b90831efb9da7f26228e6780c98976a341358f Mon Sep 17 00:00:00 2001 From: Bhavya Gupta Date: Wed, 20 May 2026 06:56:08 +0530 Subject: [PATCH] feat: add noise reduction filter with Light/Medium/Heavy presets (closes #129) --- src/components/ExportSettings.tsx | 46 +++++++++++++++++++++++++++++++ src/lib/types.ts | 2 ++ 2 files changed, 48 insertions(+) diff --git a/src/components/ExportSettings.tsx b/src/components/ExportSettings.tsx index acec541e..6ed051d4 100644 --- a/src/components/ExportSettings.tsx +++ b/src/components/ExportSettings.tsx @@ -186,6 +186,52 @@ export default function ExportSettings({ +
+
+ +
+ +

+ Reduce grain in low-light footage +

+ +
+ {(['off', 'light', 'medium', 'heavy'] as const).map((level) => ( + + ))} +
+ + {recipe.noiseReduction !== 'off' && ( +
+ + ⚠ Note: significantly increases processing time. + +
+ )} +
); } \ No newline at end of file diff --git a/src/lib/types.ts b/src/lib/types.ts index 521a82c2..b68f6e16 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -12,6 +12,7 @@ export interface EditRecipe { quality: number; format: "mp4" | "webm" | "mkv" | "gif"; stabilization: boolean; + noiseReduction: 'off' | 'light' | 'medium' | 'heavy'; brightness: number; contrast: number; saturation: number; @@ -78,6 +79,7 @@ export const DEFAULT_RECIPE: EditRecipe = { quality: 23, format: "mp4", stabilization: false, + noiseReduction: 'off', brightness: 0, contrast: 0, saturation: 0,