client: remove Client from OnPacket* arguments

This commit is contained in:
aler9
2021-11-12 17:46:25 +01:00
committed by Alessandro Ros
parent f304ec52fb
commit 922d74b940
10 changed files with 48 additions and 47 deletions

View File

@@ -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)
}
}
}

View File

@@ -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)
},
}

View File

@@ -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)
},
}

View File

@@ -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])
}
}
}

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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))
},
}

View File

@@ -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))
},
}

View File

@@ -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))
},
}

View File

@@ -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))
},
}