Files
go2rtc/pkg/mp4/consumer_test.go
T
2023-06-29 10:55:43 +03:00

78 lines
1.4 KiB
Go

package mp4
import (
"github.com/AlexxIT/go2rtc/pkg/core"
"github.com/AlexxIT/go2rtc/pkg/h264"
"github.com/pion/rtp"
"github.com/stretchr/testify/require"
"testing"
"time"
)
func TestStartH264(t *testing.T) {
codec := &core.Codec{Name: core.CodecH264}
track := core.NewReceiver(nil, codec)
packetKey := &rtp.Packet{
Header: rtp.Header{Marker: true},
Payload: []byte{h264.NALUTypeIFrame, 0, 0},
}
packetNotKey := &rtp.Packet{
Header: rtp.Header{Marker: true},
Payload: []byte{h264.NALUTypePFrame, 0, 0},
}
cons := &Consumer{}
err := cons.AddTrack(nil, nil, track)
require.Nil(t, err)
track.WriteRTP(packetKey)
time.Sleep(time.Millisecond)
_, err = cons.Init()
require.Nil(t, err)
cons.Start()
track.WriteRTP(packetNotKey)
time.Sleep(time.Millisecond)
require.Zero(t, cons.send)
track.WriteRTP(packetKey)
time.Sleep(time.Millisecond)
require.NotZero(t, cons.send)
}
func TestStartOPUS(t *testing.T) {
// Test for fix this issue
// https://github.com/AlexxIT/go2rtc/issues/404
codec := &core.Codec{Name: core.CodecOpus}
track := core.NewReceiver(nil, codec)
cons := &Consumer{}
err := cons.AddTrack(nil, nil, track)
require.Nil(t, err)
track.WriteRTP(&rtp.Packet{
Payload: []byte{0},
})
time.Sleep(time.Millisecond)
require.Zero(t, cons.send)
_, err = cons.Init()
require.Nil(t, err)
cons.Start()
track.WriteRTP(&rtp.Packet{
Payload: []byte{0},
})
time.Sleep(time.Millisecond)
require.NotZero(t, cons.send)
}