mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2025-02-17 13:29:56 +08:00
修复写两次Track的bug
This commit is contained in:
parent
c03ea1d893
commit
affc98f927
@ -49,8 +49,9 @@ public:
|
||||
* @param track 媒体描述
|
||||
*/
|
||||
void addTrack(const Track::Ptr & track) {
|
||||
_rtmp->addTrack(track);
|
||||
_rtsp->addTrack(track);
|
||||
//克隆track的目的是防止inputFrame时由于用的同一个track而导致写入两次数据
|
||||
_rtmp->addTrack(track->clone());
|
||||
_rtsp->addTrack(track->clone());
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,6 +59,7 @@ public:
|
||||
* @param frame 帧数据
|
||||
*/
|
||||
void inputFrame(const Frame::Ptr &frame) override {
|
||||
//_rtmp和_rtsp对象不能使用相同的Track,否则会触发两次inputFrame操作
|
||||
_rtmp->inputFrame(frame);
|
||||
_rtsp->inputFrame(frame);
|
||||
}
|
||||
|
@ -68,7 +68,6 @@ public:
|
||||
typedef std::shared_ptr<RtmpRing> Ptr;
|
||||
|
||||
RtmpRing(){
|
||||
_rtmpRing = std::make_shared<RingType>();
|
||||
}
|
||||
virtual ~RtmpRing(){}
|
||||
|
||||
@ -81,7 +80,9 @@ public:
|
||||
}
|
||||
|
||||
bool inputRtmp(const RtmpPacket::Ptr &rtmp, bool key_pos) override{
|
||||
_rtmpRing->write(rtmp,key_pos);
|
||||
if(_rtmpRing){
|
||||
_rtmpRing->write(rtmp,key_pos);
|
||||
}
|
||||
return key_pos;
|
||||
}
|
||||
protected:
|
||||
|
@ -85,7 +85,6 @@ public:
|
||||
typedef std::shared_ptr<RtpRing> Ptr;
|
||||
|
||||
RtpRing(){
|
||||
_rtpRing = std::make_shared<RingType>();
|
||||
}
|
||||
virtual ~RtpRing(){}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user