diff --git a/client.go b/client.go index 824e200..ee0074c 100644 --- a/client.go +++ b/client.go @@ -18,6 +18,7 @@ import ( "github.com/gorilla/websocket" "github.com/pion/rtcp" + "github.com/pion/rtp" "github.com/pion/sdp" "github.com/pion/webrtc/v2" ) @@ -296,6 +297,7 @@ func addUpConn(c *client, id string) (*upConnection, error) { go func() { buf := make([]byte, 1500) + var packet rtp.Packet for { i, err := remote.Read(buf) if err != nil { @@ -305,7 +307,13 @@ func addUpConn(c *client, id string) (*upConnection, error) { break } - _, err = local.Write(buf[:i]) + err = packet.Unmarshal(buf[:i]) + if err != nil { + log.Printf("%v", err) + continue + } + + err = local.WriteRTP(&packet) if err != nil && err != io.ErrClosedPipe { log.Printf("%v", err) } diff --git a/go.mod b/go.mod index 9a2b2a2..7760623 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.13 require ( github.com/gorilla/websocket v1.4.2 github.com/pion/rtcp v1.2.1 + github.com/pion/rtp v1.4.0 github.com/pion/sdp v1.3.0 github.com/pion/webrtc/v2 v2.2.5 )