Commit 5041cf5b by cqm

RtpCodec保存和还原Rtp seq

parent 5c92b4e4
...@@ -84,6 +84,8 @@ public: ...@@ -84,6 +84,8 @@ public:
uint32_t getSsrc() const { uint32_t getSsrc() const {
return _ssrc; return _ssrc;
} }
int16_t getSeq() const {return _seq;}
void setSeq(int16_t seq) {_seq = seq;}
RtpPacket::Ptr makeRtp(TrackType type,const void *data, size_t len, bool mark, uint64_t stamp); RtpPacket::Ptr makeRtp(TrackType type,const void *data, size_t len, bool mark, uint64_t stamp);
......
...@@ -38,6 +38,7 @@ void RtspMuxer::onRtp(RtpPacket::Ptr in, bool is_key) { ...@@ -38,6 +38,7 @@ void RtspMuxer::onRtp(RtpPacket::Ptr in, bool is_key) {
in->ntp_stamp = _ntp_stamp_start + (in->getStamp() * uint64_t(1000) / in->sample_rate); in->ntp_stamp = _ntp_stamp_start + (in->getStamp() * uint64_t(1000) / in->sample_rate);
} }
#endif #endif
_rtp_seq[in->type] = in->getSeq() + 1;
_rtpRing->write(std::move(in), is_key); _rtpRing->write(std::move(in), is_key);
} }
...@@ -71,7 +72,8 @@ bool RtspMuxer::addTrack(const Track::Ptr &track) { ...@@ -71,7 +72,8 @@ bool RtspMuxer::addTrack(const Track::Ptr &track) {
if (!encoder) { if (!encoder) {
return false; return false;
} }
auto rtp = std::dynamic_pointer_cast<RtpInfo>(encoder);
rtp->setSeq(_rtp_seq[track->getTrackType()]);
//设置rtp输出环形缓存 //设置rtp输出环形缓存
encoder->setRtpRing(_rtpInterceptor); encoder->setRtpRing(_rtpInterceptor);
......
...@@ -53,7 +53,7 @@ public: ...@@ -53,7 +53,7 @@ public:
* 获取完整的SDP字符串 * 获取完整的SDP字符串
* @return SDP字符串 * @return SDP字符串
*/ */
std::string getSdp() ; std::string getSdp();
/** /**
* 获取rtp环形缓存 * 获取rtp环形缓存
...@@ -80,7 +80,7 @@ public: ...@@ -80,7 +80,7 @@ public:
/** /**
* 重置所有track * 重置所有track
*/ */
void resetTracks() override ; void resetTracks() override;
private: private:
void onRtp(RtpPacket::Ptr in, bool is_key); void onRtp(RtpPacket::Ptr in, bool is_key);
...@@ -88,6 +88,7 @@ private: ...@@ -88,6 +88,7 @@ private:
private: private:
bool _live = true; bool _live = true;
uint16_t _rtp_seq[TrackMax]{0};
uint32_t _rtp_stamp[TrackMax]{0}; uint32_t _rtp_stamp[TrackMax]{0};
uint64_t _ntp_stamp[TrackMax]{0}; uint64_t _ntp_stamp[TrackMax]{0};
uint64_t _ntp_stamp_start; uint64_t _ntp_stamp_start;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论