Track对象新增clone方法

This commit is contained in:
xiongziliang
2018-10-25 23:17:30 +08:00
parent 6a7c76be06
commit 0045d405a5
2 changed files with 15 additions and 2 deletions

View File

@@ -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;