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:
parent
e223e7b5ca
commit
c1fdbf064f
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user