Track对象新增clone方法
This commit is contained in:
parent
6a7c76be06
commit
0045d405a5
|
|
@ -48,6 +48,12 @@ public:
|
|||
* @return
|
||||
*/
|
||||
virtual bool ready() = 0;
|
||||
|
||||
/**
|
||||
* 克隆接口,用于复制本对象用
|
||||
* @return
|
||||
*/
|
||||
virtual Track::Ptr clone() = 0;
|
||||
};
|
||||
|
||||
class VideoTrack : public Track {
|
||||
|
|
@ -245,6 +251,9 @@ private:
|
|||
void parseSps(const string &sps){
|
||||
getAVCInfo(sps,_width,_height,_fps);
|
||||
}
|
||||
Track::Ptr clone() override {
|
||||
return std::make_shared<std::remove_reference<decltype(*this)>::type >(*this);
|
||||
}
|
||||
private:
|
||||
string _sps;
|
||||
string _pps;
|
||||
|
|
@ -369,6 +378,9 @@ private:
|
|||
makeAdtsHeader(aac_cfg,aacFrame);
|
||||
getAACInfo(aacFrame,_sampleRate,_channel);
|
||||
}
|
||||
Track::Ptr clone() override {
|
||||
return std::make_shared<std::remove_reference<decltype(*this)>::type >(*this);
|
||||
}
|
||||
private:
|
||||
string _cfg;
|
||||
int _sampleRate = 0;
|
||||
|
|
|
|||
|
|
@ -29,8 +29,9 @@
|
|||
|
||||
namespace mediakit {
|
||||
|
||||
void RtspMuxer::addTrack(const Track::Ptr &track, uint32_t ssrc, int mtu) {
|
||||
//记录该Track
|
||||
void RtspMuxer::addTrack(const Track::Ptr &track_in, uint32_t ssrc, int mtu) {
|
||||
//克隆对象,防止在setDelegate时错误覆盖
|
||||
auto track = track_in->clone();
|
||||
auto codec_id = track->getCodecId();
|
||||
_track_map[codec_id] = track;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue