MP4、hls适配新代码

This commit is contained in:
xiongziliang
2018-10-28 00:15:27 +08:00
parent 83a0ee8595
commit 6364b14762
11 changed files with 200 additions and 105 deletions

View File

@@ -83,5 +83,15 @@ bool MediaSink::isAllTrackReady() const {
return _allTrackReady;
}
Track::Ptr MediaSink::getTrack(TrackType type) const {
lock_guard<mutex> lck(_mtx);
for (auto &pr : _track_map){
if(pr.second->getTrackType() == type){
return pr.second;
}
}
return nullptr;
}
}//namespace mediakit

View File

@@ -58,7 +58,7 @@ public:
* 只会克隆sps pps这些信息 而不会克隆Delegate相关关系
* @param track
*/
void addTrack(const Track::Ptr & track);
virtual void addTrack(const Track::Ptr & track);
/**
@@ -66,6 +66,14 @@ public:
* @return
*/
bool isAllTrackReady() const ;
/**
* 获取特定类型的Track
* @param type
* @return
*/
Track::Ptr getTrack(TrackType type) const ;
protected:
/**
* 某track已经准备好其ready()状态返回true
@@ -85,7 +93,7 @@ protected:
*/
virtual void onTrackFrame(const Frame::Ptr &frame) {};
private:
mutex _mtx;
mutable mutex _mtx;
map<int,Track::Ptr> _track_map;
map<int,function<void()> > _trackReadyCallback;
bool _allTrackReady = false;