mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-19 06:42:21 +08:00
完善获取媒体读取器个数方法
This commit is contained in:
Submodule 3rdpart/ZLToolKit updated: 8f656dfdff...079fae2798
@@ -54,10 +54,13 @@ public:
|
||||
//拖动进度条
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool close() {
|
||||
//通知其停止推流
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual void onReaderChanged(const EventPoller::Ptr &poller,int size,bool add_flag){}
|
||||
};
|
||||
class MediaInfo
|
||||
{
|
||||
@@ -166,6 +169,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
virtual int readerCount() = 0;
|
||||
protected:
|
||||
void regist() ;
|
||||
bool unregist() ;
|
||||
|
||||
@@ -64,6 +64,10 @@ public:
|
||||
return _pRing;
|
||||
}
|
||||
|
||||
int readerCount() override {
|
||||
return _pRing->readerCount();
|
||||
}
|
||||
|
||||
const AMFValue &getMetaData() const {
|
||||
lock_guard<recursive_mutex> lock(_mtxMap);
|
||||
return _metadata;
|
||||
@@ -87,7 +91,7 @@ public:
|
||||
_mapCfgFrame[pkt->typeId] = pkt;
|
||||
} else{
|
||||
if(!_bRegisted){
|
||||
MediaSource::regist();
|
||||
regist();
|
||||
_bRegisted = true;
|
||||
}
|
||||
_mapStamp[pkt->typeId] = pkt->timeStamp;
|
||||
|
||||
@@ -89,6 +89,10 @@ public:
|
||||
_rtspMuxer->setListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
int readerCount() override {
|
||||
return RtmpMediaSource::readerCount() + _rtspMuxer->readerCount();
|
||||
}
|
||||
private:
|
||||
RtmpDemuxer::Ptr _rtmpDemuxer;
|
||||
RtspMediaSourceMuxer::Ptr _rtspMuxer;
|
||||
|
||||
@@ -65,7 +65,12 @@ public:
|
||||
//获取媒体源的rtp环形缓冲
|
||||
return _pRing;
|
||||
}
|
||||
const string& getSdp() const {
|
||||
|
||||
int readerCount() override {
|
||||
return _pRing->readerCount();
|
||||
}
|
||||
|
||||
const string& getSdp() const {
|
||||
//获取该源的媒体描述信息
|
||||
return _strSdp;
|
||||
}
|
||||
|
||||
@@ -716,7 +716,7 @@ bool RtspSession::handleReq_Play(const Parser &parser) {
|
||||
auto iStartTime = 1000 * atof(strStart.data());
|
||||
InfoL << "rtsp seekTo(ms):" << iStartTime;
|
||||
useBuf = !pMediaSrc->seekTo(iStartTime);
|
||||
}else if(pMediaSrc->getRing()->readerCount() == 0){
|
||||
}else if(pMediaSrc->readerCount() == 0){
|
||||
//第一个消费者
|
||||
pMediaSrc->seekTo(0);
|
||||
}
|
||||
|
||||
@@ -85,6 +85,9 @@ public:
|
||||
_rtmpMuxer->setListener(listener);
|
||||
}
|
||||
}
|
||||
int readerCount() override {
|
||||
return RtspMediaSource::readerCount() + _rtmpMuxer->readerCount();
|
||||
}
|
||||
private:
|
||||
RtspDemuxer::Ptr _rtspDemuxer;
|
||||
RtmpMediaSourceMuxer::Ptr _rtmpMuxer;
|
||||
|
||||
Reference in New Issue
Block a user