mirror of
https://gitee.com/xia-chu/ZLMediaKit.git
synced 2026-05-21 00:57:50 +08:00
RtpCodec保存和还原Rtp seq
This commit is contained in:
parent
5c92b4e48f
commit
5041cf5ba4
@ -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) {
|
|||||||
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) {
|
|||||||
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:
|
|||||||
* 获取完整的SDP字符串
|
* 获取完整的SDP字符串
|
||||||
* @return SDP字符串
|
* @return SDP字符串
|
||||||
*/
|
*/
|
||||||
std::string getSdp() ;
|
std::string getSdp();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取rtp环形缓存
|
* 获取rtp环形缓存
|
||||||
@ -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:
|
|||||||
|
|
||||||
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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user