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 <pkv@obsproject.com>
This commit is contained in:
pkv
2025-02-25 23:54:58 +01:00
committed by Ryan Foster
parent b9f13cc360
commit cf6eb3fd89
2 changed files with 8 additions and 0 deletions

View File

@@ -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"

View File

@@ -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);