mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-24 11:40:37 +08:00
优化rtsp ntp时间戳,防止音视频不同步( #4017 #4018)
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
Linux / build (push) Has been cancelled
macOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
Some checks failed
Android / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Docker / build (push) Has been cancelled
Linux / build (push) Has been cancelled
macOS / build (push) Has been cancelled
Windows / build (push) Has been cancelled
rtp时间戳可能被截断,ntp时间戳生成时优先使用未截断的原始时间戳,防止音视频不同步
This commit is contained in:
parent
51f49d3a89
commit
226b87a633
@ -23,11 +23,10 @@ void RtspMuxer::onRtp(RtpPacket::Ptr in, bool is_key) {
|
|||||||
if (ref.rtp_stamp != in->getHeader()->stamp) {
|
if (ref.rtp_stamp != in->getHeader()->stamp) {
|
||||||
// rtp时间戳变化才计算ntp,节省cpu资源 [AUTO-TRANSLATED:729d54f2]
|
// rtp时间戳变化才计算ntp,节省cpu资源 [AUTO-TRANSLATED:729d54f2]
|
||||||
// Only calculate NTP when the RTP timestamp changes, saving CPU resources
|
// Only calculate NTP when the RTP timestamp changes, saving CPU resources
|
||||||
int64_t stamp_ms = in->getStamp() * uint64_t(1000) / in->sample_rate;
|
|
||||||
int64_t stamp_ms_inc;
|
int64_t stamp_ms_inc;
|
||||||
// 求rtp时间戳增量 [AUTO-TRANSLATED:f6ba022f]
|
// 求rtp时间戳增量 [AUTO-TRANSLATED:f6ba022f]
|
||||||
// Get the RTP timestamp increment
|
// Get the RTP timestamp increment
|
||||||
ref.stamp.revise(stamp_ms, stamp_ms, stamp_ms_inc, stamp_ms_inc);
|
ref.stamp.revise(in->ntp_stamp, in->ntp_stamp, stamp_ms_inc, stamp_ms_inc);
|
||||||
ref.rtp_stamp = in->getHeader()->stamp;
|
ref.rtp_stamp = in->getHeader()->stamp;
|
||||||
ref.ntp_stamp = stamp_ms_inc + _ntp_stamp_start;
|
ref.ntp_stamp = stamp_ms_inc + _ntp_stamp_start;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user