瀏覽代碼

UI: Simplify multitrack encoder availability check

derrod 1 年之前
父節點
當前提交
c1fdbf064f
共有 1 個文件被更改,包括 8 次插入22 次删除
  1. 8 22
      UI/multitrack-video-output.cpp

+ 8 - 22
UI/multitrack-video-output.cpp

@@ -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(