精简代码,改善代码结构
This commit is contained in:
parent
eca9236955
commit
636068b2b8
|
|
@ -131,7 +131,7 @@ public:
|
||||||
vector<Track::Ptr> getTracks(bool ready = true) const override;
|
vector<Track::Ptr> getTracks(bool ready = true) const override;
|
||||||
|
|
||||||
// 设置监听者
|
// 设置监听者
|
||||||
virtual void setListener(const std::weak_ptr<MediaSourceEvent> &listener);
|
void setListener(const std::weak_ptr<MediaSourceEvent> &listener);
|
||||||
// 获取监听者
|
// 获取监听者
|
||||||
const std::weak_ptr<MediaSourceEvent>& getListener() const;
|
const std::weak_ptr<MediaSourceEvent>& getListener() const;
|
||||||
|
|
||||||
|
|
@ -152,9 +152,9 @@ public:
|
||||||
// 该流无人观看
|
// 该流无人观看
|
||||||
void onNoneReader();
|
void onNoneReader();
|
||||||
// 开启或关闭录制
|
// 开启或关闭录制
|
||||||
virtual bool setupRecord(Recorder::type type, bool start, const string &custom_path);
|
bool setupRecord(Recorder::type type, bool start, const string &custom_path);
|
||||||
// 获取录制状态
|
// 获取录制状态
|
||||||
virtual bool isRecording(Recorder::type type);
|
bool isRecording(Recorder::type type);
|
||||||
|
|
||||||
// 同步查找流
|
// 同步查找流
|
||||||
static Ptr find(const string &schema, const string &vhost, const string &app, const string &id);
|
static Ptr find(const string &schema, const string &vhost, const string &app, const string &id);
|
||||||
|
|
|
||||||
|
|
@ -68,21 +68,9 @@ public:
|
||||||
//需要解复用rtmp
|
//需要解复用rtmp
|
||||||
key_pos = _demuxer->inputRtmp(pkt);
|
key_pos = _demuxer->inputRtmp(pkt);
|
||||||
}
|
}
|
||||||
|
|
||||||
RtmpMediaSource::onWrite(pkt, key_pos);
|
RtmpMediaSource::onWrite(pkt, key_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置监听器
|
|
||||||
* @param listener
|
|
||||||
*/
|
|
||||||
void setListener(const std::weak_ptr<MediaSourceEvent> &listener) override {
|
|
||||||
RtmpMediaSource::setListener(listener);
|
|
||||||
if(_muxer){
|
|
||||||
_muxer->setMediaListener(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取观看总人数,包括(hls/rtsp/rtmp)
|
* 获取观看总人数,包括(hls/rtsp/rtmp)
|
||||||
*/
|
*/
|
||||||
|
|
@ -90,33 +78,6 @@ public:
|
||||||
return readerCount() + (_muxer ? _muxer->totalReaderCount() : 0);
|
return readerCount() + (_muxer ? _muxer->totalReaderCount() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置录制状态
|
|
||||||
* @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 enableRtsp 是否转换成rtsp
|
||||||
|
|
@ -128,6 +89,9 @@ public:
|
||||||
_muxer = std::make_shared<MultiMediaSourceMuxer>(getVhost(), getApp(), getId(), _demuxer->getDuration(), enableRtsp, false, enableHls, enableMP4);
|
_muxer = std::make_shared<MultiMediaSourceMuxer>(getVhost(), getApp(), getId(), _demuxer->getDuration(), enableRtsp, false, enableHls, enableMP4);
|
||||||
_muxer->setMediaListener(getListener());
|
_muxer->setMediaListener(getListener());
|
||||||
_muxer->setTrackListener(static_pointer_cast<RtmpMediaSourceImp>(shared_from_this()));
|
_muxer->setTrackListener(static_pointer_cast<RtmpMediaSourceImp>(shared_from_this()));
|
||||||
|
//让_muxer对象拦截一部分事件(比如说录像相关事件)
|
||||||
|
setListener(_muxer);
|
||||||
|
|
||||||
for(auto &track : _demuxer->getTracks(false)){
|
for(auto &track : _demuxer->getTracks(false)){
|
||||||
_muxer->addTrack(track);
|
_muxer->addTrack(track);
|
||||||
track->addDelegate(_muxer);
|
track->addDelegate(_muxer);
|
||||||
|
|
|
||||||
|
|
@ -59,17 +59,6 @@ public:
|
||||||
RtspMediaSource::onWrite(rtp, key_pos);
|
RtspMediaSource::onWrite(rtp, key_pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置监听器
|
|
||||||
* @param listener
|
|
||||||
*/
|
|
||||||
void setListener(const std::weak_ptr<MediaSourceEvent> &listener) override {
|
|
||||||
RtspMediaSource::setListener(listener);
|
|
||||||
if(_muxer){
|
|
||||||
_muxer->setMediaListener(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取观看总人数,包括(hls/rtsp/rtmp)
|
* 获取观看总人数,包括(hls/rtsp/rtmp)
|
||||||
*/
|
*/
|
||||||
|
|
@ -77,33 +66,6 @@ public:
|
||||||
return readerCount() + (_muxer ? _muxer->totalReaderCount() : 0);
|
return readerCount() + (_muxer ? _muxer->totalReaderCount() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置录制状态
|
|
||||||
* @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 enableRtmp 是否转换成rtmp
|
||||||
|
|
@ -115,6 +77,9 @@ public:
|
||||||
_muxer = std::make_shared<MultiMediaSourceMuxer>(getVhost(), getApp(), getId(), _demuxer->getDuration(), false, enableRtmp, enableHls, enableMP4);
|
_muxer = std::make_shared<MultiMediaSourceMuxer>(getVhost(), getApp(), getId(), _demuxer->getDuration(), false, enableRtmp, enableHls, enableMP4);
|
||||||
_muxer->setMediaListener(getListener());
|
_muxer->setMediaListener(getListener());
|
||||||
_muxer->setTrackListener(static_pointer_cast<RtspMediaSourceImp>(shared_from_this()));
|
_muxer->setTrackListener(static_pointer_cast<RtspMediaSourceImp>(shared_from_this()));
|
||||||
|
//让_muxer对象拦截一部分事件(比如说录像相关事件)
|
||||||
|
setListener(_muxer);
|
||||||
|
|
||||||
for(auto &track : _demuxer->getTracks(false)){
|
for(auto &track : _demuxer->getTracks(false)){
|
||||||
_muxer->addTrack(track);
|
_muxer->addTrack(track);
|
||||||
track->addDelegate(_muxer);
|
track->addDelegate(_muxer);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue