mirror of
https://github.com/aler9/gortsplib
synced 2025-10-07 08:01:14 +08:00
implement rtcp sender reports
This commit is contained in:
57
pkg/rtcpsender/rtcpsender_test.go
Normal file
57
pkg/rtcpsender/rtcpsender_test.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package rtcpsender
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/pion/rtcp"
|
||||
"github.com/pion/rtp"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/aler9/gortsplib/pkg/base"
|
||||
)
|
||||
|
||||
func TestRtcpSender(t *testing.T) {
|
||||
rs := New()
|
||||
|
||||
rtpPkt := rtp.Packet{
|
||||
Header: rtp.Header{
|
||||
Version: 2,
|
||||
Marker: true,
|
||||
PayloadType: 96,
|
||||
SequenceNumber: 946,
|
||||
Timestamp: 1287987768,
|
||||
SSRC: 0xba9da416,
|
||||
},
|
||||
Payload: []byte("\x00\x00"),
|
||||
}
|
||||
byts, _ := rtpPkt.Marshal()
|
||||
ts := time.Date(2008, 05, 20, 22, 15, 20, 0, time.UTC)
|
||||
rs.OnFrame(ts, base.StreamTypeRtp, byts)
|
||||
|
||||
rtpPkt = rtp.Packet{
|
||||
Header: rtp.Header{
|
||||
Version: 2,
|
||||
Marker: true,
|
||||
PayloadType: 96,
|
||||
SequenceNumber: 947,
|
||||
Timestamp: 1287987768 + 45000,
|
||||
SSRC: 0xba9da416,
|
||||
},
|
||||
Payload: []byte("\x00\x00"),
|
||||
}
|
||||
byts, _ = rtpPkt.Marshal()
|
||||
ts = time.Date(2008, 05, 20, 22, 15, 20, 500000000, time.UTC)
|
||||
rs.OnFrame(ts, base.StreamTypeRtp, byts)
|
||||
|
||||
expectedPkt := rtcp.SenderReport{
|
||||
SSRC: 0xba9da416,
|
||||
NTPTime: 0xcbddcc34999997ff,
|
||||
RTPTime: 0x4d185ae8,
|
||||
PacketCount: 2,
|
||||
OctetCount: 4,
|
||||
}
|
||||
expected, _ := expectedPkt.Marshal()
|
||||
ts = time.Date(2008, 05, 20, 22, 16, 20, 600000000, time.UTC)
|
||||
require.Equal(t, expected, rs.Report(ts))
|
||||
}
|
Reference in New Issue
Block a user