diff --git a/api/source/mk_recorder.cpp b/api/source/mk_recorder.cpp index ea0abe4c..8bacbb0b 100644 --- a/api/source/mk_recorder.cpp +++ b/api/source/mk_recorder.cpp @@ -11,6 +11,8 @@ #include "mk_recorder.h" #include "Rtmp/FlvMuxer.h" #include "Record/Recorder.h" + +using namespace std; using namespace toolkit; using namespace mediakit; @@ -36,17 +38,43 @@ API_EXPORT int API_CALL mk_flv_recorder_start(mk_flv_recorder ctx, const char *v } ///////////////////////////////////////////hls/mp4录制///////////////////////////////////////////// + +static inline bool isRecording(Recorder::type type, const string &vhost, const string &app, const string &stream_id){ + auto src = MediaSource::find(vhost, app, stream_id); + if(!src){ + return false; + } + return src->isRecording(type); +} + +static inline bool startRecord(Recorder::type type, const string &vhost, const string &app, const string &stream_id,const string &customized_path, size_t max_second){ + auto src = MediaSource::find(vhost, app, stream_id); + if (!src) { + WarnL << "未找到相关的MediaSource,startRecord失败:" << vhost << "/" << app << "/" << stream_id; + return false; + } + return src->setupRecord(type, true, customized_path, max_second); +} + +static inline bool stopRecord(Recorder::type type, const string &vhost, const string &app, const string &stream_id){ + auto src = MediaSource::find(vhost, app, stream_id); + if(!src){ + return false; + } + return src->setupRecord(type, false, "", 0); +} + API_EXPORT int API_CALL mk_recorder_is_recording(int type, const char *vhost, const char *app, const char *stream){ assert(vhost && app && stream); - return Recorder::isRecording((Recorder::type)type,vhost,app,stream); + return isRecording((Recorder::type)type,vhost,app,stream); } API_EXPORT int API_CALL mk_recorder_start(int type, const char *vhost, const char *app, const char *stream,const char *customized_path, size_t max_second){ assert(vhost && app && stream); - return Recorder::startRecord((Recorder::type)type,vhost,app,stream,customized_path ? customized_path : "", max_second); + return startRecord((Recorder::type)type,vhost,app,stream,customized_path ? customized_path : "", max_second); } API_EXPORT int API_CALL mk_recorder_stop(int type, const char *vhost, const char *app, const char *stream){ assert(vhost && app && stream); - return Recorder::stopRecord((Recorder::type)type,vhost,app,stream); + return stopRecord((Recorder::type)type,vhost,app,stream); } diff --git a/src/Record/Recorder.cpp b/src/Record/Recorder.cpp index 1ef76465..13bd256f 100644 --- a/src/Record/Recorder.cpp +++ b/src/Record/Recorder.cpp @@ -83,29 +83,4 @@ std::shared_ptr Recorder::createRecorder(type type, const st } } -bool Recorder::isRecording(type type, const string &vhost, const string &app, const string &stream_id){ - auto src = MediaSource::find(vhost, app, stream_id); - if(!src){ - return false; - } - return src->isRecording(type); -} - -bool Recorder::startRecord(type type, const string &vhost, const string &app, const string &stream_id,const string &customized_path, size_t max_second){ - auto src = MediaSource::find(vhost, app, stream_id); - if (!src) { - WarnL << "未找到相关的MediaSource,startRecord失败:" << vhost << "/" << app << "/" << stream_id; - return false; - } - return src->setupRecord(type, true, customized_path, max_second); -} - -bool Recorder::stopRecord(type type, const string &vhost, const string &app, const string &stream_id){ - auto src = MediaSource::find(vhost, app, stream_id); - if(!src){ - return false; - } - return src->setupRecord(type, false, "", 0); -} - } /* namespace mediakit */ diff --git a/src/Record/Recorder.h b/src/Record/Recorder.h index 47f36f49..d3529dea 100644 --- a/src/Record/Recorder.h +++ b/src/Record/Recorder.h @@ -62,36 +62,6 @@ public: */ static std::shared_ptr createRecorder(type type, const std::string &vhost, const std::string &app, const std::string &stream_id, const std::string &customized_path = "", size_t max_second = 0); - /** - * 获取录制状态 - * @param type hls还是MP4录制 - * @param vhost 虚拟主机 - * @param app 应用名 - * @param stream_id 流id - * @return 是否真正录制 - */ - static bool isRecording(type type, const std::string &vhost, const std::string &app, const std::string &stream_id); - - /** - * 开始录制 - * @param type hls还是MP4录制 - * @param vhost 虚拟主机 - * @param app 应用名 - * @param stream_id 流id - * @param customized_path 录像文件保存自定义根目录,为空则采用配置文件设置 - * @return 成功与否 - */ - static bool startRecord(type type, const std::string &vhost, const std::string &app, const std::string &stream_id,const std::string &customized_path, size_t max_second); - - /** - * 停止录制 - * @param type hls还是MP4录制 - * @param vhost 虚拟主机 - * @param app 应用名 - * @param stream_id 流id - */ - static bool stopRecord(type type, const std::string &vhost, const std::string &app, const std::string &stream_id); - private: Recorder() = delete; ~Recorder() = delete;