diff --git a/client.go b/client.go index 8f0339ee..51d14af0 100644 --- a/client.go +++ b/client.go @@ -1672,8 +1672,8 @@ func (c *Client) doPlay(ra *headers.Range, isSwitchingProtocol bool) (*base.Resp // open the firewall by sending packets to the counterpart. // do this before sending the PLAY request. - if *cc.protocol == TransportUDP { - for _, cct := range cc.tracks { + if *c.protocol == TransportUDP { + for _, cct := range c.tracks { cct.udpRTPListener.write( []byte{0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) diff --git a/client_read_test.go b/client_read_test.go index 88880d29..60e2f8ad 100644 --- a/client_read_test.go +++ b/client_read_test.go @@ -545,27 +545,28 @@ func TestClientReadNonStandardFrameSize(t *testing.T) { require.NoError(t, err) }() + frameRecv := make(chan struct{}) + c := &Client{ ReadBufferSize: 4500, Transport: func() *Transport { v := TransportTCP return &v }(), + OnPacketRTP: func(c *Client, id int, payload []byte) { + require.Equal(t, 0, id) + require.Equal(t, refPayload, payload) + close(frameRecv) + }, } - conn, err := c.DialRead("rtsp://localhost:8554/teststream") + err = c.DialRead("rtsp://localhost:8554/teststream") require.NoError(t, err) - frameRecv := make(chan struct{}) done := make(chan struct{}) go func() { defer close(done) - conn.ReadFrames(func(id int, streamType StreamType, payload []byte) { - require.Equal(t, 0, id) - require.Equal(t, StreamTypeRTP, streamType) - require.Equal(t, refPayload, payload) - close(frameRecv) - }) + c.ReadFrames() }() <-frameRecv @@ -685,7 +686,6 @@ func TestClientReadPartial(t *testing.T) { err = c.Dial(u.Scheme, u.Host) require.NoError(t, err) - defer c.Close() tracks, baseURL, _, err := c.Describe(u) require.NoError(t, err) @@ -703,7 +703,7 @@ func TestClientReadPartial(t *testing.T) { }() <-frameRecv - conn.Close() + c.Close() <-done } diff --git a/server_publish_test.go b/server_publish_test.go index e52f58c1..efa7baeb 100644 --- a/server_publish_test.go +++ b/server_publish_test.go @@ -848,6 +848,7 @@ func TestServerPublishNonStandardFrameSize(t *testing.T) { frameReceived := make(chan struct{}) s := &Server{ + RTSPAddress: "localhost:8554", ReadBufferSize: 4500, Handler: &testServerHandler{ onAnnounce: func(ctx *ServerHandlerOnAnnounceCtx) (*base.Response, error) { @@ -865,16 +866,15 @@ func TestServerPublishNonStandardFrameSize(t *testing.T) { StatusCode: base.StatusOK, }, nil }, - onFrame: func(ctx *ServerHandlerOnFrameCtx) { + onPacketRTP: func(ctx *ServerHandlerOnPacketRTPCtx) { require.Equal(t, 0, ctx.TrackID) - require.Equal(t, StreamTypeRTP, ctx.StreamType) require.Equal(t, payload, ctx.Payload) close(frameReceived) }, }, } - err := s.Start("localhost:8554") + err := s.Start() require.NoError(t, err) defer s.Wait() defer s.Close() diff --git a/server_read_test.go b/server_read_test.go index b3e76ecd..5542bed8 100644 --- a/server_read_test.go +++ b/server_read_test.go @@ -591,7 +591,7 @@ func TestServerReadNonStandardFrameSize(t *testing.T) { onPlay: func(ctx *ServerHandlerOnPlayCtx) (*base.Response, error) { go func() { time.Sleep(1 * time.Second) - stream.WriteFrame(0, StreamTypeRTP, payload) + stream.WritePacketRTP(0, payload) }() return &base.Response{ @@ -664,6 +664,7 @@ func TestServerReadTCPResponseBeforeFrames(t *testing.T) { stream := NewServerStream(Tracks{track}) s := &Server{ + RTSPAddress: "localhost:8554", Handler: &testServerHandler{ onConnClose: func(ctx *ServerHandlerOnConnCloseCtx) { close(writerTerminate) @@ -702,7 +703,7 @@ func TestServerReadTCPResponseBeforeFrames(t *testing.T) { }, } - err = s.Start("localhost:8554") + err = s.Start() require.NoError(t, err) defer s.Wait() defer s.Close()