MCPcopy Create free account
hub / github.com/OpenShot/libopenshot / ParseOptions

Function ParseOptions

examples/VulkanBenchmark.cpp:2239–2277  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2237}
2238
2239static BenchmarkOptions ParseOptions(int argc, char* argv[]) {
2240 BenchmarkOptions options;
2241 for (int i = 1; i < argc; ++i) {
2242 const std::string arg = argv[i];
2243 if ((arg == "--video" || arg == "-v") && i + 1 < argc) {
2244 options.video_path = argv[++i];
2245 } else if ((arg == "--overlay" || arg == "-o") && i + 1 < argc) {
2246 options.overlay_path = argv[++i];
2247 } else if (arg == "--mode" && i + 1 < argc) {
2248 options.mode = argv[++i];
2249 if (options.mode != "preview" && options.mode != "export")
2250 throw std::runtime_error("Unknown mode: " + options.mode);
2251 } else if (arg == "--dump-dir" && i + 1 < argc) {
2252 options.dump_dir = argv[++i];
2253 } else if (arg == "--dump-every" && i + 1 < argc) {
2254 options.dump_every = std::max(0, std::atoi(argv[++i]));
2255 } else if ((arg == "--frames" || arg == "-n") && i + 1 < argc) {
2256 options.max_frames = std::max(1, std::atoi(argv[++i]));
2257 } else if (arg == "--row" && i + 1 < argc) {
2258 options.row_name = argv[++i];
2259 } else if (arg == "--vaapi-device" && i + 1 < argc) {
2260 options.vaapi_device = argv[++i];
2261 } else if (arg == "--cpu-only") {
2262 options.run_vulkan = false;
2263 } else if (arg == "--vulkan-only") {
2264 options.run_cpu = false;
2265 } else if (arg == "--help" || arg == "-h") {
2266 std::cout
2267 << "Usage: openshot-vulkan-benchmark [--video <path>] [--overlay <path>] [--frames <n>]\n"
2268 << " [--mode <preview|export>] [--vaapi-device <path>] [--row <name>]\n"
2269 << " [--dump-dir <dir>] [--dump-every <n>]\n"
2270 << "Rows: CPU->CPU, CPU->Vk, VAAPI->CPU, VAAPI->Vk, CUDA->CPU, CUDA->Vk, Vulkan->CPU, VulkanDirect->Vk\n";
2271 std::exit(0);
2272 } else {
2273 throw std::runtime_error("Unknown argument: " + arg);
2274 }
2275 }
2276 return options;
2277}
2278
2279} // namespace
2280

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected