diff --git a/src/Player/PlayerBase.h b/src/Player/PlayerBase.h index 43324b71..466558b2 100644 --- a/src/Player/PlayerBase.h +++ b/src/Player/PlayerBase.h @@ -49,6 +49,15 @@ public: virtual float getDuration() const { return 0;} virtual bool isInited() const { return true; } virtual vector getTracks() const { return vector();} + virtual Track::Ptr getTrack(TrackType type) const { + auto tracks = getTracks(); + for(auto &track : tracks){ + if(track->getTrackType() == type){ + return track; + } + } + return nullptr; + } }; @@ -85,9 +94,9 @@ public: virtual float getProgress() const { return 0;} virtual void seekTo(float fProgress) {} + virtual void setMediaSouce(const MediaSource::Ptr & src) {} - //TrackVideo = 0, TrackAudio = 1 - virtual float getRtpLossRate(int trackType) const {return 0; } + virtual float getRtpLossRate(TrackType trackType) const {return 0; } protected: virtual void onShutdown(const SockException &ex) {} virtual void onPlayResult(const SockException &ex) {} diff --git a/src/Rtsp/RtspPlayer.cpp b/src/Rtsp/RtspPlayer.cpp index 86673030..64220b59 100644 --- a/src/Rtsp/RtspPlayer.cpp +++ b/src/Rtsp/RtspPlayer.cpp @@ -684,8 +684,8 @@ void RtspPlayer::onRecvRTP_l(const RtpPacket::Ptr &rtppt, int trackidx){ onRecvRTP_l(rtppt,_aTrackInfo[trackidx]); } -float RtspPlayer::getRtpLossRate(int iTrackType) const{ - int iTrackIdx = getTrackIndexByTrackType((TrackType)iTrackType); +float RtspPlayer::getRtpLossRate(TrackType type) const{ + int iTrackIdx = getTrackIndexByTrackType(type); if(iTrackIdx == -1){ uint64_t totalRecv = 0; uint64_t totalSend = 0; diff --git a/src/Rtsp/RtspPlayer.h b/src/Rtsp/RtspPlayer.h index f05b0908..3abb7041 100644 --- a/src/Rtsp/RtspPlayer.h +++ b/src/Rtsp/RtspPlayer.h @@ -55,7 +55,7 @@ public: void play(const char* strUrl) override; void pause(bool bPause) override; void teardown() override; - float getRtpLossRate(int iTrackType) const override; + float getRtpLossRate(TrackType type) const override; protected: //派生类回调函数 virtual bool onCheckSDP(const string &strSdp, const SdpAttr &sdpAttr) = 0;