mirror of
https://github.com/aler9/gortsplib
synced 2025-10-04 23:02:45 +08:00
client: remove Client from OnPacket* arguments
This commit is contained in:
14
client.go
14
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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)
|
||||
},
|
||||
}
|
||||
|
@@ -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)
|
||||
},
|
||||
}
|
||||
|
@@ -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])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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))
|
||||
},
|
||||
}
|
||||
|
@@ -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))
|
||||
},
|
||||
}
|
||||
|
@@ -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))
|
||||
},
|
||||
}
|
||||
|
@@ -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))
|
||||
},
|
||||
}
|
||||
|
Reference in New Issue
Block a user