1
This commit is contained in:
parent
23718bb584
commit
b599ef6903
@ -215,21 +215,6 @@ void RTMPManager::stream_loop(Camera cam, StreamContext *ctx)
|
||||
}
|
||||
|
||||
// ========== 启停与状态 ==========
|
||||
void RTMPManager::start_all()
|
||||
{
|
||||
LOG_INFO("[RTMP] Starting all record streams...");
|
||||
std::lock_guard<std::mutex> lock(streams_mutex);
|
||||
|
||||
for (auto &cam : g_app_config.cameras)
|
||||
{
|
||||
auto key = make_key(cam.name);
|
||||
auto ctx = std::make_unique<StreamContext>();
|
||||
ctx->running.store(true);
|
||||
ctx->thread = std::thread([cam, ptr = ctx.get()]() { stream_loop(cam, ptr); });
|
||||
streams.emplace(key, std::move(ctx));
|
||||
}
|
||||
}
|
||||
|
||||
void RTMPManager::start_all()
|
||||
{
|
||||
LOG_INFO("[RTMP] Starting all record streams...");
|
||||
@ -260,6 +245,22 @@ void RTMPManager::start_all()
|
||||
}
|
||||
}
|
||||
|
||||
void RTMPManager::stop_all()
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(streams_mutex);
|
||||
for (auto &kv : streams) kv.second->running.store(false);
|
||||
for (auto &kv : streams)
|
||||
if (kv.second->thread.joinable()) kv.second->thread.join();
|
||||
streams.clear();
|
||||
}
|
||||
|
||||
bool RTMPManager::is_streaming(const std::string &cam_name)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(streams_mutex);
|
||||
auto it = streams.find(make_key(cam_name));
|
||||
return (it != streams.end() && it->second->status.running);
|
||||
}
|
||||
|
||||
std::string RTMPManager::get_stream_url(const std::string &cam_name)
|
||||
{
|
||||
std::string ip = get_ip_address("enP2p33s0");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user