From 1cff9468483e6c3efa1019257b07be5373f6806c Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Thu, 22 Aug 2019 17:48:10 +0800 Subject: [PATCH] =?UTF-8?q?MediaSource=E7=B1=BB=E6=B7=BB=E5=8A=A0getTracks?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- release/windows/Release/flv.lib | Bin 85610 -> 0 bytes src/Common/MediaSource.h | 8 ++++++++ src/Rtmp/RtmpToRtspMediaSource.h | 11 +++++++++++ src/Rtsp/RtspToRtmpMediaSource.h | 11 +++++++++++ 4 files changed, 30 insertions(+) delete mode 100644 release/windows/Release/flv.lib diff --git a/release/windows/Release/flv.lib b/release/windows/Release/flv.lib deleted file mode 100644 index 15c1d2086691ccae495296888447788158061818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85610 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 diff --git a/src/Common/MediaSource.h b/src/Common/MediaSource.h index 8a560997..a54bc8d8 100644 --- a/src/Common/MediaSource.h +++ b/src/Common/MediaSource.h @@ -186,6 +186,14 @@ public: } virtual int readerCount() = 0; + + /** + * 获取track + * @return + */ + virtual vector getTracks(bool trackReady) const{ + return vector(0); + } protected: void regist() ; bool unregist() ; diff --git a/src/Rtmp/RtmpToRtspMediaSource.h b/src/Rtmp/RtmpToRtspMediaSource.h index 98c059f2..4b8138b6 100644 --- a/src/Rtmp/RtmpToRtspMediaSource.h +++ b/src/Rtmp/RtmpToRtspMediaSource.h @@ -96,6 +96,17 @@ public: int readerCount() override { return RtmpMediaSource::readerCount() + (_muxer ? _muxer->readerCount() : 0); } + + /** + * 获取track + * @return + */ + vector getTracks(bool trackReady) const override { + if(!_demuxer){ + return this->RtmpMediaSource::getTracks(trackReady); + } + return _demuxer->getTracks(trackReady); + } private: RtmpDemuxer::Ptr _demuxer; MultiMediaSourceMuxer::Ptr _muxer; diff --git a/src/Rtsp/RtspToRtmpMediaSource.h b/src/Rtsp/RtspToRtmpMediaSource.h index c5a165e4..04980dff 100644 --- a/src/Rtsp/RtspToRtmpMediaSource.h +++ b/src/Rtsp/RtspToRtmpMediaSource.h @@ -88,6 +88,17 @@ public: int readerCount() override { return RtspMediaSource::readerCount() + (_muxer ? _muxer->readerCount() : 0); } + + /** + * 获取track + * @return + */ + vector getTracks(bool trackReady) const override { + if(!_demuxer){ + return this->RtspMediaSource::getTracks(trackReady); + } + return _demuxer->getTracks(trackReady); + } private: RtspDemuxer::Ptr _demuxer; MultiMediaSourceMuxer::Ptr _muxer;