UI: Add video scale filters to basic settings
parent
488cd84f6f
commit
640967b997
|
@ -244,6 +244,11 @@ Basic.Settings.Video.Renderer="Renderer:"
|
|||
Basic.Settings.Video.InvalidResolution="Invalid resolution value. Must be [width]x[height] (i.e. 1920x1080)"
|
||||
Basic.Settings.Video.CurrentlyActive="Video output is currently active. Please turn off any outputs to change video settings."
|
||||
|
||||
# scale filters
|
||||
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 (Sparpened scaling, 32 samples)"
|
||||
|
||||
# basic mode 'audio' settings
|
||||
Basic.Settings.Audio="Audio"
|
||||
Basic.Settings.Audio.SampleRate="Sample Rate"
|
||||
|
|
|
@ -866,7 +866,7 @@
|
|||
<item row="4" column="1">
|
||||
<widget class="QComboBox" name="downscaleFilter">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -471,6 +471,7 @@ bool OBSBasic::InitBasicConfigDefaults()
|
|||
config_set_default_uint (basicConfig, "Video", "FPSInt", 30);
|
||||
config_set_default_uint (basicConfig, "Video", "FPSNum", 30);
|
||||
config_set_default_uint (basicConfig, "Video", "FPSDen", 1);
|
||||
config_set_default_string(basicConfig, "Video", "ScaleType", "bicubic");
|
||||
|
||||
config_set_default_uint (basicConfig, "Audio", "SampleRate", 44100);
|
||||
config_set_default_string(basicConfig, "Audio", "ChannelSetup",
|
||||
|
@ -1335,6 +1336,19 @@ static inline int AttemptToResetVideo(struct obs_video_info *ovi)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static inline enum obs_scale_type GetScaleType(ConfigFile &basicConfig)
|
||||
{
|
||||
const char *scaleTypeStr = config_get_string(basicConfig,
|
||||
"Video", "ScaleType");
|
||||
|
||||
if (astrcmpi(scaleTypeStr, "bilinear") == 0)
|
||||
return OBS_SCALE_BILINEAR;
|
||||
else if (astrcmpi(scaleTypeStr, "lanczos") == 0)
|
||||
return OBS_SCALE_LANCZOS;
|
||||
else
|
||||
return OBS_SCALE_BICUBIC;
|
||||
}
|
||||
|
||||
int OBSBasic::ResetVideo()
|
||||
{
|
||||
struct obs_video_info ovi;
|
||||
|
@ -1356,6 +1370,7 @@ int OBSBasic::ResetVideo()
|
|||
ovi.range = VIDEO_RANGE_FULL;
|
||||
ovi.adapter = 0;
|
||||
ovi.gpu_conversion = true;
|
||||
ovi.scale_type = GetScaleType(basicConfig);
|
||||
|
||||
QTToGSWindow(ui->preview->winId(), ovi.window);
|
||||
|
||||
|
|
|
@ -338,6 +338,29 @@ void OBSBasicSettings::ResetDownscales(uint32_t cx, uint32_t cy)
|
|||
ui->outputResolution->lineEdit()->setText(ResString(cx, cy).c_str());
|
||||
}
|
||||
|
||||
void OBSBasicSettings::LoadDownscaleFilters()
|
||||
{
|
||||
ui->downscaleFilter->addItem(
|
||||
QTStr("Basic.Settings.Video.DownscaleFilter.Bilinear"),
|
||||
QT_UTF8("bilinear"));
|
||||
ui->downscaleFilter->addItem(
|
||||
QTStr("Basic.Settings.Video.DownscaleFilter.Bicubic"),
|
||||
QT_UTF8("bicubic"));
|
||||
ui->downscaleFilter->addItem(
|
||||
QTStr("Basic.Settings.Video.DownscaleFilter.Lanczos"),
|
||||
QT_UTF8("lanczos"));
|
||||
|
||||
const char *scaleType = config_get_string(main->Config(),
|
||||
"Video", "ScaleType");
|
||||
|
||||
if (astrcmpi(scaleType, "bilinear") == 0)
|
||||
ui->downscaleFilter->setCurrentIndex(0);
|
||||
else if (astrcmpi(scaleType, "lanczos") == 0)
|
||||
ui->downscaleFilter->setCurrentIndex(2);
|
||||
else
|
||||
ui->downscaleFilter->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
void OBSBasicSettings::LoadResolutionLists()
|
||||
{
|
||||
uint32_t cx = config_get_uint(main->Config(), "Video", "BaseCX");
|
||||
|
@ -415,6 +438,7 @@ void OBSBasicSettings::LoadVideoSettings()
|
|||
LoadRendererList();
|
||||
LoadResolutionLists();
|
||||
LoadFPSData();
|
||||
LoadDownscaleFilters();
|
||||
|
||||
loading = false;
|
||||
}
|
||||
|
@ -614,6 +638,7 @@ void OBSBasicSettings::SaveVideoSettings()
|
|||
SaveSpinBox(ui->fpsInteger, "Video", "FPSInt");
|
||||
SaveSpinBox(ui->fpsNumerator, "Video", "FPSNum");
|
||||
SaveSpinBox(ui->fpsDenominator, "Video", "FPSDen");
|
||||
SaveComboData(ui->downscaleFilter, "Video", "ScaleType");
|
||||
|
||||
main->ResetVideo();
|
||||
}
|
||||
|
|
|
@ -104,6 +104,7 @@ private:
|
|||
/* video */
|
||||
void LoadRendererList();
|
||||
void ResetDownscales(uint32_t cx, uint32_t cy);
|
||||
void LoadDownscaleFilters();
|
||||
void LoadResolutionLists();
|
||||
void LoadFPSData();
|
||||
|
||||
|
|
Loading…
Reference in New Issue