mirror of
https://github.com/aler9/rtsp-simple-server
synced 2025-09-27 03:56:15 +08:00
85 lines
1.6 KiB
Go
85 lines
1.6 KiB
Go
package codecprocessor
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/bluenviron/gortsplib/v5/pkg/format"
|
|
"github.com/bluenviron/mediamtx/internal/unit"
|
|
"github.com/pion/rtp"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestKlvCreateEncoder(t *testing.T) {
|
|
forma := &format.KLV{
|
|
PayloadTyp: 96,
|
|
}
|
|
p, err := New(1472, forma, false, nil)
|
|
require.NoError(t, err)
|
|
|
|
klvProc := p.(*klv)
|
|
err = klvProc.createEncoder()
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestKlvProcessUnit(t *testing.T) {
|
|
forma := &format.KLV{
|
|
PayloadTyp: 96,
|
|
}
|
|
p, err := New(1472, forma, true, nil)
|
|
require.NoError(t, err)
|
|
|
|
// create test Unit
|
|
theTime := time.Now()
|
|
when := int64(5000000000) // 5 seconds in nanoseconds
|
|
u := unit.KLV{
|
|
Base: unit.Base{
|
|
RTPPackets: nil,
|
|
NTP: theTime,
|
|
PTS: when,
|
|
},
|
|
Unit: []byte{1, 2, 3, 4},
|
|
}
|
|
uu := &u
|
|
|
|
// process the unit
|
|
err = p.ProcessUnit(uu)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
func TestKlvProcessRTPPacket(t *testing.T) {
|
|
forma := &format.KLV{
|
|
PayloadTyp: 96,
|
|
}
|
|
p, err := New(1472, forma, false, nil)
|
|
require.NoError(t, err)
|
|
|
|
pkt := &rtp.Packet{
|
|
Header: rtp.Header{
|
|
Version: 2,
|
|
Marker: true,
|
|
PayloadType: 96,
|
|
SequenceNumber: 3446,
|
|
Timestamp: 175349,
|
|
SSRC: 563423,
|
|
Padding: true,
|
|
},
|
|
Payload: []byte{1, 2, 3, 4},
|
|
PaddingSize: 20,
|
|
}
|
|
_, err = p.ProcessRTPPacket(pkt, time.Time{}, 0, false)
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, &rtp.Packet{
|
|
Header: rtp.Header{
|
|
Version: 2,
|
|
Marker: true,
|
|
PayloadType: 96,
|
|
SequenceNumber: 3446,
|
|
Timestamp: 175349,
|
|
SSRC: 563423,
|
|
},
|
|
Payload: []byte{1, 2, 3, 4},
|
|
}, pkt)
|
|
}
|