From dbb6934a3c3e2c0341ef45f588052f3bba460223 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:20:23 +0100 Subject: [PATCH] server: wait for a packet with DTS equal to PTS before filling RTP-Info --- serverstream.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serverstream.go b/serverstream.go index 9763f5a3..fd034310 100644 --- a/serverstream.go +++ b/serverstream.go @@ -13,9 +13,9 @@ import ( ) type serverStreamTrack struct { - firstPacketSent bool lastSequenceNumber uint16 lastSSRC uint32 + lastTimeFilled bool lastTimeRTP uint32 lastTimeNTP time.Time rtcpSender *rtcpsender.RTCPSender @@ -96,7 +96,7 @@ func (st *ServerStream) rtpInfo(trackID int, now time.Time) (uint16, uint32, boo track := st.streamTracks[trackID] - if !track.firstPacketSent { + if !track.lastTimeFilled { return 0, 0, false } @@ -253,8 +253,8 @@ func (st *ServerStream) WritePacketRTP(trackID int, pkt *rtp.Packet, ptsEqualsDT track := st.streamTracks[trackID] now := time.Now() - if !track.firstPacketSent || ptsEqualsDTS { - track.firstPacketSent = true + if ptsEqualsDTS { + track.lastTimeFilled = true track.lastTimeRTP = pkt.Header.Timestamp track.lastTimeNTP = now }