mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-03 00:47:34 +08:00
精简代码,改善代码结构
This commit is contained in:
@@ -61,26 +61,14 @@ public:
|
||||
* 输入rtmp并解析
|
||||
*/
|
||||
void onWrite(const RtmpPacket::Ptr &pkt,bool key_pos = true) override {
|
||||
if(_all_track_ready && !_muxer->isEnabled()){
|
||||
if (_all_track_ready && !_muxer->isEnabled()) {
|
||||
//获取到所有Track后,并且未开启转协议,那么不需要解复用rtmp
|
||||
key_pos = pkt->isVideoKeyFrame();
|
||||
}else{
|
||||
} else {
|
||||
//需要解复用rtmp
|
||||
key_pos = _demuxer->inputRtmp(pkt);
|
||||
}
|
||||
|
||||
RtmpMediaSource::onWrite(pkt,key_pos);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置监听器
|
||||
* @param listener
|
||||
*/
|
||||
void setListener(const std::weak_ptr<MediaSourceEvent> &listener) override {
|
||||
RtmpMediaSource::setListener(listener);
|
||||
if(_muxer){
|
||||
_muxer->setMediaListener(listener);
|
||||
}
|
||||
RtmpMediaSource::onWrite(pkt, key_pos);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,33 +78,6 @@ public:
|
||||
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
|
||||
@@ -128,6 +89,9 @@ public:
|
||||
_muxer = std::make_shared<MultiMediaSourceMuxer>(getVhost(), getApp(), getId(), _demuxer->getDuration(), enableRtsp, false, enableHls, enableMP4);
|
||||
_muxer->setMediaListener(getListener());
|
||||
_muxer->setTrackListener(static_pointer_cast<RtmpMediaSourceImp>(shared_from_this()));
|
||||
//让_muxer对象拦截一部分事件(比如说录像相关事件)
|
||||
setListener(_muxer);
|
||||
|
||||
for(auto &track : _demuxer->getTracks(false)){
|
||||
_muxer->addTrack(track);
|
||||
track->addDelegate(_muxer);
|
||||
|
||||
Reference in New Issue
Block a user