Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge remote #8

Open
wants to merge 50 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
d5bb1fd
fix mutex deadlock and improve bandwidth controller
Aug 5, 2024
b9a58b4
fix panic on update stats
Aug 5, 2024
1a5fa8f
fix bitrate controller devide by zero
Aug 5, 2024
acc15cd
upgrade pion to v4.0.0-beta-26
Aug 5, 2024
0824d33
improve bitrate controller and how to handle quality none
Aug 9, 2024
062457c
get target bitrate directly from bw estimator
Aug 9, 2024
d6c0ff7
fix report sender not return on client ended
Aug 9, 2024
ada4269
fix noisy error on audio red encoding
Aug 9, 2024
70f8807
fix error message
Aug 9, 2024
14f93d2
fix available bandwidth calculation
Aug 9, 2024
81b0c38
fix bandwidth allocation on add claims
Aug 9, 2024
44e1c00
fix enable client stats not ended
Aug 9, 2024
c477589
move vad to remote track instead of local track
Aug 10, 2024
f67f436
fix bitrate controller can't increase bitrate
Aug 10, 2024
e5a93fa
fix quality none not increase
Aug 10, 2024
1632301
fix get next quality function
Aug 10, 2024
86e013b
fix svc clientrack get wrong quality
Aug 10, 2024
66b6f33
add view only on example, and fix deadlock on add remove claim
Aug 12, 2024
b781eaa
use sync.Map instead of mutex for bitrate controller
Aug 12, 2024
02676a9
fix audio missing
Aug 12, 2024
a233813
fix scaledown vp9 sometime freeze video
Aug 17, 2024
2aedf08
fix stats and adjust bandwidth adjustment
Aug 19, 2024
4321a79
fix vad stats and adjust bitrate controller
Aug 19, 2024
1a95617
fix divide by zero on vad stats
Aug 19, 2024
54a7f3e
fix track stats
Aug 19, 2024
1023c3c
change quality none won't send packet
Aug 27, 2024
b85c85d
fix the buffer is not putback to pool on error
Sep 9, 2024
2a9a72d
fix double call to readRTCP and try to use NoOpPacer on BWE
tyohan Sep 19, 2024
8e0743e
fix read RTCP return no packets
tyohan Sep 19, 2024
3bfcd7d
remove the log
tyohan Sep 19, 2024
a9c1fc2
clean out bitrate controller log
tyohan Sep 19, 2024
ee7429c
clean clienttrack log
tyohan Sep 19, 2024
8927452
make internaldatavad public
tyohan Sep 26, 2024
982118c
fix vad attributes not set
tyohan Sep 28, 2024
fcccc7e
add some adjustmet for transcription service
tyohan Sep 30, 2024
4a0778e
fix deadlock on meta onchanged
tyohan Sep 30, 2024
08aae6c
Upgrade Pion library to v4.0.0-beta.32
tyohan Oct 7, 2024
b5bdd96
Update to Pion v4.0.0-beta.34
tyohan Oct 8, 2024
0f6e8f3
Update documentation for VAD interceptor
tyohan Oct 9, 2024
7f5123a
Update rtppool package to support adding attributes
tyohan Oct 21, 2024
23203f8
Fix build
tyohan Oct 21, 2024
792a640
Fix packetmanager cause panic
tyohan Oct 21, 2024
6c614d4
Update Pion to v4.0.1
tyohan Oct 29, 2024
3a52945
fix non ice trickle not include candidate
tyohan Oct 30, 2024
a3ca7e2
expose some private functions
tyohan Jan 14, 2025
3e69992
update pion v4.0.7
tyohan Jan 14, 2025
4362622
simplify utils
tyohan Jan 14, 2025
c54c94c
fix rtx codec registration failed
tyohan Jan 16, 2025
013e6f1
add enable SCTP zero checksum
tyohan Jan 18, 2025
e581b2e
remove unsupported video codec from codecs
tyohan Jan 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Upgrade Pion library to v4.0.0-beta.32
  • Loading branch information
tyohan committed Oct 7, 2024
commit 08aae6ca8c44bbe98a9ebd8e81b3836f40a70871
17 changes: 11 additions & 6 deletions clienttracksimulcast.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func (t *simulcastClientTrack) push(p *rtp.Packet, quality QualityLevel) {

var canSwitch bool

if isKeyframe && quality == targetQuality && t.lastQuality.Load() != uint32(targetQuality) {
if isKeyframe && quality == targetQuality && currentQuality != targetQuality {
switch quality {
case QualityHigh:
canSwitch = t.packetmapHigh.Drop(p.SequenceNumber, 0)
Expand All @@ -152,24 +152,29 @@ func (t *simulcastClientTrack) push(p *rtp.Packet, quality QualityLevel) {
}
}

var ok bool
// var newSeqNo uint16

if !canSwitch {
switch quality {
case QualityHigh:
ok, _, _ := t.packetmapHigh.Map(p.SequenceNumber, 0)
ok, _, _ = t.packetmapHigh.Map(p.SequenceNumber, 0)
if !ok {
return
}
case QualityMid:
ok, _, _ := t.packetmapMid.Map(p.SequenceNumber, 0)
ok, _, _ = t.packetmapMid.Map(p.SequenceNumber, 0)
if !ok {
return
}
case QualityLow:
ok, _, _ := t.packetmapLow.Map(p.SequenceNumber, 0)
ok, _, _ = t.packetmapLow.Map(p.SequenceNumber, 0)
if !ok {
return
}
}

// p.SequenceNumber = newSeqNo
}

// check if it's a first packet to send
Expand All @@ -194,13 +199,13 @@ func (t *simulcastClientTrack) push(p *rtp.Packet, quality QualityLevel) {
})
} else if isKeyframe && canSwitch && quality == targetQuality && t.lastQuality.Load() != uint32(targetQuality) {
// change quality to target quality if it's a keyframe
t.client.log.Infof("track: ", t.id, " keyframe ", isKeyframe, " change quality from ", t.lastQuality.Load(), " to ", targetQuality)
t.client.log.Tracef("track: %s keyframe %v change quality from %d to %d ", t.id, isKeyframe, t.lastQuality.Load(), targetQuality)
currentQuality = targetQuality
t.lastQuality.Store(uint32(currentQuality))

} else if quality == targetQuality && !isKeyframe && t.lastQuality.Load() != uint32(targetQuality) {
// request PLI to allow us switch quality to target quality
t.client.log.Infof("track: ", t.id, " keyframe ", isKeyframe, " send keyframe and sequence number ", p.SequenceNumber)
t.client.log.Tracef("track: %s keyframe %v send keyframe and sequence number %d and can switch %v ", t.id, isKeyframe, p.SequenceNumber, canSwitch)
t.remoteTrack.sendPLI()
}

Expand Down
37 changes: 20 additions & 17 deletions codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package sfu

import (
"encoding/binary"
"log"
"strings"
"time"

"github.com/pion/rtp"
"github.com/pion/rtp/codecs"
Expand Down Expand Up @@ -209,7 +211,7 @@ func getH264BlankFrame() []byte {
}

// reuse from pion media engine and media sample
func payloaderForCodec(codec webrtc.RTPCodecCapability) (rtp.Payloader, error) {
func PayloaderForCodec(codec webrtc.RTPCodecCapability) (rtp.Payloader, error) {
switch strings.ToLower(codec.MimeType) {
case strings.ToLower(webrtc.MimeTypeH264):
return &codecs.H264Payloader{}, nil
Expand All @@ -232,25 +234,12 @@ func payloaderForCodec(codec webrtc.RTPCodecCapability) (rtp.Payloader, error) {
}
}

func SendBlackImageFrames(startSequence uint16, localRTP *webrtc.TrackLocalStaticRTP, sample *media.Sample) (uint16, error) {
sequencer := rtp.NewFixedSequencer(startSequence)
payloader, _ := payloaderForCodec(localRTP.Codec())
p := rtp.NewPacketizer(
1450,
0, // Value is handled when writing
0, // Value is handled when writing
payloader,
sequencer,
localRTP.Codec().ClockRate,
)

func SendMediaSamples(p rtp.Packetizer, sequencer rtp.Sequencer, localRTP *webrtc.TrackLocalStaticRTP, sample media.Sample) error {
clockRate := localRTP.Codec().ClockRate

lastSequenceNumber := startSequence

// skip packets by the number of previously dropped packets
for i := uint16(0); i < sample.PrevDroppedPackets; i++ {
lastSequenceNumber = sequencer.NextSequenceNumber()
sequencer.NextSequenceNumber()
}

samples := uint32(sample.Duration.Seconds()) * clockRate
Expand All @@ -261,13 +250,27 @@ func SendBlackImageFrames(startSequence uint16, localRTP *webrtc.TrackLocalStati
packets := p.Packetize(sample.Data, samples)

writeErrs := []error{}

framerate := 30

if localRTP.Kind() == webrtc.RTPCodecTypeAudio {
framerate = 50
}

frameDuration := time.Duration(1000/framerate) * time.Millisecond

ticker := time.NewTicker(frameDuration)
defer ticker.Stop()

for _, p := range packets {
if err := localRTP.WriteRTP(p); err != nil {
log.Println("send packet size: ", len(p.Payload))
writeErrs = append(writeErrs, err)
}
<-ticker.C
}

return lastSequenceNumber + uint16(len(packets)), FlattenErrors(writeErrs)
return FlattenErrors(writeErrs)
}

func getPayloadType(mimeType string) webrtc.PayloadType {
Expand Down
25 changes: 14 additions & 11 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ go 1.21
// replace github.com/pion/interceptor => ../../pion/pion-interceptor

require (
github.com/pion/interceptor v0.1.29
github.com/pion/interceptor v0.1.36
github.com/pion/rtcp v1.2.14
github.com/stretchr/testify v1.9.0
)
Expand All @@ -15,35 +15,38 @@ require (
github.com/jaevor/go-nanoid v1.3.0
github.com/pion/ice/v3 v3.0.16
github.com/pion/turn/v3 v3.0.3
github.com/pion/webrtc/v4 v4.0.0-beta.27
github.com/pion/webrtc/v4 v4.0.0-beta.32
golang.org/x/exp v0.0.0-20230905200255-921286631fa9
golang.org/x/text v0.16.0
golang.org/x/text v0.19.0
)

require (
github.com/pion/dtls/v3 v3.0.0 // indirect
github.com/pion/dtls/v3 v3.0.3 // indirect
github.com/pion/ice/v4 v4.0.1 // indirect
github.com/pion/mdns/v2 v2.0.7 // indirect
github.com/pion/srtp/v3 v3.0.3 // indirect
github.com/pion/srtp/v3 v3.0.4 // indirect
github.com/pion/stun/v2 v2.0.0 // indirect
github.com/pion/stun/v3 v3.0.0 // indirect
github.com/pion/transport/v3 v3.0.7 // indirect
github.com/pion/turn/v4 v4.0.0 // indirect
github.com/wlynxg/anet v0.0.3 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/google/uuid v1.6.0
github.com/pion/datachannel v1.5.8 // indirect
github.com/pion/datachannel v1.5.9 // indirect
github.com/pion/dtls/v2 v2.2.12 // indirect
github.com/pion/logging v0.2.2
github.com/pion/randutil v0.1.0 // indirect
github.com/pion/rtp v1.8.8
github.com/pion/sctp v1.8.20 // indirect
github.com/pion/rtp v1.8.9
github.com/pion/sctp v1.8.33 // indirect
github.com/pion/sdp/v3 v3.0.9
github.com/pion/transport/v2 v2.2.8 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/crypto v0.25.0 // indirect
golang.org/x/net v0.27.0 // direct
golang.org/x/sys v0.22.0
golang.org/x/crypto v0.28.0 // indirect
golang.org/x/net v0.29.0 // direct
golang.org/x/sys v0.26.0
gopkg.in/yaml.v3 v3.0.1 // indirect
)
50 changes: 28 additions & 22 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,19 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/pion/datachannel v1.5.8 h1:ph1P1NsGkazkjrvyMfhRBUAWMxugJjq2HfQifaOoSNo=
github.com/pion/datachannel v1.5.8/go.mod h1:PgmdpoaNBLX9HNzNClmdki4DYW5JtI7Yibu8QzbL3tI=
github.com/pion/datachannel v1.5.9 h1:LpIWAOYPyDrXtU+BW7X0Yt/vGtYxtXQ8ql7dFfYUVZA=
github.com/pion/datachannel v1.5.9/go.mod h1:kDUuk4CU4Uxp82NH4LQZbISULkX/HtzKa4P7ldf9izE=
github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s=
github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk=
github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE=
github.com/pion/dtls/v3 v3.0.0 h1:m2hzwPkzqoBjVKXm5ymNuX01OAjht82TdFL6LoTzgi4=
github.com/pion/dtls/v3 v3.0.0/go.mod h1:tiX7NaneB0wNoRaUpaMVP7igAlkMCTQkbpiY+OfeIi0=
github.com/pion/dtls/v3 v3.0.3 h1:j5ajZbQwff7Z8k3pE3S+rQ4STvKvXUdKsi/07ka+OWM=
github.com/pion/dtls/v3 v3.0.3/go.mod h1:weOTUyIV4z0bQaVzKe8kpaP17+us3yAuiQsEAG1STMU=
github.com/pion/ice/v3 v3.0.16 h1:YoPlNg3jU1UT/DDTa9v/g1vH6A2/pAzehevI1o66H8E=
github.com/pion/ice/v3 v3.0.16/go.mod h1:SdmubtIsCcvdb1ZInrTUz7Iaqi90/rYd1pzbzlMxsZg=
github.com/pion/interceptor v0.1.29 h1:39fsnlP1U8gw2JzOFWdfCU82vHvhW9o0rZnZF56wF+M=
github.com/pion/interceptor v0.1.29/go.mod h1:ri+LGNjRUc5xUNtDEPzfdkmSqISixVTBF/z/Zms/6T4=
github.com/pion/ice/v4 v4.0.1 h1:2d3tPoTR90F3TcGYeXUwucGlXI3hds96cwv4kjZmb9s=
github.com/pion/ice/v4 v4.0.1/go.mod h1:2dpakjpd7+74L5j3TAe6gvkbI5UIzOgAnkimm9SuHvA=
github.com/pion/interceptor v0.1.36 h1:WNOZUs5Vec3+NHeY6uGo4nvbxCcRglrI//DlUwLnl/M=
github.com/pion/interceptor v0.1.36/go.mod h1:JzxbJ4umVTlZAf+/utHzNesY8tmRkM2lVmkS82TTj8Y=
github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY=
github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms=
github.com/pion/mdns/v2 v2.0.7 h1:c9kM8ewCgjslaAmicYMFQIde2H9/lrZpjBkN8VwoVtM=
Expand All @@ -30,16 +32,18 @@ github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA=
github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8=
github.com/pion/rtcp v1.2.14 h1:KCkGV3vJ+4DAJmvP0vaQShsb0xkRfWkO540Gy102KyE=
github.com/pion/rtcp v1.2.14/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4=
github.com/pion/rtp v1.8.8 h1:EtYFHI0rpUEjT/RMnGfb1vdJhbYmPG77szD72uUnSxs=
github.com/pion/rtp v1.8.8/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU=
github.com/pion/sctp v1.8.20 h1:sOc3lkV/tQaP57ZUEXIMdM2V92IIB2ia5v/ygnBxaEg=
github.com/pion/sctp v1.8.20/go.mod h1:oTxw8i5m+WbDHZJL/xUpe6CPIn1Y0GIKKwTLF4h53H8=
github.com/pion/rtp v1.8.9 h1:E2HX740TZKaqdcPmf4pw6ZZuG8u5RlMMt+l3dxeu6Wk=
github.com/pion/rtp v1.8.9/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU=
github.com/pion/sctp v1.8.33 h1:dSE4wX6uTJBcNm8+YlMg7lw1wqyKHggsP5uKbdj+NZw=
github.com/pion/sctp v1.8.33/go.mod h1:beTnqSzewI53KWoG3nqB282oDMGrhNxBdb+JZnkCwRM=
github.com/pion/sdp/v3 v3.0.9 h1:pX++dCHoHUwq43kuwf3PyJfHlwIj4hXA7Vrifiq0IJY=
github.com/pion/sdp/v3 v3.0.9/go.mod h1:B5xmvENq5IXJimIO4zfp6LAe1fD9N+kFv+V/1lOdz8M=
github.com/pion/srtp/v3 v3.0.3 h1:tRtEOpmR8NtsB/KndlKXFOj/AIIs6aPrCq4TlAatC4M=
github.com/pion/srtp/v3 v3.0.3/go.mod h1:Bp9ztzPCoE0ETca/R+bTVTO5kBgaQMiQkTmZWwazDTc=
github.com/pion/srtp/v3 v3.0.4 h1:2Z6vDVxzrX3UHEgrUyIGM4rRouoC7v+NiF1IHtp9B5M=
github.com/pion/srtp/v3 v3.0.4/go.mod h1:1Jx3FwDoxpRaTh1oRV8A/6G1BnFL+QI82eK4ms8EEJQ=
github.com/pion/stun/v2 v2.0.0 h1:A5+wXKLAypxQri59+tmQKVs7+l6mMM+3d+eER9ifRU0=
github.com/pion/stun/v2 v2.0.0/go.mod h1:22qRSh08fSEttYUmJZGlriq9+03jtVmXNODgLccj8GQ=
github.com/pion/stun/v3 v3.0.0 h1:4h1gwhWLWuZWOJIJR9s2ferRO+W3zA/b6ijOI6mKzUw=
github.com/pion/stun/v3 v3.0.0/go.mod h1:HvCN8txt8mwi4FBvS3EmDghW6aQJ24T+y+1TKjB5jyU=
github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g=
github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0=
github.com/pion/transport/v2 v2.2.8 h1:HzsqGBChgtF4Cj47gu51l5hONuK/NwgbZL17CMSuwS0=
Expand All @@ -49,8 +53,10 @@ github.com/pion/transport/v3 v3.0.7 h1:iRbMH05BzSNwhILHoBoAPxoB9xQgOaJk+591KC9P1
github.com/pion/transport/v3 v3.0.7/go.mod h1:YleKiTZ4vqNxVwh77Z0zytYi7rXHl7j6uPLGhhz9rwo=
github.com/pion/turn/v3 v3.0.3 h1:1e3GVk8gHZLPBA5LqadWYV60lmaKUaHCkm9DX9CkGcE=
github.com/pion/turn/v3 v3.0.3/go.mod h1:vw0Dz420q7VYAF3J4wJKzReLHIo2LGp4ev8nXQexYsc=
github.com/pion/webrtc/v4 v4.0.0-beta.27 h1:dp5xUnzbNSI8VN0yADjrstHI+YBIgSLek28sv03MQzQ=
github.com/pion/webrtc/v4 v4.0.0-beta.27/go.mod h1:EOEk3QX1N2YmCsntm7aMFgqvUfkUyB9NK7PjfXlFBJY=
github.com/pion/turn/v4 v4.0.0 h1:qxplo3Rxa9Yg1xXDxxH8xaqcyGUtbHYw4QSCvmFWvhM=
github.com/pion/turn/v4 v4.0.0/go.mod h1:MuPDkm15nYSklKpN8vWJ9W2M0PlyQZqYt1McGuxG7mA=
github.com/pion/webrtc/v4 v4.0.0-beta.32 h1:SzNCX9zQXc/h67pZM+MysIKuDbo4nfWPj2ZVfIQkGFQ=
github.com/pion/webrtc/v4 v4.0.0-beta.32/go.mod h1:fvvgzjapV3O0Sb5+9QLs1pKdazJotFROycN4yJLfufU=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
Expand All @@ -71,8 +77,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g=
golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
Expand All @@ -85,8 +91,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand All @@ -100,8 +106,8 @@ golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
Expand All @@ -116,8 +122,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
Expand Down
14 changes: 7 additions & 7 deletions packetbuffers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ func TestFlush(t *testing.T) {
require.Equal(t, len(sortedNumbers), len(sorted), "sorted length should be equal to sortedNumbers length")

for i, pkt := range sorted {
require.Equal(t, pkt.packet.Header().SequenceNumber, sortedNumbers[i], fmt.Sprintf("packet sequence number %d should be equal to sortedNumbers sequence number %d", pkt.packet.Header().SequenceNumber, sortedNumbers[i]))
require.Equal(t, pkt.Packet.Header().SequenceNumber, sortedNumbers[i], fmt.Sprintf("packet sequence number %d should be equal to sortedNumbers sequence number %d", pkt.Packet.Header().SequenceNumber, sortedNumbers[i]))
}
}

Expand Down Expand Up @@ -243,7 +243,7 @@ func TestFlushBetweenAdded(t *testing.T) {
require.Equal(t, len(sortedNumbers), len(sorted), "sorted length should be equal to sortedNumbers length")

for i, pkt := range sorted {
require.Equal(t, pkt.packet.Header().SequenceNumber, sortedNumbers[i], fmt.Sprintf("packet sequence number %d should be equal to sortedNumbers sequence number %d", pkt.packet.Header().SequenceNumber, sortedNumbers[i]))
require.Equal(t, pkt.Packet.Header().SequenceNumber, sortedNumbers[i], fmt.Sprintf("packet sequence number %d should be equal to sortedNumbers sequence number %d", pkt.Packet.Header().SequenceNumber, sortedNumbers[i]))
}
}

Expand Down Expand Up @@ -288,7 +288,7 @@ func TestLatency(t *testing.T) {
dropped++
}
for _, pkt := range sorted {
resultsSeqs = append(resultsSeqs, pkt.packet.Header().SequenceNumber)
resultsSeqs = append(resultsSeqs, pkt.Packet.Header().SequenceNumber)
}
require.Equal(t, 6, len(sorted), "sorted length should be equal to 6, result ", resultsSeqs, seqs)
} else if pkt.Header.SequenceNumber == 0 {
Expand All @@ -302,7 +302,7 @@ func TestLatency(t *testing.T) {
dropped++
}
for _, pkt := range sorted {
resultsSeqs = append(resultsSeqs, pkt.packet.Header().SequenceNumber)
resultsSeqs = append(resultsSeqs, pkt.Packet.Header().SequenceNumber)
}
// from 15 packets added, 3 packets will be dropped because it's too late
require.Equal(t, 13, len(sorted), "sorted length should be equal to 13, result ", resultsSeqs, seqs)
Expand Down Expand Up @@ -366,11 +366,11 @@ func BenchmarkPopPool(b *testing.B) {
p := packetBuffers.Pop()
if p != nil {
rtp := pool.GetPacket()
rtp.Header = *p.packet.Header()
rtp.Payload = p.packet.Payload()
rtp.Header = *p.Packet.Header()
rtp.Payload = p.Packet.Payload()

// b.Logf("packet sequence %d", rtpPacket.SequenceNumber)
p.packet.Release()
p.Packet.Release()

pool.PutPacket(rtp)
}
Expand Down
2 changes: 1 addition & 1 deletion testhelper.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (

"github.com/google/uuid"
"github.com/inlivedev/sfu/pkg/interceptors/simulcast"
"github.com/pion/ice/v3"
"github.com/pion/ice/v4"
"github.com/pion/interceptor"
"github.com/pion/interceptor/pkg/stats"
"github.com/pion/logging"
Expand Down