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()
|
void RTMPManager::start_all()
|
||||||
{
|
{
|
||||||
LOG_INFO("[RTMP] Starting all record streams...");
|
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 RTMPManager::get_stream_url(const std::string &cam_name)
|
||||||
{
|
{
|
||||||
std::string ip = get_ip_address("enP2p33s0");
|
std::string ip = get_ip_address("enP2p33s0");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user