mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +08:00
程序退出前停止一切录制
This commit is contained in:
parent
728fd55e0c
commit
33047ddc94
@ -336,6 +336,7 @@ int start_main(int argc,char *argv[]) {
|
||||
}
|
||||
unInstallWebApi();
|
||||
unInstallWebHook();
|
||||
Recorder::stopAll();
|
||||
//休眠1秒再退出,防止资源释放顺序错误
|
||||
InfoL << "程序退出中,请等待...";
|
||||
sleep(1);
|
||||
|
@ -206,6 +206,11 @@ public:
|
||||
_recorder_map.erase(getRecorderKey(vhost, app, stream_id));
|
||||
}
|
||||
|
||||
void stopAll(){
|
||||
lock_guard<decltype(_recorder_mtx)> lck(_recorder_mtx);
|
||||
_recorder_map.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
MediaSourceWatcher(){
|
||||
NoticeCenter::Instance().addListener(this,Broadcast::kBroadcastMediaChanged,[this](BroadcastMediaChangedArgs){
|
||||
@ -352,4 +357,9 @@ void Recorder::stopRecord(Recorder::type type, const string &vhost, const string
|
||||
}
|
||||
}
|
||||
|
||||
void Recorder::stopAll() {
|
||||
MediaSourceWatcher<type_hls>::Instance().stopAll();
|
||||
MediaSourceWatcher<type_mp4>::Instance().stopAll();
|
||||
}
|
||||
|
||||
} /* namespace mediakit */
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
static status getRecordStatus(type type, const string &vhost, const string &app, const string &stream_id);
|
||||
static int startRecord(type type, const string &vhost, const string &app, const string &stream_id,bool waitForRecord, bool continueRecord);
|
||||
static void stopRecord(type type, const string &vhost, const string &app, const string &stream_id);
|
||||
static void stopAll();
|
||||
private:
|
||||
Recorder() = delete;
|
||||
~Recorder() = delete;
|
||||
|
@ -354,6 +354,7 @@ int main(int argc,char *argv[]) {
|
||||
signal(SIGHUP, [](int) { loadIniConfig(); });
|
||||
sem.wait();
|
||||
|
||||
Recorder::stopAll();
|
||||
lock_guard<mutex> lck(s_mtxFlvRecorder);
|
||||
s_mapFlvRecorder.clear();
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user