0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

UI: Simplify multitrack encoder availability check

This commit is contained in:
derrod 2024-06-07 17:40:49 +02:00 committed by Ryan Foster
parent e223e7b5ca
commit c1fdbf064f

View File

@ -241,30 +241,16 @@ static void adjust_encoder_frame_rate_divisor(
obs_encoder_set_frame_rate_divisor(video_encoder, divisor);
}
static const std::vector<const char *> &get_available_encoders()
{
// encoders are currently only registered during startup, so keeping
// a static vector around shouldn't be a problem
static std::vector<const char *> available_encoders = [] {
std::vector<const char *> available_encoders;
for (size_t i = 0;; i++) {
const char *id = nullptr;
if (!obs_enum_encoder_types(i, &id))
break;
available_encoders.push_back(id);
}
return available_encoders;
}();
return available_encoders;
}
static bool encoder_available(const char *type)
{
auto &encoders = get_available_encoders();
return std::find_if(std::begin(encoders), std::end(encoders),
[=](const char *encoder) {
return strcmp(type, encoder) == 0;
}) != std::end(encoders);
const char *id = nullptr;
for (size_t idx = 0; obs_enum_encoder_types(idx, &id); idx++) {
if (strcmp(id, type) == 0)
return true;
}
return false;
}
static OBSEncoderAutoRelease create_video_encoder(