mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-07-06 19:58:10 +08:00
完善seek相关的逻辑
This commit is contained in:
@@ -84,12 +84,18 @@ public:
|
||||
}
|
||||
return track->_seq;
|
||||
}
|
||||
virtual uint32_t getTimeStamp(TrackType trackType) {
|
||||
|
||||
uint32_t getTimeStamp(TrackType trackType) override {
|
||||
auto track = _sdpAttr.getTrack(trackType);
|
||||
if(!track){
|
||||
return 0;
|
||||
if(track) {
|
||||
return track->_time_stamp;
|
||||
}
|
||||
auto tracks = _sdpAttr.getAvailableTrack();
|
||||
switch (tracks.size()){
|
||||
case 0: return 0;
|
||||
case 1: return tracks[0]->_time_stamp;
|
||||
default:return MAX(tracks[0]->_time_stamp,tracks[1]->_time_stamp);
|
||||
}
|
||||
return track->_time_stamp;
|
||||
}
|
||||
|
||||
virtual void setTimeStamp(uint32_t uiStamp) {
|
||||
|
||||
@@ -723,13 +723,13 @@ bool RtspSession::handleReq_Play() {
|
||||
auto iStartTime = 1000 * atof(strStart.data());
|
||||
InfoL << "rtsp seekTo(ms):" << iStartTime;
|
||||
pMediaSrc->seekTo(iStartTime);
|
||||
iStamp = pMediaSrc->getStamp();
|
||||
iStamp = pMediaSrc->getTimeStamp(TrackInvalid);
|
||||
}else if(pMediaSrc->getRing()->readerCount() == 1){
|
||||
//第一个消费者
|
||||
pMediaSrc->seekTo(0);
|
||||
iStamp = 0;
|
||||
}else{
|
||||
iStamp = pMediaSrc->getStamp();
|
||||
iStamp = pMediaSrc->getTimeStamp(TrackInvalid);
|
||||
}
|
||||
|
||||
for(auto &track : _aTrackInfo){
|
||||
|
||||
Reference in New Issue
Block a user