From 922d74b940acad6020b2338ef32ccf5e58933279 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Fri, 12 Nov 2021 17:46:25 +0100 Subject: [PATCH] client: remove Client from OnPacket* arguments --- client.go | 14 +++--- client_publish_test.go | 6 +-- client_read_test.go | 49 ++++++++++--------- clientudpl.go | 6 +-- .../client-read-h264-save-to-disk/main.go | 2 +- examples/client-read-h264/main.go | 2 +- examples/client-read-options/main.go | 4 +- examples/client-read-partial/main.go | 4 +- examples/client-read-pause/main.go | 4 +- examples/client-read/main.go | 4 +- 10 files changed, 48 insertions(+), 47 deletions(-) diff --git a/client.go b/client.go index 7fe3bd64..98c9f1b9 100644 --- a/client.go +++ b/client.go @@ -138,9 +138,9 @@ type Client struct { // called after every response. OnResponse func(*base.Response) // called when a RTP packet arrives. - OnPacketRTP func(*Client, int, []byte) + OnPacketRTP func(int, []byte) // called when a RTCP packet arrives. - OnPacketRTCP func(*Client, int, []byte) + OnPacketRTCP func(int, []byte) // // RTSP parameters @@ -248,11 +248,11 @@ type Client struct { func (c *Client) Start(scheme string, host string) error { // callbacks if c.OnPacketRTP == nil { - c.OnPacketRTP = func(c *Client, trackID int, payload []byte) { + c.OnPacketRTP = func(trackID int, payload []byte) { } } if c.OnPacketRTCP == nil { - c.OnPacketRTCP = func(c *Client, trackID int, payload []byte) { + c.OnPacketRTCP = func(trackID int, payload []byte) { } } @@ -763,10 +763,10 @@ func (c *Client) runReader() error { if isRTP { c.tracks[trackID].rtcpReceiver.ProcessPacketRTP(now, frame.Payload) - c.OnPacketRTP(c, trackID, frame.Payload) + c.OnPacketRTP(trackID, frame.Payload) } else { c.tracks[trackID].rtcpReceiver.ProcessPacketRTCP(now, frame.Payload) - c.OnPacketRTCP(c, trackID, frame.Payload) + c.OnPacketRTCP(trackID, frame.Payload) } } } else { // Record @@ -792,7 +792,7 @@ func (c *Client) runReader() error { } if !isRTP { - c.OnPacketRTCP(c, trackID, frame.Payload) + c.OnPacketRTCP(trackID, frame.Payload) } } } diff --git a/client_publish_test.go b/client_publish_test.go index 0a300869..f36bc714 100644 --- a/client_publish_test.go +++ b/client_publish_test.go @@ -169,7 +169,7 @@ func TestClientPublishSerial(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTCP: func(c *Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { require.Equal(t, 0, trackID) require.Equal(t, []byte{0x05, 0x06, 0x07, 0x08}, payload) close(recvDone) @@ -1012,10 +1012,10 @@ func TestClientPublishIgnoreTCPRTPPackets(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { t.Errorf("should not happen") }, - OnPacketRTCP: func(c *Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { close(rtcpReceived) }, } diff --git a/client_read_test.go b/client_read_test.go index 551986b6..faa5a7dd 100644 --- a/client_read_test.go +++ b/client_read_test.go @@ -410,21 +410,22 @@ func TestClientRead(t *testing.T) { return &v } }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { - // ignore multicast loopback - if transport == "multicast" { - counter++ - if counter <= 1 || counter >= 3 { - return - } + } + + c.OnPacketRTP = func(trackID int, payload []byte) { + // ignore multicast loopback + if transport == "multicast" { + counter++ + if counter <= 1 || counter >= 3 { + return } + } - require.Equal(t, 0, trackID) - require.Equal(t, []byte{0x01, 0x02, 0x03, 0x04}, payload) + require.Equal(t, 0, trackID) + require.Equal(t, []byte{0x01, 0x02, 0x03, 0x04}, payload) - err := c.WritePacketRTCP(0, []byte{0x05, 0x06, 0x07, 0x08}) - require.NoError(t, err) - }, + err := c.WritePacketRTCP(0, []byte{0x05, 0x06, 0x07, 0x08}) + require.NoError(t, err) } err = c.StartReading(scheme + "://" + listenIP + ":8554/test/stream?param=value") @@ -541,8 +542,8 @@ func TestClientReadNonStandardFrameSize(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, id int, payload []byte) { - require.Equal(t, 0, id) + OnPacketRTP: func(trackID int, payload []byte) { + require.Equal(t, 0, trackID) require.Equal(t, refPayload, payload) close(frameRecv) }, @@ -655,7 +656,7 @@ func TestClientReadPartial(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { require.Equal(t, 0, trackID) require.Equal(t, []byte{0x01, 0x02, 0x03, 0x04}, payload) close(frameRecv) @@ -900,7 +901,7 @@ func TestClientReadAnyPort(t *testing.T) { c := &Client{ AnyPortEnable: true, - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { close(frameRecv) }, } @@ -1017,7 +1018,7 @@ func TestClientReadAutomaticProtocol(t *testing.T) { frameRecv := make(chan struct{}) c := Client{ - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { close(frameRecv) }, } @@ -1219,7 +1220,7 @@ func TestClientReadAutomaticProtocol(t *testing.T) { c := &Client{ ReadTimeout: 1 * time.Second, - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { close(frameRecv) }, } @@ -1343,7 +1344,7 @@ func TestClientReadDifferentInterleavedIDs(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { require.Equal(t, 0, trackID) close(frameRecv) }, @@ -1488,7 +1489,7 @@ func TestClientReadRedirect(t *testing.T) { frameRecv := make(chan struct{}) c := Client{ - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { close(frameRecv) }, } @@ -1688,7 +1689,7 @@ func TestClientReadPause(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { if atomic.SwapInt32(&firstFrame, 1) == 0 { close(frameRecv) } @@ -1861,13 +1862,13 @@ func TestClientReadRTCPReport(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { recv++ if recv >= 3 { close(recvDone) } }, - OnPacketRTCP: func(c *Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { recv++ if recv >= 3 { close(recvDone) @@ -2156,7 +2157,7 @@ func TestClientReadIgnoreTCPInvalidTrack(t *testing.T) { v := TransportTCP return &v }(), - OnPacketRTP: func(c *Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { close(recv) }, } diff --git a/clientudpl.go b/clientudpl.go index 4f3dd09e..26962d6d 100644 --- a/clientudpl.go +++ b/clientudpl.go @@ -169,10 +169,10 @@ func (l *clientUDPListener) run() { if l.isRTP { l.c.tracks[l.trackID].rtcpReceiver.ProcessPacketRTP(now, buf[:n]) - l.c.OnPacketRTP(l.c, l.trackID, buf[:n]) + l.c.OnPacketRTP(l.trackID, buf[:n]) } else { l.c.tracks[l.trackID].rtcpReceiver.ProcessPacketRTCP(now, buf[:n]) - l.c.OnPacketRTCP(l.c, l.trackID, buf[:n]) + l.c.OnPacketRTCP(l.trackID, buf[:n]) } } } else { // record @@ -191,7 +191,7 @@ func (l *clientUDPListener) run() { now := time.Now() atomic.StoreInt64(l.lastFrameTime, now.Unix()) - l.c.OnPacketRTCP(l.c, l.trackID, buf[:n]) + l.c.OnPacketRTCP(l.trackID, buf[:n]) } } } diff --git a/examples/client-read-h264-save-to-disk/main.go b/examples/client-read-h264-save-to-disk/main.go index 15ef63ad..da6233f3 100644 --- a/examples/client-read-h264-save-to-disk/main.go +++ b/examples/client-read-h264-save-to-disk/main.go @@ -19,7 +19,7 @@ func main() { c := gortsplib.Client{ // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { if trackID != h264Track { return } diff --git a/examples/client-read-h264/main.go b/examples/client-read-h264/main.go index 9a1ccb3a..64fd827a 100644 --- a/examples/client-read-h264/main.go +++ b/examples/client-read-h264/main.go @@ -20,7 +20,7 @@ func main() { c := gortsplib.Client{ // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { if trackID != h264Track { return } diff --git a/examples/client-read-options/main.go b/examples/client-read-options/main.go index 4134e6b3..401a8b2e 100644 --- a/examples/client-read-options/main.go +++ b/examples/client-read-options/main.go @@ -21,11 +21,11 @@ func main() { // timeout of write operations WriteTimeout: 10 * time.Second, // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { fmt.Printf("RTP packet from track %d, size %d\n", trackID, len(payload)) }, // called when a RTCP packet arrives - OnPacketRTCP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { fmt.Printf("RTCP packet from track %d, size %d\n", trackID, len(payload)) }, } diff --git a/examples/client-read-partial/main.go b/examples/client-read-partial/main.go index 4fc29a4e..711a6546 100644 --- a/examples/client-read-partial/main.go +++ b/examples/client-read-partial/main.go @@ -15,11 +15,11 @@ import ( func main() { c := gortsplib.Client{ // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { fmt.Printf("RTP packet from track %d, size %d\n", trackID, len(payload)) }, // called when a RTCP packet arrives - OnPacketRTCP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { fmt.Printf("RTCP packet from track %d, size %d\n", trackID, len(payload)) }, } diff --git a/examples/client-read-pause/main.go b/examples/client-read-pause/main.go index 361de88c..43e3c56b 100644 --- a/examples/client-read-pause/main.go +++ b/examples/client-read-pause/main.go @@ -16,11 +16,11 @@ import ( func main() { c := gortsplib.Client{ // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { fmt.Printf("RTP packet from track %d, size %d\n", trackID, len(payload)) }, // called when a RTCP packet arrives - OnPacketRTCP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { fmt.Printf("RTCP packet from track %d, size %d\n", trackID, len(payload)) }, } diff --git a/examples/client-read/main.go b/examples/client-read/main.go index a398c2ac..7335b59b 100644 --- a/examples/client-read/main.go +++ b/examples/client-read/main.go @@ -12,11 +12,11 @@ import ( func main() { c := gortsplib.Client{ // called when a RTP packet arrives - OnPacketRTP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTP: func(trackID int, payload []byte) { fmt.Printf("RTP packet from track %d, size %d\n", trackID, len(payload)) }, // called when a RTCP packet arrives - OnPacketRTCP: func(c *gortsplib.Client, trackID int, payload []byte) { + OnPacketRTCP: func(trackID int, payload []byte) { fmt.Printf("RTCP packet from track %d, size %d\n", trackID, len(payload)) }, }