diff --git a/src/Common/MediaSource.h b/src/Common/MediaSource.h index 36a0ea5..f3d6e14 100644 --- a/src/Common/MediaSource.h +++ b/src/Common/MediaSource.h @@ -126,9 +126,9 @@ public: // 该流无人观看 void onNoneReader(); // 开启或关闭录制 - bool setupRecord(Recorder::type type, bool start, const string &custom_path); + virtual bool setupRecord(Recorder::type type, bool start, const string &custom_path); // 获取录制状态 - bool isRecording(Recorder::type type); + virtual bool isRecording(Recorder::type type); // 同步查找流 static Ptr find(const string &schema, const string &vhost, const string &app, const string &id, bool bMake = true) ; diff --git a/src/Rtmp/RtmpMediaSourceImp.h b/src/Rtmp/RtmpMediaSourceImp.h index e3c7496..954180b 100644 --- a/src/Rtmp/RtmpMediaSourceImp.h +++ b/src/Rtmp/RtmpMediaSourceImp.h @@ -80,6 +80,33 @@ public: } /** + * 设置录制状态 + * @param type 录制类型 + * @param start 开始或停止 + * @param custom_path 开启录制时,指定自定义路径 + * @return 是否设置成功 + */ + bool setupRecord(Recorder::type type, bool start, const string &custom_path) override{ + if(_muxer){ + return _muxer->setupRecord(*this,type, start, custom_path); + } + return RtmpMediaSource::setupRecord(type, start, custom_path); + } + + /** + * 获取录制状态 + * @param type 录制类型 + * @return 录制状态 + */ + bool isRecording(Recorder::type type) override{ + if(_muxer){ + return _muxer->isRecording(*this,type); + } + return RtmpMediaSource::isRecording(type); + } + + + /** * 设置协议转换 * @param enableRtsp 是否转换成rtsp * @param enableHls 是否转换成hls diff --git a/src/Rtsp/RtspMediaSourceImp.h b/src/Rtsp/RtspMediaSourceImp.h index 5791323..495158f 100644 --- a/src/Rtsp/RtspMediaSourceImp.h +++ b/src/Rtsp/RtspMediaSourceImp.h @@ -71,6 +71,33 @@ public: } /** + * 设置录制状态 + * @param type 录制类型 + * @param start 开始或停止 + * @param custom_path 开启录制时,指定自定义路径 + * @return 是否设置成功 + */ + bool setupRecord(Recorder::type type, bool start, const string &custom_path) override{ + if(_muxer){ + return _muxer->setupRecord(*this,type, start, custom_path); + } + return RtspMediaSource::setupRecord(type, start, custom_path); + } + + /** + * 获取录制状态 + * @param type 录制类型 + * @return 录制状态 + */ + bool isRecording(Recorder::type type) override{ + if(_muxer){ + return _muxer->isRecording(*this,type); + } + return RtspMediaSource::isRecording(type); + } + + + /** * 设置协议转换 * @param enableRtmp 是否转换成rtmp * @param enableHls 是否转换成hls