diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index f067bafe5..21685c13a 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -786,6 +786,7 @@ Basic.Settings.Video.DisableAero="Disable Aero" Basic.Settings.Video.DownscaleFilter.Bilinear="Bilinear (Fastest, but blurry if scaling)" Basic.Settings.Video.DownscaleFilter.Bicubic="Bicubic (Sharpened scaling, 16 samples)" Basic.Settings.Video.DownscaleFilter.Lanczos="Lanczos (Sharpened scaling, 36 samples)" +Basic.Settings.Video.DownscaleFilter.Area="Area (Weighted sum, 1/2/4 samples)" # basic mode 'audio' settings Basic.Settings.Audio="Audio" diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 8437bdc3b..3a08a2f11 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3447,6 +3447,8 @@ static inline enum obs_scale_type GetScaleType(ConfigFile &basicConfig) return OBS_SCALE_BILINEAR; else if (astrcmpi(scaleTypeStr, "lanczos") == 0) return OBS_SCALE_LANCZOS; + else if (astrcmpi(scaleTypeStr, "area") == 0) + return OBS_SCALE_AREA; else return OBS_SCALE_BICUBIC; } diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 43d0a3ad0..a48371f90 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -1333,6 +1333,9 @@ void OBSBasicSettings::LoadDownscaleFilters() ui->downscaleFilter->addItem( QTStr("Basic.Settings.Video.DownscaleFilter.Lanczos"), QT_UTF8("lanczos")); + ui->downscaleFilter->addItem( + QTStr("Basic.Settings.Video.DownscaleFilter.Area"), + QT_UTF8("area")); const char *scaleType = config_get_string(main->Config(), "Video", "ScaleType"); @@ -1341,6 +1344,8 @@ void OBSBasicSettings::LoadDownscaleFilters() ui->downscaleFilter->setCurrentIndex(0); else if (astrcmpi(scaleType, "lanczos") == 0) ui->downscaleFilter->setCurrentIndex(2); + else if (astrcmpi(scaleType, "area") == 0) + ui->downscaleFilter->setCurrentIndex(3); else ui->downscaleFilter->setCurrentIndex(1); } diff --git a/libobs/obs-video.c b/libobs/obs-video.c index 714127754..e6e33585d 100644 --- a/libobs/obs-video.c +++ b/libobs/obs-video.c @@ -168,6 +168,8 @@ get_scale_effect_internal(struct obs_core_video *video) return video->default_effect; case OBS_SCALE_LANCZOS: return video->lanczos_effect; + case OBS_SCALE_AREA: + return video->area_effect; case OBS_SCALE_BICUBIC: default:; }