From cf6eb3fd8950d64e51139c4124e34c452a16348d Mon Sep 17 00:00:00 2001 From: pkv Date: Tue, 25 Feb 2025 23:54:58 +0100 Subject: [PATCH] nv-filters: Add chair removal option to background removal This adds the following new options for background removal effect, namely the ability to remove the chair or leave it with the talking head. Requires sdk >= 0.7.6. Signed-off-by: pkv --- plugins/nv-filters/data/locale/en-US.ini | 2 ++ plugins/nv-filters/nvidia-videofx-filter.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/plugins/nv-filters/data/locale/en-US.ini b/plugins/nv-filters/data/locale/en-US.ini index b837102ce..9df63caee 100644 --- a/plugins/nv-filters/data/locale/en-US.ini +++ b/plugins/nv-filters/data/locale/en-US.ini @@ -11,6 +11,8 @@ Nvvfx.Method.Greenscreen="NVIDIA Background Removal" Nvvfx.Method.Greenscreen.Mode="Mode" Nvvfx.Method.Greenscreen.Quality="Quality (higher GPU usage, better quality)" Nvvfx.Method.Greenscreen.Performance="Performance (lower GPU usage, good quality)" +Nvvfx.Method.Greenscreen.Quality.Chair="Quality (higher GPU usage, better quality) + Chair removal" +Nvvfx.Method.Greenscreen.Performance.Chair="Performance (lower GPU usage, good quality) + Chair removal" Nvvfx.Method.Greenscreen.Threshold="Threshold" Nvvfx.OutdatedSDK="WARNING: Please upgrade both NVIDIA Video & Audio SDK. Your current version of Video SDK is outdated." Nvvfx.Method.Greenscreen.Processing="Mask refresh frequency in frames" diff --git a/plugins/nv-filters/nvidia-videofx-filter.c b/plugins/nv-filters/nvidia-videofx-filter.c index b26a5c097..acbae9fbb 100644 --- a/plugins/nv-filters/nvidia-videofx-filter.c +++ b/plugins/nv-filters/nvidia-videofx-filter.c @@ -23,6 +23,8 @@ #define S_MODE "mode" #define S_MODE_QUALITY 0 #define S_MODE_PERF 1 +#define S_MODE_QUALITY_CHAIR 2 +#define S_MODE_PERF_CHAIR 3 #define S_THRESHOLDFX "threshold" #define S_THRESHOLDFX_DEFAULT 1.0 #define S_PROCESSING "processing_interval" @@ -31,6 +33,8 @@ #define TEXT_MODE MT_("Nvvfx.Method.Greenscreen.Mode") #define TEXT_MODE_QUALITY MT_("Nvvfx.Method.Greenscreen.Quality") #define TEXT_MODE_PERF MT_("Nvvfx.Method.Greenscreen.Performance") +#define TEXT_MODE_QUALITY_CHAIR MT_("Nvvfx.Method.Greenscreen.Quality.Chair") +#define TEXT_MODE_PERF_CHAIR MT_("Nvvfx.Method.Greenscreen.Performance.Chair") #define TEXT_MODE_THRESHOLD MT_("Nvvfx.Method.Greenscreen.Threshold") #define TEXT_DEPRECATION MT_("Nvvfx.OutdatedSDK") #define TEXT_PROCESSING MT_("Nvvfx.Method.Greenscreen.Processing") @@ -1074,6 +1078,8 @@ static obs_properties_t *nvvfx_filter_properties(void *data) obs_properties_add_list(props, S_MODE, TEXT_MODE, OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_INT); obs_property_list_add_int(mode, TEXT_MODE_QUALITY, S_MODE_QUALITY); obs_property_list_add_int(mode, TEXT_MODE_PERF, S_MODE_PERF); + obs_property_list_add_int(mode, TEXT_MODE_QUALITY_CHAIR, S_MODE_QUALITY_CHAIR); + obs_property_list_add_int(mode, TEXT_MODE_PERF_CHAIR, S_MODE_PERF_CHAIR); obs_property_t *threshold = obs_properties_add_float_slider(props, S_THRESHOLDFX, TEXT_MODE_THRESHOLD, 0, 1, 0.05); obs_property_t *partial = obs_properties_add_int_slider(props, S_PROCESSING, TEXT_PROCESSING, 1, 4, 1);