56 lines
1.4 KiB
C++
56 lines
1.4 KiB
C++
#include <iostream>
|
|
#include <string>
|
|
#include <string_view>
|
|
|
|
#include "media_server_app.h"
|
|
#include "version.h"
|
|
|
|
namespace {
|
|
|
|
void PrintUsage() {
|
|
std::cout << "Usage: media-server [--config <path>] [--version]\n";
|
|
}
|
|
|
|
void PrintVersion() {
|
|
std::cout << "RK3588 Media Server v" << rk3588::ProjectVersion()
|
|
<< " (git " << rk3588::GitSha() << ")\n";
|
|
}
|
|
|
|
} // namespace
|
|
|
|
int main(int argc, char** argv) {
|
|
// Force line buffering for real-time log output
|
|
setvbuf(stdout, nullptr, _IOLBF, 0);
|
|
setvbuf(stderr, nullptr, _IOLBF, 0);
|
|
setenv("PYTHONUNBUFFERED", "1", 1);
|
|
setenv("STL_BUFFER_MODE", "line", 1);
|
|
|
|
std::string config_path = "configs/sample_cam1.json";
|
|
bool show_version = false;
|
|
|
|
for (int i = 1; i < argc; ++i) {
|
|
std::string_view arg{argv[i]};
|
|
if (arg == "--version") {
|
|
show_version = true;
|
|
} else if ((arg == "--config" || arg == "-c") && i + 1 < argc) {
|
|
config_path = argv[++i];
|
|
} else if (arg == "--help" || arg == "-h") {
|
|
PrintUsage();
|
|
return 0;
|
|
} else {
|
|
std::cerr << "Unknown argument: " << arg << "\n";
|
|
PrintUsage();
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if (show_version) {
|
|
PrintVersion();
|
|
return 0;
|
|
}
|
|
|
|
PrintVersion();
|
|
rk3588::MediaServerApp app(config_path);
|
|
return app.Start();
|
|
}
|