UI: Add NVENC AV1 to simple output mode

This commit is contained in:
jp9000
2022-09-19 01:55:19 -07:00
committed by Jim
parent 53f4627b0c
commit 614bf960d9
6 changed files with 39 additions and 20 deletions

View File

@@ -3519,6 +3519,8 @@ void OBSBasicSettings::SaveOutputSettings()
presetType = "QSVPreset";
else if (encoder == SIMPLE_ENCODER_NVENC)
presetType = "NVENCPreset";
else if (encoder == SIMPLE_ENCODER_NVENC_AV1)
presetType = "NVENCPreset";
#ifdef ENABLE_HEVC
else if (encoder == SIMPLE_ENCODER_AMD_HEVC)
presetType = "AMDPreset";
@@ -4765,6 +4767,10 @@ void OBSBasicSettings::FillSimpleRecordingValues()
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.NVENC.H264"),
QString(SIMPLE_ENCODER_NVENC));
if (EncoderAvailable("jim_av1_nvenc"))
ui->simpleOutRecEncoder->addItem(
ENCODER_STR("Hardware.NVENC.AV1"),
QString(SIMPLE_ENCODER_NVENC_AV1));
#ifdef ENABLE_HEVC
if (EncoderAvailable("h265_texture_amf"))
ui->simpleOutRecEncoder->addItem(
@@ -4824,6 +4830,8 @@ void OBSBasicSettings::SimpleRecordingQualityChanged()
SimpleReplayBufferChanged();
}
extern const char *get_simple_output_encoder(const char *encoder);
void OBSBasicSettings::SimpleStreamingEncoderChanged()
{
QString encoder = ui->simpleOutStrEncoder->currentData().toString();
@@ -4844,26 +4852,19 @@ void OBSBasicSettings::SimpleStreamingEncoderChanged()
preset = curQSVPreset;
} else if (encoder == SIMPLE_ENCODER_NVENC ||
encoder == SIMPLE_ENCODER_NVENC_HEVC) {
const char *name = encoder == SIMPLE_ENCODER_NVENC
? "ffmpeg_nvenc"
: "ffmpeg_hevc_nvenc";
encoder == SIMPLE_ENCODER_NVENC_HEVC ||
encoder == SIMPLE_ENCODER_NVENC_AV1) {
const char *name =
get_simple_output_encoder(QT_TO_UTF8(encoder));
obs_properties_t *props = obs_get_encoder_properties(name);
obs_property_t *p = obs_properties_get(props, "preset");
obs_property_t *p = obs_properties_get(props, "preset2");
size_t num = obs_property_list_item_count(p);
for (size_t i = 0; i < num; i++) {
const char *name = obs_property_list_item_name(p, i);
const char *val = obs_property_list_item_string(p, i);
/* bluray is for ideal bluray disc recording settings,
* not streaming */
if (strcmp(val, "bd") == 0)
continue;
/* lossless should of course not be used to stream */
if (astrcmp_n(val, "lossless", 8) == 0)
continue;
ui->simpleOutPreset->addItem(QT_UTF8(name), val);
}