diff --git a/connclient.go b/connclient.go index 50ea1e96..d7a84b5d 100644 --- a/connclient.go +++ b/connclient.go @@ -184,17 +184,6 @@ func (c *ConnClient) checkState(allowed map[connClientState]struct{}) error { allowed, c.state) } -// CloseUDPListeners closes any open UDP listener. -func (c *ConnClient) CloseUDPListeners() { - for _, l := range c.udpRtpListeners { - l.close() - } - - for _, l := range c.udpRtcpListeners { - l.close() - } -} - // NetConn returns the underlying net.Conn. func (c *ConnClient) NetConn() net.Conn { return c.conf.Conn diff --git a/dialer_test.go b/dialer_test.go index ca062dc3..eb82b2e9 100644 --- a/dialer_test.go +++ b/dialer_test.go @@ -79,13 +79,13 @@ func TestDialReadUDP(t *testing.T) { time.Sleep(1 * time.Second) + loopDone := make(chan struct{}) + defer func() { <-loopDone }() + conn, err := DialRead("rtsp://localhost:8554/teststream", StreamProtocolUDP) require.NoError(t, err) defer conn.Close() - loopDone := make(chan struct{}) - defer func() { <-loopDone }() - go func() { defer close(loopDone) conn.LoopUDP() @@ -93,8 +93,6 @@ func TestDialReadUDP(t *testing.T) { _, err = conn.ReadFrameUDP(0, StreamTypeRtp) require.NoError(t, err) - - conn.CloseUDPListeners() } func TestDialReadTCP(t *testing.T) { @@ -156,13 +154,13 @@ func TestDialReadRedirect(t *testing.T) { time.Sleep(1 * time.Second) + loopDone := make(chan struct{}) + defer func() { <-loopDone }() + conn, err := DialRead("rtsp://localhost:8554/path1", StreamProtocolUDP) require.NoError(t, err) defer conn.Close() - loopDone := make(chan struct{}) - defer func() { <-loopDone }() - go func() { defer close(loopDone) conn.LoopUDP() @@ -170,8 +168,6 @@ func TestDialReadRedirect(t *testing.T) { _, err = conn.ReadFrameUDP(0, StreamTypeRtp) require.NoError(t, err) - - conn.CloseUDPListeners() } func TestDialPublishUDP(t *testing.T) { diff --git a/examples/client-read-udp.go b/examples/client-read-udp.go index 2d0af7ab..acd65232 100644 --- a/examples/client-read-udp.go +++ b/examples/client-read-udp.go @@ -13,6 +13,9 @@ import ( // read all tracks with the UDP protocol. func main() { + var wg sync.WaitGroup + defer wg.Wait() + // connect to the server and start reading all tracks conn, err := gortsplib.DialRead("rtsp://localhost:8554/mystream", gortsplib.StreamProtocolUDP) if err != nil { @@ -20,10 +23,6 @@ func main() { } defer conn.Close() - var wg sync.WaitGroup - defer wg.Wait() - defer conn.CloseUDPListeners() - for _, track := range conn.Tracks() { // read RTP frames wg.Add(1)