mirror of
https://github.com/aler9/gortsplib
synced 2025-09-27 03:25:52 +08:00
client: fix reading sources without server ports (bluenviron/mediamtx#4253) (#796)
RTCP packets were sent out to nil addresses, due to the lack of server ports, causing an error.
This commit is contained in:
@@ -843,6 +843,10 @@ func TestClientPlayAnyPort(t *testing.T) {
|
||||
|
||||
serverDone := make(chan struct{})
|
||||
defer func() { <-serverDone }()
|
||||
|
||||
serverTerminate := make(chan struct{})
|
||||
defer close(serverTerminate)
|
||||
|
||||
go func() {
|
||||
defer close(serverDone)
|
||||
|
||||
@@ -960,14 +964,20 @@ func TestClientPlayAnyPort(t *testing.T) {
|
||||
require.Equal(t, &testRTCPPacket, packets[0])
|
||||
close(serverRecv)
|
||||
}
|
||||
|
||||
<-serverTerminate
|
||||
}()
|
||||
|
||||
packetRecv := make(chan struct{})
|
||||
|
||||
c := Client{
|
||||
AnyPortEnable: true,
|
||||
AnyPortEnable: true,
|
||||
receiverReportPeriod: 100 * time.Millisecond,
|
||||
}
|
||||
|
||||
clientErr := make(chan struct{})
|
||||
defer func() { <-clientErr }()
|
||||
|
||||
var med *description.Media
|
||||
err = readAll(&c, "rtsp://localhost:8554/teststream",
|
||||
func(medi *description.Media, _ format.Format, pkt *rtp.Packet) {
|
||||
@@ -978,6 +988,12 @@ func TestClientPlayAnyPort(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
defer c.Close()
|
||||
|
||||
go func() {
|
||||
err := c.Wait()
|
||||
require.EqualError(t, err, "terminated")
|
||||
close(clientErr)
|
||||
}()
|
||||
|
||||
<-packetRecv
|
||||
|
||||
if ca == "random" {
|
||||
@@ -985,6 +1001,13 @@ func TestClientPlayAnyPort(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
<-serverRecv
|
||||
}
|
||||
|
||||
// make sure that RTCP receiver reports do not cause any error
|
||||
select {
|
||||
case <-time.After(200 * time.Millisecond):
|
||||
case <-clientErr:
|
||||
t.Error("should not happen")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user