diff --git a/client_play_test.go b/client_play_test.go index 34e131b1..1c4f6511 100644 --- a/client_play_test.go +++ b/client_play_test.go @@ -28,26 +28,6 @@ import ( "github.com/bluenviron/mediacommon/v2/pkg/codecs/mpeg4audio" ) -func stringPtr(v string) *string { - return &v -} - -func ipPtr(v net.IP) *net.IP { - return &v -} - -func deliveryPtr(v headers.TransportDelivery) *headers.TransportDelivery { - return &v -} - -func transportPtr(v TransportProtocol) *TransportProtocol { - return &v -} - -func transportModePtr(v headers.TransportMode) *headers.TransportMode { - return &v -} - func mediasToSDP(medias []*description.Media) []byte { desc := &description.Session{ Medias: medias, @@ -212,7 +192,7 @@ func TestClientPlayFormats(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolUDP, ClientPorts: inTH.ClientPorts, ServerPorts: &[2]int{34556 + i*2, 34557 + i*2}, @@ -465,7 +445,7 @@ func TestClientPlay(t *testing.T) { v := headers.TransportDeliveryMulticast th.Delivery = &v th.Protocol = headers.TransportProtocolUDP - th.Destination2 = stringPtr("224.1.0.1") + th.Destination2 = ptrOf("224.1.0.1") th.Ports = &[2]int{25000 + i*2, 25001 + i*2} l1s[i], err2 = net.ListenPacket("udp", net.JoinHostPort("224.0.0.0", strconv.FormatInt(int64(th.Ports[0]), 10))) @@ -1003,7 +983,7 @@ func TestClientPlayPartial(t *testing.T) { require.Equal(t, &[2]int{0, 1}, inTH.InterleavedIDs) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: inTH.InterleavedIDs, } @@ -1051,7 +1031,7 @@ func TestClientPlayPartial(t *testing.T) { c := Client{ Scheme: u.Scheme, Host: u.Host, - Transport: transportPtr(TransportTCP), + Transport: ptrOf(TransportTCP), } err = c.Start2() @@ -1157,7 +1137,7 @@ func TestClientPlayContentBase(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolUDP, ClientPorts: inTH.ClientPorts, ServerPorts: &[2]int{34556, 34557}, @@ -1282,7 +1262,7 @@ func TestClientPlayAnyPort(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), ClientPorts: th.ClientPorts, ServerPorts: func() *[2]int { switch ca { @@ -1441,7 +1421,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, }.Marshal(), }, @@ -1543,7 +1523,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, ServerPorts: &[2]int{12312, 12313}, }.Marshal(), @@ -1614,7 +1594,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, }.Marshal(), }, @@ -1736,7 +1716,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) { require.NoError(t, err) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolUDP, ServerPorts: &[2]int{34556, 34557}, ClientPorts: inTH.ClientPorts, @@ -1833,7 +1813,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: inTH.InterleavedIDs, } @@ -1954,7 +1934,7 @@ func TestClientPlayDifferentInterleavedIDs(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{1, 2}, // use odd value } @@ -1997,7 +1977,7 @@ func TestClientPlayDifferentInterleavedIDs(t *testing.T) { packetRecv := make(chan struct{}) c := Client{ - Transport: transportPtr(TransportTCP), + Transport: ptrOf(TransportTCP), } err = readAll(&c, "rtsp://localhost:8554/teststream", @@ -2148,7 +2128,7 @@ func TestClientPlayRedirect(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), ClientPorts: th.ClientPorts, ServerPorts: &[2]int{34556, 34557}, }.Marshal(), @@ -2360,7 +2340,7 @@ func TestClientPlayPausePlay(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if transport == "udp" { @@ -2537,7 +2517,7 @@ func TestClientPlayRTCPReport(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), ServerPorts: &[2]int{27556, 27557}, ClientPorts: inTH.ClientPorts, }.Marshal(), @@ -2696,7 +2676,7 @@ func TestClientPlayErrorTimeout(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } var l1 net.PacketConn @@ -2839,7 +2819,7 @@ func TestClientPlayIgnoreTCPInvalidMedia(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } th.Protocol = headers.TransportProtocolTCP th.InterleavedIDs = inTH.InterleavedIDs @@ -2886,7 +2866,7 @@ func TestClientPlayIgnoreTCPInvalidMedia(t *testing.T) { recv := make(chan struct{}) c := Client{ - Transport: transportPtr(TransportTCP), + Transport: ptrOf(TransportTCP), } err = readAll(&c, "rtsp://localhost:8554/teststream", @@ -2965,12 +2945,12 @@ func TestClientPlayKeepAlive(t *testing.T) { "CSeq": req.Header["CSeq"], "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, }.Marshal(), "Session": headers.Session{ Session: "ABCDE", - Timeout: uintPtr(1), + Timeout: ptrOf(uint(1)), }.Marshal(), }, }) @@ -3133,11 +3113,11 @@ func TestClientPlayDifferentSource(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolUDP, ClientPorts: inTH.ClientPorts, ServerPorts: &[2]int{34556, 34557}, - Source: ipPtr(net.ParseIP("127.0.1.1")), + Source: ptrOf(net.ParseIP("127.0.1.1")), } l1, err2 := net.ListenPacket("udp", "127.0.1.1:34556") @@ -3184,7 +3164,7 @@ func TestClientPlayDifferentSource(t *testing.T) { }() c := Client{ - Transport: transportPtr(TransportUDP), + Transport: ptrOf(TransportUDP), } err = readAll(&c, "rtsp://localhost:8554/test/stream?param=value", @@ -3281,7 +3261,7 @@ func TestClientPlayDecodeErrors(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if ca.proto == "udp" { @@ -3548,7 +3528,7 @@ func TestClientPlayPacketNTP(t *testing.T) { Header: base.Header{ "Transport": headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), ServerPorts: &[2]int{27556, 27557}, ClientPorts: inTH.ClientPorts, }.Marshal(), @@ -3768,7 +3748,7 @@ func TestClientPlayBackChannel(t *testing.T) { "Transport": th.Marshal(), "Session": headers.Session{ Session: "ABCDE", - Timeout: uintPtr(1), + Timeout: ptrOf(uint(1)), }.Marshal(), }, }) @@ -3914,9 +3894,9 @@ func TestClientPlayBackChannel(t *testing.T) { RequestBackChannels: true, Transport: func() *TransportProtocol { if transport == "tcp" { - return transportPtr(TransportTCP) + return ptrOf(TransportTCP) } - return transportPtr(TransportUDP) + return ptrOf(TransportUDP) }(), senderReportPeriod: 500 * time.Millisecond, receiverReportPeriod: 750 * time.Millisecond, diff --git a/client_record_test.go b/client_record_test.go index 5f34bb8b..a4013d1e 100644 --- a/client_record_test.go +++ b/client_record_test.go @@ -251,12 +251,12 @@ func TestClientRecord(t *testing.T) { h := base.Header{ "Session": headers.Session{ Session: "ABCDE", - Timeout: uintPtr(1), + Timeout: ptrOf(uint(1)), }.Marshal(), } th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Profile: inTH.Profile, } @@ -552,7 +552,7 @@ func TestClientRecordSocketError(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if transport == "udp" { @@ -672,7 +672,7 @@ func TestClientRecordPauseRecordSerial(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if transport == "udp" { @@ -821,7 +821,7 @@ func TestClientRecordPauseRecordParallel(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if transport == "udp" { @@ -1011,7 +1011,7 @@ func TestClientRecordAutomaticProtocol(t *testing.T) { require.Equal(t, headers.TransportProtocolTCP, inTH.Protocol) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{0, 1}, } @@ -1131,7 +1131,7 @@ func TestClientRecordDecodeErrors(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if ca.proto == "udp" { @@ -1302,7 +1302,7 @@ func TestClientRecordRTCPReport(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if ca == "udp" { @@ -1488,7 +1488,7 @@ func TestClientRecordIgnoreTCPRTPPackets(t *testing.T) { require.NoError(t, err2) th := headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: inTH.InterleavedIDs, } @@ -1535,7 +1535,7 @@ func TestClientRecordIgnoreTCPRTPPackets(t *testing.T) { rtcpReceived := make(chan struct{}) c := Client{ - Transport: transportPtr(TransportTCP), + Transport: ptrOf(TransportTCP), } medias := []*description.Media{testH264Media} diff --git a/client_udp_listener.go b/client_udp_listener.go index 853e3e93..eb78dcb0 100644 --- a/client_udp_listener.go +++ b/client_udp_listener.go @@ -13,7 +13,7 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/readbuffer" ) -func int64Ptr(v int64) *int64 { +func ptrOf[T any](v T) *T { return &v } @@ -85,7 +85,7 @@ func (u *clientUDPListener) initialize() error { } } - u.lastPacketTime = int64Ptr(0) + u.lastPacketTime = ptrOf(int64(0)) return nil } diff --git a/pkg/format/format_test.go b/pkg/format/format_test.go index c85af852..87be5e8f 100644 --- a/pkg/format/format_test.go +++ b/pkg/format/format_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func intPtr(v int) *int { - return &v -} - -func boolPtr(v bool) *bool { +func ptrOf[T any](v T) *T { return &v } @@ -404,7 +400,7 @@ var casesFormat = []struct { &MPEG4AudioLATM{ PayloadTyp: 96, ProfileLevelID: 1, - Bitrate: intPtr(64000), + Bitrate: ptrOf(64000), CPresent: false, StreamMuxConfig: &mpeg4audio.StreamMuxConfig{ Programs: []*mpeg4audio.StreamMuxConfigProgram{{ @@ -441,7 +437,7 @@ var casesFormat = []struct { PayloadTyp: 110, ProfileLevelID: 15, CPresent: false, - SBREnabled: boolPtr(true), + SBREnabled: ptrOf(true), StreamMuxConfig: &mpeg4audio.StreamMuxConfig{ Programs: []*mpeg4audio.StreamMuxConfigProgram{{ Layers: []*mpeg4audio.StreamMuxConfigLayer{{ @@ -477,8 +473,8 @@ var casesFormat = []struct { PayloadTyp: 110, ProfileLevelID: 44, CPresent: false, - SBREnabled: boolPtr(true), - Bitrate: intPtr(64000), + SBREnabled: ptrOf(true), + Bitrate: ptrOf(64000), StreamMuxConfig: &mpeg4audio.StreamMuxConfig{ Programs: []*mpeg4audio.StreamMuxConfigProgram{{ Layers: []*mpeg4audio.StreamMuxConfigLayer{{ @@ -516,7 +512,7 @@ var casesFormat = []struct { &MPEG4AudioLATM{ PayloadTyp: 110, ProfileLevelID: 48, - Bitrate: intPtr(64000), + Bitrate: ptrOf(64000), CPresent: false, StreamMuxConfig: &mpeg4audio.StreamMuxConfig{ Programs: []*mpeg4audio.StreamMuxConfigProgram{{ @@ -606,7 +602,7 @@ var casesFormat = []struct { &Speex{ PayloadTyp: 96, SampleRate: 16000, - VBR: boolPtr(false), + VBR: ptrOf(false), }, 96, "speex/16000", @@ -1041,8 +1037,8 @@ var casesFormat = []struct { "a=fmtp:96 max-fr=123; max-fs=456\n", &VP8{ PayloadTyp: 96, - MaxFR: intPtr(123), - MaxFS: intPtr(456), + MaxFR: ptrOf(123), + MaxFS: ptrOf(456), }, 96, "VP8/90000", @@ -1060,9 +1056,9 @@ var casesFormat = []struct { "a=fmtp:96 max-fr=123; max-fs=456; profile-id=789\n", &VP9{ PayloadTyp: 96, - MaxFR: intPtr(123), - MaxFS: intPtr(456), - ProfileID: intPtr(789), + MaxFR: ptrOf(123), + MaxFS: ptrOf(456), + ProfileID: ptrOf(789), }, 96, "VP9/90000", @@ -1081,9 +1077,9 @@ var casesFormat = []struct { "a=fmtp:96 profile=2; level-idx=8; tier=1\n", &AV1{ PayloadTyp: 96, - Profile: intPtr(2), - LevelIdx: intPtr(8), - Tier: intPtr(1), + Profile: ptrOf(2), + LevelIdx: ptrOf(8), + Tier: ptrOf(1), }, 96, "AV1/90000", diff --git a/pkg/format/rtpac3/encoder_test.go b/pkg/format/rtpac3/encoder_test.go index 1861c9df..959ab16e 100644 --- a/pkg/format/rtpac3/encoder_test.go +++ b/pkg/format/rtpac3/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -836,8 +832,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1200, } err := e.Init() diff --git a/pkg/format/rtpav1/encoder_test.go b/pkg/format/rtpav1/encoder_test.go index da1dd034..942ddd6d 100644 --- a/pkg/format/rtpav1/encoder_test.go +++ b/pkg/format/rtpav1/encoder_test.go @@ -7,11 +7,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -989,8 +985,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtpfragmented/encoder_test.go b/pkg/format/rtpfragmented/encoder_test.go index d425d3c4..30570ddf 100644 --- a/pkg/format/rtpfragmented/encoder_test.go +++ b/pkg/format/rtpfragmented/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -72,8 +68,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 100, } err := e.Init() diff --git a/pkg/format/rtph264/encoder_test.go b/pkg/format/rtph264/encoder_test.go index 3131f440..c29ab867 100644 --- a/pkg/format/rtph264/encoder_test.go +++ b/pkg/format/rtph264/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -290,8 +286,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtph265/encoder_test.go b/pkg/format/rtph265/encoder_test.go index 0bc11756..02f9e0aa 100644 --- a/pkg/format/rtph265/encoder_test.go +++ b/pkg/format/rtph265/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -150,8 +146,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtpklv/encoder_test.go b/pkg/format/rtpklv/encoder_test.go index 30311d42..c225cd97 100644 --- a/pkg/format/rtpklv/encoder_test.go +++ b/pkg/format/rtpklv/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint32Ptr(v uint32) *uint32 { - return &v -} - -func uint16Ptr(v uint16) *uint16 { +func ptrOf[T any](v T) *T { return &v } @@ -129,8 +125,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 200, } err := e.Init() diff --git a/pkg/format/rtplpcm/encoder_test.go b/pkg/format/rtplpcm/encoder_test.go index 1dfcd313..bbc09b27 100644 --- a/pkg/format/rtplpcm/encoder_test.go +++ b/pkg/format/rtplpcm/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -71,8 +67,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), BitDepth: 24, ChannelCount: 2, PayloadMaxSize: 1000, diff --git a/pkg/format/rtpmjpeg/encoder_test.go b/pkg/format/rtpmjpeg/encoder_test.go index 45e81802..e5634dec 100644 --- a/pkg/format/rtpmjpeg/encoder_test.go +++ b/pkg/format/rtpmjpeg/encoder_test.go @@ -7,11 +7,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -515,8 +511,8 @@ func TestEncode(t *testing.T) { for _, ca := range cases { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtpmpeg1audio/encoder_test.go b/pkg/format/rtpmpeg1audio/encoder_test.go index 5f07a2b4..0d3071d6 100644 --- a/pkg/format/rtpmpeg1audio/encoder_test.go +++ b/pkg/format/rtpmpeg1audio/encoder_test.go @@ -7,11 +7,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -467,8 +463,8 @@ func TestEncode(t *testing.T) { for _, ca := range cases { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 400, } err := e.Init() diff --git a/pkg/format/rtpmpeg1video/encoder_test.go b/pkg/format/rtpmpeg1video/encoder_test.go index ac9aedea..b34f29a5 100644 --- a/pkg/format/rtpmpeg1video/encoder_test.go +++ b/pkg/format/rtpmpeg1video/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -157,8 +153,8 @@ func TestEncode(t *testing.T) { for _, ca := range cases { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtpmpeg4audio/encoder_test.go b/pkg/format/rtpmpeg4audio/encoder_test.go index 2692a61c..4ce63413 100644 --- a/pkg/format/rtpmpeg4audio/encoder_test.go +++ b/pkg/format/rtpmpeg4audio/encoder_test.go @@ -21,11 +21,7 @@ func TestEncodeRandomInitialState(t *testing.T) { require.NotEqual(t, nil, e.InitialSequenceNumber) } -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -483,8 +479,8 @@ func TestEncodeGeneric(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), SizeLength: ca.sizeLength, IndexLength: ca.indexLength, IndexDeltaLength: ca.indexDeltaLength, diff --git a/pkg/format/rtpmpeg4video/encoder_test.go b/pkg/format/rtpmpeg4video/encoder_test.go index f7fbf684..ef7ecc24 100644 --- a/pkg/format/rtpmpeg4video/encoder_test.go +++ b/pkg/format/rtpmpeg4video/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -72,8 +68,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 100, } err := e.Init() diff --git a/pkg/format/rtpsimpleaudio/encoder_test.go b/pkg/format/rtpsimpleaudio/encoder_test.go index 5125ab21..c735c5a6 100644 --- a/pkg/format/rtpsimpleaudio/encoder_test.go +++ b/pkg/format/rtpsimpleaudio/encoder_test.go @@ -7,11 +7,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -41,8 +37,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 0, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 1000, } err := e.Init() diff --git a/pkg/format/rtpvp8/encoder_test.go b/pkg/format/rtpvp8/encoder_test.go index b3c756f6..0e2ae189 100644 --- a/pkg/format/rtpvp8/encoder_test.go +++ b/pkg/format/rtpvp8/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -96,8 +92,8 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), PayloadMaxSize: 500, } err := e.Init() diff --git a/pkg/format/rtpvp9/encoder_test.go b/pkg/format/rtpvp9/encoder_test.go index 55dc2af7..a513556a 100644 --- a/pkg/format/rtpvp9/encoder_test.go +++ b/pkg/format/rtpvp9/encoder_test.go @@ -8,11 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } @@ -116,9 +112,9 @@ func TestEncode(t *testing.T) { t.Run(ca.name, func(t *testing.T) { e := &Encoder{ PayloadType: 96, - SSRC: uint32Ptr(0x9dbb7812), - InitialSequenceNumber: uint16Ptr(0x44ed), - InitialPictureID: uint16Ptr(0x35af), + SSRC: ptrOf(uint32(0x9dbb7812)), + InitialSequenceNumber: ptrOf(uint16(0x44ed)), + InitialPictureID: ptrOf(uint16(0x35af)), PayloadMaxSize: 500, } err := e.Init() diff --git a/pkg/headers/authenticate_test.go b/pkg/headers/authenticate_test.go index 9a12f648..be5d05ab 100644 --- a/pkg/headers/authenticate_test.go +++ b/pkg/headers/authenticate_test.go @@ -8,7 +8,7 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/base" ) -func stringPtr(v string) *string { +func ptrOf[T any](v T) *T { return &v } @@ -36,7 +36,7 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "4419b63f5e51", Nonce: "8b84a3b789283a8bea8da7fa7d41f08b", - Stale: stringPtr("FALSE"), + Stale: ptrOf("FALSE"), }, }, { @@ -48,7 +48,7 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "4419b63f5e51", Nonce: "8b84a3b789283a8bea8da7fa7d41f08b", - Stale: stringPtr("FALSE"), + Stale: ptrOf("FALSE"), }, }, { @@ -60,7 +60,7 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "4419b63f5e51", Nonce: "133767111917411116111311118211673010032", - Stale: stringPtr("FALSE"), + Stale: ptrOf("FALSE"), }, }, { @@ -73,8 +73,8 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "Please log in with a valid username", Nonce: "752a62306daf32b401a41004555c7663", - Opaque: stringPtr(""), - Stale: stringPtr("FALSE"), + Opaque: ptrOf(""), + Stale: ptrOf("FALSE"), }, }, { @@ -87,8 +87,8 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "4419b63f5e51", Nonce: "8b84a3b789283a8bea8da7fa7d41f08b", - Stale: stringPtr("FALSE"), - Algorithm: algorithmPtr(AuthAlgorithmMD5), + Stale: ptrOf("FALSE"), + Algorithm: ptrOf(AuthAlgorithmMD5), }, }, { @@ -101,8 +101,8 @@ var casesAuthenticate = []struct { Method: AuthMethodDigest, Realm: "IP Camera(AB705)", Nonce: "fcc86deace979a488b2bfb89f4d0812c", - Stale: stringPtr("FALSE"), - Algorithm: algorithmPtr(AuthAlgorithmSHA256), + Stale: ptrOf("FALSE"), + Algorithm: ptrOf(AuthAlgorithmSHA256), }, }, } diff --git a/pkg/headers/authorization_test.go b/pkg/headers/authorization_test.go index 16114599..1a4b6793 100644 --- a/pkg/headers/authorization_test.go +++ b/pkg/headers/authorization_test.go @@ -8,10 +8,6 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/base" ) -func algorithmPtr(v AuthAlgorithm) *AuthAlgorithm { - return &v -} - var casesAuthorization = []struct { name string vin base.HeaderValue @@ -44,7 +40,7 @@ var casesAuthorization = []struct { Nonce: "dcd98b7102dd2f0e8b11d0f600bfb0c093", URI: "/dir/index.html", Response: "e966c932a9242554e42c8ee200cec7f6", - Opaque: stringPtr("5ccc069c403ebaf9f0171e9517f40e41"), + Opaque: ptrOf("5ccc069c403ebaf9f0171e9517f40e41"), }, }, { @@ -80,8 +76,8 @@ var casesAuthorization = []struct { Nonce: "dcd98b7102dd2f0e8b11d0f600bfb0c093", URI: "/dir/index.html", Response: "e966c932a9242554e42c8ee200cec7f6", - Opaque: stringPtr("5ccc069c403ebaf9f0171e9517f40e41"), - Algorithm: algorithmPtr(AuthAlgorithmMD5), + Opaque: ptrOf("5ccc069c403ebaf9f0171e9517f40e41"), + Algorithm: ptrOf(AuthAlgorithmMD5), }, }, { @@ -99,7 +95,7 @@ var casesAuthorization = []struct { Nonce: "1ad195c2b2ca5a03784e53f88e16f579", URI: "rtsp://192.168.80.76/", Response: "9e2324f104f3ce507d17e44a78fc1293001fe84805bde65d2aaa9be97a5a8913", - Algorithm: algorithmPtr(AuthAlgorithmSHA256), + Algorithm: ptrOf(AuthAlgorithmSHA256), }, }, } diff --git a/pkg/headers/range_test.go b/pkg/headers/range_test.go index 33e2c69a..c15ff180 100644 --- a/pkg/headers/range_test.go +++ b/pkg/headers/range_test.go @@ -9,14 +9,6 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/base" ) -func durationPtr(v time.Duration) *time.Duration { - return &v -} - -func timePtr(v time.Time) *time.Time { - return &v -} - var casesRange = []struct { name string vin base.HeaderValue @@ -72,7 +64,7 @@ var casesRange = []struct { Range{ Value: &RangeNPT{ Start: time.Duration(123.45 * float64(time.Second)), - End: durationPtr(125 * time.Second), + End: ptrOf(125 * time.Second), }, }, }, @@ -93,7 +85,7 @@ var casesRange = []struct { Range{ Value: &RangeUTC{ Start: time.Date(1996, 11, 8, 14, 23, 0, 0, time.UTC), - End: timePtr(time.Date(1996, 11, 8, 14, 35, 20, 0, time.UTC)), + End: ptrOf(time.Date(1996, 11, 8, 14, 35, 20, 0, time.UTC)), }, }, }, @@ -115,7 +107,7 @@ var casesRange = []struct { Value: &RangeUTC{ Start: time.Date(1996, 2, 13, 14, 32, 5, 0, time.UTC), }, - Time: timePtr(time.Date(1997, 1, 23, 14, 37, 20, 0, time.UTC)), + Time: ptrOf(time.Date(1997, 1, 23, 14, 37, 20, 0, time.UTC)), }, }, } diff --git a/pkg/headers/rtp_info_test.go b/pkg/headers/rtp_info_test.go index 0424f6a7..e9df94a9 100644 --- a/pkg/headers/rtp_info_test.go +++ b/pkg/headers/rtp_info_test.go @@ -8,18 +8,6 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/base" ) -func uint16Ptr(v uint16) *uint16 { - return &v -} - -func uint32Ptr(v uint32) *uint32 { - return &v -} - -func uintPtr(v uint) *uint { - return &v -} - var casesRTPInfo = []struct { name string vin base.HeaderValue @@ -33,8 +21,8 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "rtsp://127.0.0.1/test.mkv/track1", - SequenceNumber: uint16Ptr(35243), - Timestamp: uint32Ptr(717574556), + SequenceNumber: ptrOf(uint16(35243)), + Timestamp: ptrOf(uint32(717574556)), }, }, }, @@ -47,13 +35,13 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "rtsp://127.0.0.1/test.mkv/track1", - SequenceNumber: uint16Ptr(35243), - Timestamp: uint32Ptr(717574556), + SequenceNumber: ptrOf(uint16(35243)), + Timestamp: ptrOf(uint32(717574556)), }, { URL: "rtsp://127.0.0.1/test.mkv/track2", - SequenceNumber: uint16Ptr(13655), - Timestamp: uint32Ptr(2848846950), + SequenceNumber: ptrOf(uint16(13655)), + Timestamp: ptrOf(uint32(2848846950)), }, }, }, @@ -64,7 +52,7 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "rtsp://127.0.0.1/test.mkv/track1", - SequenceNumber: uint16Ptr(35243), + SequenceNumber: ptrOf(uint16(35243)), }, }, }, @@ -75,7 +63,7 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "rtsp://127.0.0.1/test.mkv/track1", - Timestamp: uint32Ptr(717574556), + Timestamp: ptrOf(uint32(717574556)), }, }, }, @@ -86,8 +74,8 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "trackID=0", - SequenceNumber: uint16Ptr(12447), - Timestamp: uint32Ptr(12447), + SequenceNumber: ptrOf(uint16(12447)), + Timestamp: ptrOf(uint32(12447)), }, }, }, @@ -100,13 +88,13 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "rtsp://10.13.146.53/axis-media/media.amp/trackID=1", - SequenceNumber: uint16Ptr(58477), - Timestamp: uint32Ptr(1020884293), + SequenceNumber: ptrOf(uint16(58477)), + Timestamp: ptrOf(uint32(1020884293)), }, { URL: "rtsp://10.13.146.53/axis-media/media.amp/trackID=2", - SequenceNumber: uint16Ptr(15727), - Timestamp: uint32Ptr(1171661503), + SequenceNumber: ptrOf(uint16(15727)), + Timestamp: ptrOf(uint32(1171661503)), }, }, }, @@ -119,13 +107,13 @@ var casesRTPInfo = []struct { RTPInfo{ { URL: "trackID=1", - SequenceNumber: uint16Ptr(55664), - Timestamp: uint32Ptr(254718369), + SequenceNumber: ptrOf(uint16(55664)), + Timestamp: ptrOf(uint32(254718369)), }, { URL: "trackID=2", - SequenceNumber: uint16Ptr(43807), - Timestamp: uint32Ptr(1702259566), + SequenceNumber: ptrOf(uint16(43807)), + Timestamp: ptrOf(uint32(1702259566)), }, }, }, diff --git a/pkg/headers/session_test.go b/pkg/headers/session_test.go index 47aebb5c..12c51116 100644 --- a/pkg/headers/session_test.go +++ b/pkg/headers/session_test.go @@ -28,7 +28,7 @@ var casesSession = []struct { base.HeaderValue{`A3eqwsafq3rFASqew;timeout=47`}, Session{ Session: "A3eqwsafq3rFASqew", - Timeout: uintPtr(47), + Timeout: ptrOf(uint(47)), }, }, { @@ -37,7 +37,7 @@ var casesSession = []struct { base.HeaderValue{`A3eqwsafq3rFASqew;timeout=47`}, Session{ Session: "A3eqwsafq3rFASqew", - Timeout: uintPtr(47), + Timeout: ptrOf(uint(47)), }, }, } diff --git a/pkg/headers/transport_test.go b/pkg/headers/transport_test.go index a6247ffb..52859086 100644 --- a/pkg/headers/transport_test.go +++ b/pkg/headers/transport_test.go @@ -9,18 +9,6 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/base" ) -func ipPtr(v net.IP) *net.IP { - return &v -} - -func deliveryPtr(v TransportDelivery) *TransportDelivery { - return &v -} - -func transportModePtr(v TransportMode) *TransportMode { - return &v -} - var casesTransport = []struct { name string vin base.HeaderValue @@ -33,9 +21,9 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=3456-3457;mode=play`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), ClientPorts: &[2]int{3456, 3457}, - Mode: transportModePtr(TransportModePlay), + Mode: ptrOf(TransportModePlay), }, }, { @@ -44,7 +32,7 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=3056-3057;server_port=5000-5001`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), ClientPorts: &[2]int{3056, 3057}, ServerPorts: &[2]int{5000, 5001}, }, @@ -55,10 +43,10 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;multicast;destination=225.219.201.15;port=7000-7001;ttl=127`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryMulticast), - Destination: ipPtr(net.ParseIP("225.219.201.15")), - Destination2: stringPtr("225.219.201.15"), - TTL: uintPtr(127), + Delivery: ptrOf(TransportDeliveryMulticast), + Destination: ptrOf(net.ParseIP("225.219.201.15")), + Destination2: ptrOf("225.219.201.15"), + TTL: ptrOf(uint(127)), Ports: &[2]int{7000, 7001}, }, }, @@ -77,11 +65,11 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=8052-8053;ssrc=0B6020AD;mode=play`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - Mode: transportModePtr(TransportModePlay), + Delivery: ptrOf(TransportDeliveryUnicast), + Mode: ptrOf(TransportModePlay), ClientPorts: &[2]int{14186, 14187}, ServerPorts: &[2]int{8052, 8053}, - SSRC: uint32Ptr(0x0B6020AD), + SSRC: ptrOf(uint32(0x0B6020AD)), }, }, { @@ -90,12 +78,12 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;source=127.0.0.1;client_port=14186-14187;server_port=5000-5001;mode=record`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - Mode: transportModePtr(TransportModeRecord), + Delivery: ptrOf(TransportDeliveryUnicast), + Mode: ptrOf(TransportModeRecord), ClientPorts: &[2]int{14186, 14187}, ServerPorts: &[2]int{5000, 5001}, - Source: ipPtr(net.ParseIP("127.0.0.1")), - Source2: stringPtr("127.0.0.1"), + Source: ptrOf(net.ParseIP("127.0.0.1")), + Source2: ptrOf("127.0.0.1"), }, }, { @@ -104,9 +92,9 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=3456-3457;mode=play`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), ClientPorts: &[2]int{3456, 3457}, - Mode: transportModePtr(TransportModePlay), + Mode: ptrOf(TransportModePlay), }, }, { @@ -115,11 +103,11 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=8052-8053;ssrc=0004317F;mode=play`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - Mode: transportModePtr(TransportModePlay), + Delivery: ptrOf(TransportDeliveryUnicast), + Mode: ptrOf(TransportModePlay), ClientPorts: &[2]int{14186, 14187}, ServerPorts: &[2]int{8052, 8053}, - SSRC: uint32Ptr(0x04317f), + SSRC: ptrOf(uint32(0x04317f)), }, }, { @@ -128,11 +116,11 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=8052-8053;ssrc=0004317F;mode=play`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - Mode: transportModePtr(TransportModePlay), + Delivery: ptrOf(TransportDeliveryUnicast), + Mode: ptrOf(TransportModePlay), ClientPorts: &[2]int{14186, 14187}, ServerPorts: &[2]int{8052, 8053}, - SSRC: uint32Ptr(0x04317f), + SSRC: ptrOf(uint32(0x04317f)), }, }, { @@ -141,9 +129,9 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=000D93FF`}, Transport{ Protocol: TransportProtocolTCP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, - SSRC: uint32Ptr(0xD93FF), + SSRC: ptrOf(uint32(0xD93FF)), }, }, { @@ -152,8 +140,8 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;client_port=32560-32561;server_port=3046-3047;ssrc=45DCB578`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - SSRC: uint32Ptr(0x45dcb578), + Delivery: ptrOf(TransportDeliveryUnicast), + SSRC: ptrOf(uint32(0x45dcb578)), ClientPorts: &[2]int{32560, 32561}, ServerPorts: &[2]int{3046, 3047}, }, @@ -164,9 +152,9 @@ var casesTransport = []struct { base.HeaderValue{`RTP/AVP;unicast;source=172.16.8.2;client_port=14236-14237;server_port=56002-56003`}, Transport{ Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), - Source: ipPtr(net.ParseIP("172.16.8.2")), - Source2: stringPtr("172.16.8.2"), + Delivery: ptrOf(TransportDeliveryUnicast), + Source: ptrOf(net.ParseIP("172.16.8.2")), + Source2: ptrOf("172.16.8.2"), ClientPorts: &[2]int{14236, 14237}, ServerPorts: &[2]int{56002, 56003}, }, @@ -179,9 +167,9 @@ var casesTransport = []struct { Protocol: TransportProtocolUDP, Secure: true, Profile: TransportProfileSAVP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), ClientPorts: &[2]int{3456, 3457}, - Mode: transportModePtr(TransportModePlay), + Mode: ptrOf(TransportModePlay), }, }, { diff --git a/pkg/headers/transports_test.go b/pkg/headers/transports_test.go index 9bc9f7e3..181f3962 100644 --- a/pkg/headers/transports_test.go +++ b/pkg/headers/transports_test.go @@ -20,13 +20,13 @@ var casesTransports = []struct { Transports{ { Protocol: TransportProtocolUDP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), ClientPorts: &[2]int{3456, 3457}, - Mode: transportModePtr(TransportModePlay), + Mode: ptrOf(TransportModePlay), }, Transport{ Protocol: TransportProtocolTCP, - Delivery: deliveryPtr(TransportDeliveryUnicast), + Delivery: ptrOf(TransportDeliveryUnicast), InterleavedIDs: &[2]int{0, 1}, }, }, diff --git a/pkg/rtpreceiver/receiver_test.go b/pkg/rtpreceiver/receiver_test.go index 563d7348..afde87d0 100644 --- a/pkg/rtpreceiver/receiver_test.go +++ b/pkg/rtpreceiver/receiver_test.go @@ -9,14 +9,14 @@ import ( "github.com/stretchr/testify/require" ) -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } func TestErrorInvalidPeriod(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), } err := rr.Initialize() require.EqualError(t, err, "invalid Period") @@ -25,7 +25,7 @@ func TestErrorInvalidPeriod(t *testing.T) { func TestErrorDifferentSSRC(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, } err := rr.Initialize() @@ -66,7 +66,7 @@ func TestErrorDifferentSSRC(t *testing.T) { func TestStatsBeforeData(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, } err := rr.Initialize() @@ -87,7 +87,7 @@ func TestStandard(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), UnrealiableTransport: ca == "unrealiable", Period: 500 * time.Millisecond, TimeNow: func() time.Time { @@ -204,7 +204,7 @@ func TestZeroClockRate(t *testing.T) { rr := &Receiver{ ClockRate: 0, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, TimeNow: func() time.Time { return time.Date(2008, 0o5, 20, 22, 15, 22, 0, time.UTC) @@ -308,7 +308,7 @@ func TestSequenceNumberOverflow(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 250 * time.Millisecond, TimeNow: func() time.Time { return time.Date(2008, 0o5, 20, 22, 15, 21, 0, time.UTC) @@ -382,7 +382,7 @@ func TestJitter(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, TimeNow: func() time.Time { return time.Date(2008, 0o5, 20, 22, 15, 22, 0, time.UTC) @@ -470,7 +470,7 @@ func TestReliablePacketsLost(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, TimeNow: func() time.Time { return time.Date(2008, 0o5, 20, 22, 15, 21, 0, time.UTC) @@ -547,7 +547,7 @@ func TestReliableOverflowAndPacketsLost(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), Period: 500 * time.Millisecond, TimeNow: func() time.Time { return time.Date(2008, 0o5, 20, 22, 15, 21, 0, time.UTC) @@ -771,7 +771,7 @@ func TestUnrealiableReorder(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), UnrealiableTransport: true, Period: 500 * time.Millisecond, } @@ -796,7 +796,7 @@ func TestUnrealiableBufferFull(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), UnrealiableTransport: true, Period: 500 * time.Millisecond, WritePacketRTCP: func(p rtcp.Packet) { @@ -880,7 +880,7 @@ func TestUnrealiableReset(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), UnrealiableTransport: true, Period: 500 * time.Millisecond, WritePacketRTCP: func(p rtcp.Packet) { @@ -942,7 +942,7 @@ func TestUnrealiableCustomBufferSize(t *testing.T) { rr := &Receiver{ ClockRate: 90000, - LocalSSRC: uint32Ptr(0x65f83afb), + LocalSSRC: ptrOf(uint32(0x65f83afb)), UnrealiableTransport: true, BufferSize: customSize, Period: 500 * time.Millisecond, diff --git a/pkg/rtptime/encoder_test.go b/pkg/rtptime/encoder_test.go index 0ed3827c..94679898 100644 --- a/pkg/rtptime/encoder_test.go +++ b/pkg/rtptime/encoder_test.go @@ -7,14 +7,14 @@ import ( "github.com/stretchr/testify/require" ) -func uint32Ptr(v uint32) *uint32 { +func ptrOf[T any](v T) *T { return &v } func TestEncoder(t *testing.T) { e := &Encoder{ ClockRate: 90000, - InitialTimestamp: uint32Ptr(12345), + InitialTimestamp: ptrOf(uint32(12345)), } err := e.Initialize() require.NoError(t, err) @@ -29,7 +29,7 @@ func TestEncoder(t *testing.T) { func BenchmarkEncoder(b *testing.B) { e := &Encoder{ ClockRate: 90000, - InitialTimestamp: uint32Ptr(12345), + InitialTimestamp: ptrOf(uint32(12345)), } e.Initialize() //nolint:errcheck diff --git a/pkg/sdp/sdp_test.go b/pkg/sdp/sdp_test.go index b4423430..56214076 100644 --- a/pkg/sdp/sdp_test.go +++ b/pkg/sdp/sdp_test.go @@ -8,15 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func sessionInformationPtr(v psdp.Information) *psdp.Information { - return &v -} - -func emailAddressPtr(v psdp.EmailAddress) *psdp.EmailAddress { - return &v -} - -func mediaTitlePtr(v psdp.Information) *psdp.Information { +func ptrOf[T any](v T) *T { return &v } @@ -49,7 +41,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -77,7 +69,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -109,7 +101,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -177,12 +169,12 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), URI: func() *url.URL { u, _ := url.Parse("http://www.example.com/seminars/sdp.pdf") return u }(), - EmailAddress: emailAddressPtr("j.doe@example.com (Jane Doe)"), + EmailAddress: ptrOf(psdp.EmailAddress("j.doe@example.com (Jane Doe)")), PhoneNumber: func() *psdp.PhoneNumber { v := psdp.PhoneNumber("+1 617 555-6011") return &v @@ -236,7 +228,7 @@ var cases = []struct { Protos: []string{"RTP", "AVP"}, Formats: []string{"0"}, }, - MediaTitle: mediaTitlePtr("Vivamus a posuere nisl"), + MediaTitle: ptrOf(psdp.Information("Vivamus a posuere nisl")), ConnectionInformation: &psdp.ConnectionInformation{ NetworkType: "IN", AddressType: "IP4", @@ -807,7 +799,7 @@ var cases = []struct { UnicastAddress: "5c2b68da", }, SessionName: psdp.SessionName("Unnamed"), - SessionInformation: sessionInformationPtr("N/A"), + SessionInformation: ptrOf(psdp.Information("N/A")), ConnectionInformation: &psdp.ConnectionInformation{ NetworkType: "IN", AddressType: "IP4", @@ -990,7 +982,7 @@ var cases = []struct { UnicastAddress: "", }, SessionName: psdp.SessionName("RTSP Server"), - EmailAddress: emailAddressPtr("NONE"), + EmailAddress: ptrOf(psdp.EmailAddress("NONE")), TimeDescriptions: []psdp.TimeDescription{{}}, Attributes: []psdp.Attribute{ {Key: "recvonly"}, @@ -1314,8 +1306,8 @@ var cases = []struct { UnicastAddress: "0.0.0.0", }, SessionName: psdp.SessionName("HIK Media Server V3.1.3"), - SessionInformation: sessionInformationPtr("HIK Media Server Session Description : standard"), - EmailAddress: emailAddressPtr("NONE"), + SessionInformation: ptrOf(psdp.Information("HIK Media Server Session Description : standard")), + EmailAddress: ptrOf(psdp.EmailAddress("NONE")), ConnectionInformation: &psdp.ConnectionInformation{ NetworkType: "IN", AddressType: "IP4", @@ -1343,7 +1335,7 @@ var cases = []struct { Protos: []string{"RTP", "AVP"}, Formats: []string{"96"}, }, - MediaTitle: mediaTitlePtr("Video Media"), + MediaTitle: ptrOf(psdp.Information("Video Media")), Attributes: []psdp.Attribute{ { Key: "rtpmap", @@ -1394,7 +1386,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -1460,7 +1452,7 @@ var cases = []struct { UnicastAddress: "172.16.2.20", }, SessionName: "IR stream", - SessionInformation: sessionInformationPtr("Live infrared"), + SessionInformation: ptrOf(psdp.Information("Live infrared")), TimeDescriptions: []psdp.TimeDescription{{}}, ConnectionInformation: &psdp.ConnectionInformation{ NetworkType: "IN", @@ -1587,7 +1579,7 @@ var cases = []struct { }, SessionName: "RTP session", TimeDescriptions: []psdp.TimeDescription{{}}, - EmailAddress: emailAddressPtr("NONE"), + EmailAddress: ptrOf(psdp.EmailAddress("NONE")), MediaDescriptions: []*psdp.MediaDescription{ { MediaName: psdp.MediaName{ @@ -1647,7 +1639,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -1675,7 +1667,7 @@ var cases = []struct { UnicastAddress: "10.47.16.5", }, SessionName: "SDP Seminar", - SessionInformation: sessionInformationPtr("A Seminar on the session description protocol"), + SessionInformation: ptrOf(psdp.Information("A Seminar on the session description protocol")), TimeDescriptions: []psdp.TimeDescription{ {Timing: psdp.Timing{StartTime: 3034423619, StopTime: 3042462419}}, }, @@ -2935,7 +2927,7 @@ var cases = []struct { UnicastAddress: "192.168.221.104", }, SessionName: "Media Presentation", - EmailAddress: emailAddressPtr("NONE"), + EmailAddress: ptrOf(psdp.EmailAddress("NONE")), ConnectionInformation: &psdp.ConnectionInformation{ NetworkType: "IN", AddressType: "IP4", diff --git a/server_play_test.go b/server_play_test.go index e045feaa..5ccaba03 100644 --- a/server_play_test.go +++ b/server_play_test.go @@ -27,14 +27,6 @@ import ( "github.com/bluenviron/gortsplib/v4/pkg/sdp" ) -func uintPtr(v uint) *uint { - return &v -} - -func uint16Ptr(v uint16) *uint16 { - return &v -} - func multicastCapableIP(t *testing.T) string { intfs, err := net.Interfaces() require.NoError(t, err) @@ -291,8 +283,8 @@ func TestServerPlayPath(t *testing.T) { th := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -387,8 +379,8 @@ func TestServerPlaySetupErrors(t *testing.T) { case "invalid path": th = &headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), ClientPorts: &[2]int{35466, 35467}, } @@ -412,8 +404,8 @@ func TestServerPlaySetupErrors(t *testing.T) { th = &headers.Transport{ Protocol: headers.TransportProtocolUDP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), ClientPorts: &[2]int{35466, 35467}, } @@ -550,8 +542,8 @@ func TestServerPlaySetupErrorSameUDPPortsAndIP(t *testing.T) { conn := conn.NewConn(nconn) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, } @@ -797,7 +789,7 @@ func TestServerPlay(t *testing.T) { } inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), + Mode: ptrOf(headers.TransportModePlay), } switch ca.transport { @@ -1179,7 +1171,7 @@ func TestServerPlaySocketError(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), + Mode: ptrOf(headers.TransportModePlay), } switch transport { @@ -1343,8 +1335,8 @@ func TestServerPlayDecodeErrors(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if ca.proto == "udp" { @@ -1466,8 +1458,8 @@ func TestServerPlayRTCPReport(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), } if ca == "udp" { @@ -1679,8 +1671,8 @@ func TestServerPlayTCPResponseBeforeFrames(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1777,8 +1769,8 @@ func TestServerPlayPause(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1875,8 +1867,8 @@ func TestServerPlayPlayPausePausePlay(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1962,7 +1954,7 @@ func TestServerPlayTimeout(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), + Mode: ptrOf(headers.TransportModePlay), } switch transport { @@ -2053,8 +2045,8 @@ func TestServerPlayWithoutTeardown(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), } if transport == "udp" { @@ -2134,8 +2126,8 @@ func TestServerPlayUDPChangeConn(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, } @@ -2222,8 +2214,8 @@ func TestServerPlayPartialMedias(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{4, 5}, } @@ -2255,8 +2247,8 @@ func TestServerPlayAdditionalInfos(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{0, 1}, } @@ -2267,8 +2259,8 @@ func TestServerPlayAdditionalInfos(t *testing.T) { ssrcs[0] = th.SSRC inTH = &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{2, 3}, } @@ -2362,7 +2354,7 @@ func TestServerPlayAdditionalInfos(t *testing.T) { Host: "localhost:8554", Path: mustParseURL((*rtpInfo)[0].URL).Path, }).String(), - SequenceNumber: uint16Ptr(557), + SequenceNumber: ptrOf(uint16(557)), Timestamp: (*rtpInfo)[0].Timestamp, }, &headers.RTPInfoEntry{ @@ -2398,7 +2390,7 @@ func TestServerPlayAdditionalInfos(t *testing.T) { Host: "localhost:8554", Path: mustParseURL((*rtpInfo)[0].URL).Path, }).String(), - SequenceNumber: uint16Ptr(557), + SequenceNumber: ptrOf(uint16(557)), Timestamp: (*rtpInfo)[0].Timestamp, }, &headers.RTPInfoEntry{ @@ -2407,7 +2399,7 @@ func TestServerPlayAdditionalInfos(t *testing.T) { Host: "localhost:8554", Path: mustParseURL((*rtpInfo)[1].URL).Path, }).String(), - SequenceNumber: uint16Ptr(88), + SequenceNumber: ptrOf(uint16(88)), Timestamp: (*rtpInfo)[1].Timestamp, }, }, rtpInfo) @@ -2478,8 +2470,8 @@ func TestServerPlayNoInterleavedIDs(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolTCP, } @@ -2561,7 +2553,7 @@ func TestServerPlayStreamStats(t *testing.T) { desc := doDescribe(t, conn, false) inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), + Mode: ptrOf(headers.TransportModePlay), } if transport == "multicast" { @@ -2683,7 +2675,7 @@ func TestServerPlayBackChannel(t *testing.T) { for i := 0; i < 2; i++ { inTH := &headers.Transport{ - Mode: transportModePtr(headers.TransportModePlay), + Mode: ptrOf(headers.TransportModePlay), } if transport == "udp" { diff --git a/server_record_test.go b/server_record_test.go index 7607d36b..ae8c64d5 100644 --- a/server_record_test.go +++ b/server_record_test.go @@ -211,7 +211,7 @@ func TestServerRecordErrorSetup(t *testing.T) { if ca.name == "invalid transport" { inTH = &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Mode: nil, Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, @@ -373,8 +373,8 @@ func TestServerRecordPath(t *testing.T) { th := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), InterleavedIDs: &[2]int{0, 1}, } @@ -424,8 +424,8 @@ func TestServerRecordErrorSetupMediaTwice(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), InterleavedIDs: &[2]int{0, 1}, } @@ -435,8 +435,8 @@ func TestServerRecordErrorSetupMediaTwice(t *testing.T) { inTH = &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), InterleavedIDs: &[2]int{2, 3}, } @@ -514,8 +514,8 @@ func TestServerRecordErrorRecordPartialMedias(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), InterleavedIDs: &[2]int{0, 1}, } @@ -730,8 +730,8 @@ func TestServerRecord(t *testing.T) { for i := 0; i < 2; i++ { inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), } if ca.transport == "udp" { @@ -986,8 +986,8 @@ func TestServerRecordErrorInvalidProtocol(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, } @@ -1054,8 +1054,8 @@ func TestServerRecordRTCPReport(t *testing.T) { defer l2.Close() inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{34556, 34557}, } @@ -1180,8 +1180,8 @@ func TestServerRecordTimeout(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), } if transport == "udp" { @@ -1262,8 +1262,8 @@ func TestServerRecordWithoutTeardown(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), } if transport == "udp" { @@ -1335,8 +1335,8 @@ func TestServerRecordUDPChangeConn(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, } @@ -1467,8 +1467,8 @@ func TestServerRecordDecodeErrors(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), } if ca.proto == "udp" { @@ -1657,8 +1657,8 @@ func TestServerRecordPacketNTP(t *testing.T) { defer l2.Close() inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{34556, 34557}, } @@ -1776,8 +1776,8 @@ func TestServerRecordPausePause(t *testing.T) { doAnnounce(t, conn, "rtsp://localhost:8554/teststream", medias) inTH := &headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModeRecord), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModeRecord), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, } diff --git a/server_test.go b/server_test.go index 1e74f0d7..d435f0a2 100644 --- a/server_test.go +++ b/server_test.go @@ -476,8 +476,8 @@ func TestServerErrorMethodNotImplemented(t *testing.T) { if ca == "inside session" { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -569,8 +569,8 @@ func TestServerErrorTCPTwoConnOneSession(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -594,8 +594,8 @@ func TestServerErrorTCPTwoConnOneSession(t *testing.T) { "CSeq": base.HeaderValue{"1"}, "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, }.Marshal(), "Session": base.HeaderValue{session}, @@ -655,8 +655,8 @@ func TestServerErrorTCPOneConnTwoSessions(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -673,8 +673,8 @@ func TestServerErrorTCPOneConnTwoSessions(t *testing.T) { "CSeq": base.HeaderValue{"3"}, "Transport": headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, }.Marshal(), }, @@ -723,14 +723,14 @@ func TestServerSetupMultipleTransports(t *testing.T) { inTHS := headers.Transports{ { - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolUDP, ClientPorts: &[2]int{35466, 35467}, }, { - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{0, 1}, }, @@ -751,7 +751,7 @@ func TestServerSetupMultipleTransports(t *testing.T) { err = th.Unmarshal(res.Header["Transport"]) require.NoError(t, err) require.Equal(t, headers.Transport{ - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), + Delivery: ptrOf(headers.TransportDeliveryUnicast), Protocol: headers.TransportProtocolTCP, InterleavedIDs: &[2]int{0, 1}, SSRC: th.SSRC, @@ -828,8 +828,8 @@ func TestServerGetSetParameter(t *testing.T) { if ca == "inside session" { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1114,8 +1114,8 @@ func TestServerSessionClose(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1193,8 +1193,8 @@ func TestServerSessionAutoClose(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, } @@ -1261,8 +1261,8 @@ func TestServerSessionTeardown(t *testing.T) { inTH := &headers.Transport{ Protocol: headers.TransportProtocolTCP, - Delivery: deliveryPtr(headers.TransportDeliveryUnicast), - Mode: transportModePtr(headers.TransportModePlay), + Delivery: ptrOf(headers.TransportDeliveryUnicast), + Mode: ptrOf(headers.TransportModePlay), InterleavedIDs: &[2]int{0, 1}, }