rename StreamProtocol and StreamDelivery into TransportProtocol and TransportDelivery

This commit is contained in:
aler9
2021-10-22 17:59:36 +02:00
parent 320c1b6f2c
commit 61c39f9062
14 changed files with 293 additions and 329 deletions

View File

@@ -73,19 +73,19 @@ func TestClientPublishSerial(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
if transport == "udp" {
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -259,19 +259,19 @@ func TestClientPublishParallel(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
if transport == "udp" {
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -399,19 +399,19 @@ func TestClientPublishPauseSerial(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
if transport == "udp" {
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -555,19 +555,19 @@ func TestClientPublishPauseParallel(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
if transport == "udp" {
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -701,14 +701,14 @@ func TestClientPublishAutomaticProtocol(t *testing.T) {
var inTH headers.Transport
err = inTH.Read(req.Header["Transport"])
require.NoError(t, err)
require.Equal(t, base.StreamProtocolTCP, inTH.Protocol)
require.Equal(t, headers.TransportProtocolTCP, inTH.Protocol)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{0, 1},
}
@@ -809,11 +809,11 @@ func TestClientPublishRTCPReport(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: inTH.InterleavedIDs,
}

View File

@@ -90,11 +90,11 @@ func TestClientReadTracks(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: inTH.ClientPorts,
ServerPorts: &[2]int{34556 + i*2, 34557 + i*2},
}
@@ -252,9 +252,9 @@ func TestClientRead(t *testing.T) {
switch transport {
case "udp":
v := base.StreamDeliveryUnicast
v := headers.TransportDeliveryUnicast
th.Delivery = &v
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ClientPorts = inTH.ClientPorts
th.ServerPorts = &[2]int{34556, 34557}
@@ -267,9 +267,9 @@ func TestClientRead(t *testing.T) {
defer l2.Close()
case "multicast":
v := base.StreamDeliveryMulticast
v := headers.TransportDeliveryMulticast
th.Delivery = &v
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
v2 := net.ParseIP("224.1.0.1")
th.Destination = &v2
th.Ports = &[2]int{25000, 25001}
@@ -303,9 +303,9 @@ func TestClientRead(t *testing.T) {
}
case "tcp", "tls":
v := base.StreamDeliveryUnicast
v := headers.TransportDeliveryUnicast
th.Delivery = &v
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = &[2]int{0, 1}
}
@@ -492,11 +492,11 @@ func TestClientReadPartial(t *testing.T) {
require.Equal(t, &[2]int{0, 1}, inTH.InterleavedIDs)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: inTH.InterleavedIDs,
}
@@ -635,11 +635,11 @@ func TestClientReadNoContentBase(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: inTH.ClientPorts,
ServerPorts: &[2]int{34556, 34557},
}
@@ -746,9 +746,9 @@ func TestClientReadAnyPort(t *testing.T) {
StatusCode: base.StatusOK,
Header: base.Header{
"Transport": headers.Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolUDP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
ClientPorts: th.ClientPorts,
@@ -878,15 +878,15 @@ func TestClientReadAutomaticProtocol(t *testing.T) {
var inTH headers.Transport
err = inTH.Read(req.Header["Transport"])
require.NoError(t, err)
require.Equal(t, base.StreamProtocolTCP, inTH.Protocol)
require.Equal(t, headers.TransportProtocolTCP, inTH.Protocol)
err = base.Response{
StatusCode: base.StatusOK,
Header: base.Header{
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
InterleavedIDs: &[2]int{0, 1},
@@ -1004,11 +1004,11 @@ func TestClientReadAutomaticProtocol(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ServerPorts: &[2]int{34556, 34557},
ClientPorts: inTH.ClientPorts,
}
@@ -1072,11 +1072,11 @@ func TestClientReadAutomaticProtocol(t *testing.T) {
require.NoError(t, err)
th = headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: inTH.InterleavedIDs,
}
@@ -1197,11 +1197,11 @@ func TestClientReadDifferentInterleavedIDs(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{2, 3},
}
@@ -1361,9 +1361,9 @@ func TestClientReadRedirect(t *testing.T) {
StatusCode: base.StatusOK,
Header: base.Header{
"Transport": headers.Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolUDP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
ClientPorts: th.ClientPorts,
@@ -1420,7 +1420,7 @@ func TestClientReadPause(t *testing.T) {
defer close(writerDone)
var l1 net.PacketConn
if inTH.Protocol == base.StreamProtocolUDP {
if inTH.Protocol == headers.TransportProtocolUDP {
var err error
l1, err = net.ListenPacket("udp", "localhost:34556")
require.NoError(t, err)
@@ -1433,7 +1433,7 @@ func TestClientReadPause(t *testing.T) {
for {
select {
case <-t.C:
if inTH.Protocol == base.StreamProtocolUDP {
if inTH.Protocol == headers.TransportProtocolUDP {
l1.WriteTo([]byte("\x00\x00\x00\x00"), &net.UDPAddr{
IP: net.ParseIP("127.0.0.1"),
Port: inTH.ClientPorts[0],
@@ -1517,19 +1517,19 @@ func TestClientReadPause(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
if transport == "udp" {
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -1706,9 +1706,9 @@ func TestClientReadRTCPReport(t *testing.T) {
StatusCode: base.StatusOK,
Header: base.Header{
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
ClientPorts: th.ClientPorts,
@@ -1878,8 +1878,8 @@ func TestClientReadErrorTimeout(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
@@ -1891,12 +1891,12 @@ func TestClientReadErrorTimeout(t *testing.T) {
require.NoError(t, err)
defer l1.Close()
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ServerPorts = &[2]int{34556, 34557}
th.ClientPorts = inTH.ClientPorts
} else {
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
}
@@ -2035,12 +2035,12 @@ func TestClientReadIgnoreTCPInvalidTrack(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
}
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = inTH.InterleavedIDs
err = base.Response{
@@ -2165,11 +2165,11 @@ func TestClientReadSeek(t *testing.T) {
require.NoError(t, err)
th := headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: inTH.InterleavedIDs,
}

View File

@@ -1249,23 +1249,23 @@ func (cc *ClientConn) doSetup(
rtpListener, rtcpListener = newClientConnUDPListenerPair(cc)
}
v1 := base.StreamDeliveryUnicast
v1 := headers.TransportDeliveryUnicast
th.Delivery = &v1
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
th.ClientPorts = &[2]int{
rtpListener.port(),
rtcpListener.port(),
}
case TransportUDPMulticast:
v1 := base.StreamDeliveryMulticast
v1 := headers.TransportDeliveryMulticast
th.Delivery = &v1
th.Protocol = base.StreamProtocolUDP
th.Protocol = headers.TransportProtocolUDP
case TransportTCP:
v1 := base.StreamDeliveryUnicast
v1 := headers.TransportDeliveryUnicast
th.Delivery = &v1
th.Protocol = base.StreamProtocolTCP
th.Protocol = headers.TransportProtocolTCP
th.InterleavedIDs = &[2]int{(trackID * 2), (trackID * 2) + 1}
}
@@ -1325,7 +1325,7 @@ func (cc *ClientConn) doSetup(
switch proto {
case TransportUDP:
if thRes.Delivery != nil && *thRes.Delivery != base.StreamDeliveryUnicast {
if thRes.Delivery != nil && *thRes.Delivery != headers.TransportDeliveryUnicast {
return nil, liberrors.ErrClientTransportHeaderInvalidDelivery{}
}
@@ -1338,7 +1338,7 @@ func (cc *ClientConn) doSetup(
}
case TransportUDPMulticast:
if thRes.Delivery == nil || *thRes.Delivery != base.StreamDeliveryMulticast {
if thRes.Delivery == nil || *thRes.Delivery != headers.TransportDeliveryMulticast {
return nil, liberrors.ErrClientTransportHeaderInvalidDelivery{}
}
@@ -1364,7 +1364,7 @@ func (cc *ClientConn) doSetup(
}
case TransportTCP:
if thRes.Delivery != nil && *thRes.Delivery != base.StreamDeliveryUnicast {
if thRes.Delivery != nil && *thRes.Delivery != headers.TransportDeliveryUnicast {
return nil, liberrors.ErrClientTransportHeaderInvalidDelivery{}
}

View File

@@ -1,73 +0,0 @@
package base
// StreamProtocol is the protocol of a stream.
type StreamProtocol int
const (
// StreamProtocolUDP means that the stream uses the UDP protocol
StreamProtocolUDP StreamProtocol = iota
// StreamProtocolTCP means that the stream uses the TCP protocol
StreamProtocolTCP
)
var streamProtocolLabels = map[StreamProtocol]string{
StreamProtocolUDP: "UDP",
StreamProtocolTCP: "TCP",
}
// String implements fmt.Stringer.
func (sp StreamProtocol) String() string {
if l, ok := streamProtocolLabels[sp]; ok {
return l
}
return "unknown"
}
// StreamDelivery is the delivery method of a stream.
type StreamDelivery int
const (
// StreamDeliveryUnicast means that the stream is unicasted
StreamDeliveryUnicast StreamDelivery = iota
// StreamDeliveryMulticast means that the stream is multicasted
StreamDeliveryMulticast
)
var streamDeliveryLabels = map[StreamDelivery]string{
StreamDeliveryUnicast: "unicast",
StreamDeliveryMulticast: "multicast",
}
// String implements fmt.Stringer.
func (sc StreamDelivery) String() string {
if l, ok := streamDeliveryLabels[sc]; ok {
return l
}
return "unknown"
}
// StreamType is the stream type.
type StreamType int
const (
// StreamTypeRTP means that the stream contains RTP packets
StreamTypeRTP StreamType = iota
// StreamTypeRTCP means that the stream contains RTCP packets
StreamTypeRTCP
)
var streamTypeLabels = map[StreamType]string{
StreamTypeRTP: "RTP",
StreamTypeRTCP: "RTCP",
}
// String implements fmt.Stringer
func (st StreamType) String() string {
if l, ok := streamTypeLabels[st]; ok {
return l
}
return "unknown"
}

View File

@@ -1,18 +0,0 @@
package base
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestDefs(t *testing.T) {
require.NotEqual(t, "unknown", StreamProtocolUDP.String())
require.Equal(t, "unknown", StreamProtocol(4).String())
require.NotEqual(t, "unknown", StreamDeliveryUnicast.String())
require.Equal(t, "unknown", StreamDelivery(4).String())
require.NotEqual(t, "unknown", StreamTypeRTP.String())
require.Equal(t, "unknown", StreamType(4).String())
}

25
pkg/base/streamtype.go Normal file
View File

@@ -0,0 +1,25 @@
package base
// StreamType is a stream type.
type StreamType int
const (
// StreamTypeRTP means that the stream contains RTP packets
StreamTypeRTP StreamType = iota
// StreamTypeRTCP means that the stream contains RTCP packets
StreamTypeRTCP
)
var streamTypeLabels = map[StreamType]string{
StreamTypeRTP: "RTP",
StreamTypeRTCP: "RTCP",
}
// String implements fmt.Stringer
func (st StreamType) String() string {
if l, ok := streamTypeLabels[st]; ok {
return l
}
return "unknown"
}

View File

@@ -0,0 +1,12 @@
package base
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestStreamType(t *testing.T) {
require.NotEqual(t, "unknown", StreamTypeRTP.String())
require.Equal(t, "unknown", StreamType(4).String())
}

View File

@@ -11,6 +11,24 @@ import (
"github.com/aler9/gortsplib/pkg/base"
)
// TransportProtocol is a transport protocol.
type TransportProtocol int
// standard transport protocols.
const (
TransportProtocolUDP TransportProtocol = iota
TransportProtocolTCP
)
// TransportDelivery is a delivery method.
type TransportDelivery int
// standard transport delivery methods.
const (
TransportDeliveryUnicast TransportDelivery = iota
TransportDeliveryMulticast
)
// TransportMode is a transport mode.
type TransportMode int
@@ -25,10 +43,10 @@ const (
// Transport is a Transport header.
type Transport struct {
// protocol of the stream
Protocol base.StreamProtocol
Protocol TransportProtocol
// (optional) delivery method of the stream
Delivery *base.StreamDelivery
Delivery *TransportDelivery
// (optional) destination IP
Destination *net.IP
@@ -107,19 +125,19 @@ func (h *Transport) Read(v base.HeaderValue) error {
switch k {
case "RTP/AVP", "RTP/AVP/UDP":
h.Protocol = base.StreamProtocolUDP
h.Protocol = TransportProtocolUDP
protocolFound = true
case "RTP/AVP/TCP":
h.Protocol = base.StreamProtocolTCP
h.Protocol = TransportProtocolTCP
protocolFound = true
case "unicast":
v := base.StreamDeliveryUnicast
v := TransportDeliveryUnicast
h.Delivery = &v
case "multicast":
v := base.StreamDeliveryMulticast
v := TransportDeliveryMulticast
h.Delivery = &v
case "destination":
@@ -221,14 +239,14 @@ func (h *Transport) Read(v base.HeaderValue) error {
func (h Transport) Write() base.HeaderValue {
var rets []string
if h.Protocol == base.StreamProtocolUDP {
if h.Protocol == TransportProtocolUDP {
rets = append(rets, "RTP/AVP")
} else {
rets = append(rets, "RTP/AVP/TCP")
}
if h.Delivery != nil {
if *h.Delivery == base.StreamDeliveryUnicast {
if *h.Delivery == TransportDeliveryUnicast {
rets = append(rets, "unicast")
} else {
rets = append(rets, "multicast")

View File

@@ -20,9 +20,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP;unicast;client_port=3456-3457;mode="PLAY"`},
base.HeaderValue{`RTP/AVP;unicast;client_port=3456-3457;mode=play`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
ClientPorts: &[2]int{3456, 3457},
@@ -37,9 +37,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP/UDP;unicast;client_port=3056-3057;server_port=5000-5001`},
base.HeaderValue{`RTP/AVP;unicast;client_port=3056-3057;server_port=5000-5001`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
ClientPorts: &[2]int{3056, 3057},
@@ -51,9 +51,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP;multicast;destination=225.219.201.15;port=7000-7001;ttl=127`},
base.HeaderValue{`RTP/AVP;multicast;destination=225.219.201.15;port=7000-7001;ttl=127`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryMulticast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryMulticast
return &v
}(),
Destination: func() *net.IP {
@@ -72,7 +72,7 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP/TCP;interleaved=0-1`},
base.HeaderValue{`RTP/AVP/TCP;interleaved=0-1`},
Transport{
Protocol: base.StreamProtocolTCP,
Protocol: TransportProtocolTCP,
InterleavedIDs: &[2]int{0, 1},
},
},
@@ -81,9 +81,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP/UDP;unicast;server_port=8052;client_port=14186;ssrc=0B6020AD;mode=PLAY`},
base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=8052-8053;ssrc=0B6020AD;mode=play`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
Mode: func() *TransportMode {
@@ -103,9 +103,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP/UDP;unicast;mode=receive;source=localhost;client_port=14186-14187;server_port=5000-5001`},
base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=5000-5001;mode=record`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
Mode: func() *TransportMode {
@@ -121,9 +121,9 @@ var casesTransport = []struct {
base.HeaderValue{`client_port=3456-3457;RTP/AVP;mode="PLAY";unicast`},
base.HeaderValue{`RTP/AVP;unicast;client_port=3456-3457;mode=play`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
ClientPorts: &[2]int{3456, 3457},
@@ -138,9 +138,9 @@ var casesTransport = []struct {
base.HeaderValue{`RTP/AVP/UDP;unicast;client_port=14186;server_port=8052;ssrc=4317f;mode=play`},
base.HeaderValue{`RTP/AVP;unicast;client_port=14186-14187;server_port=8052-8053;ssrc=0004317F;mode=play`},
Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: TransportProtocolUDP,
Delivery: func() *TransportDelivery {
v := TransportDeliveryUnicast
return &v
}(),
Mode: func() *TransportMode {

View File

@@ -358,9 +358,9 @@ func TestServerPublishSetupPath(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -439,9 +439,9 @@ func TestServerPublishErrorSetupDifferentPaths(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -521,9 +521,9 @@ func TestServerPublishErrorSetupTrackTwice(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -623,9 +623,9 @@ func TestServerPublishErrorRecordPartialTracks(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -775,8 +775,8 @@ func TestServerPublish(t *testing.T) {
<-sessionOpened
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -786,10 +786,10 @@ func TestServerPublish(t *testing.T) {
}
if transport == "udp" {
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
} else {
inTH.Protocol = base.StreamProtocolTCP
inTH.Protocol = headers.TransportProtocolTCP
inTH.InterleavedIDs = &[2]int{0, 1}
}
@@ -961,15 +961,15 @@ func TestServerPublishErrorInvalidProtocol(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModeRecord
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: &[2]int{35466, 35467},
}
@@ -1062,15 +1062,15 @@ func TestServerPublishRTCPReport(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModeRecord
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{0, 1},
}
@@ -1221,8 +1221,8 @@ func TestServerPublishTimeout(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1232,10 +1232,10 @@ func TestServerPublishTimeout(t *testing.T) {
}
if transport == "udp" {
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
} else {
inTH.Protocol = base.StreamProtocolTCP
inTH.Protocol = headers.TransportProtocolTCP
inTH.InterleavedIDs = &[2]int{0, 1}
}
@@ -1348,8 +1348,8 @@ func TestServerPublishWithoutTeardown(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1359,10 +1359,10 @@ func TestServerPublishWithoutTeardown(t *testing.T) {
}
if transport == "udp" {
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
} else {
inTH.Protocol = base.StreamProtocolTCP
inTH.Protocol = headers.TransportProtocolTCP
inTH.InterleavedIDs = &[2]int{0, 1}
}
@@ -1467,15 +1467,15 @@ func TestServerPublishUDPChangeConn(t *testing.T) {
require.Equal(t, base.StatusOK, res.StatusCode)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModeRecord
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: &[2]int{35466, 35467},
}

View File

@@ -116,9 +116,9 @@ func TestServerReadSetupPath(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -174,9 +174,9 @@ func TestServerReadErrorSetupDifferentPaths(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -246,9 +246,9 @@ func TestServerReadErrorSetupTrackTwice(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
th := &headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -399,20 +399,20 @@ func TestServerRead(t *testing.T) {
switch transport {
case "udp":
v := base.StreamDeliveryUnicast
v := headers.TransportDeliveryUnicast
inTH.Delivery = &v
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
case "multicast":
v := base.StreamDeliveryMulticast
v := headers.TransportDeliveryMulticast
inTH.Delivery = &v
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
default:
v := base.StreamDeliveryUnicast
v := headers.TransportDeliveryUnicast
inTH.Delivery = &v
inTH.Protocol = base.StreamProtocolTCP
inTH.Protocol = headers.TransportProtocolTCP
inTH.InterleavedIDs = &[2]int{4, 5}
}
@@ -433,16 +433,16 @@ func TestServerRead(t *testing.T) {
switch transport {
case "udp":
require.Equal(t, base.StreamProtocolUDP, th.Protocol)
require.Equal(t, base.StreamDeliveryUnicast, *th.Delivery)
require.Equal(t, headers.TransportProtocolUDP, th.Protocol)
require.Equal(t, headers.TransportDeliveryUnicast, *th.Delivery)
case "multicast":
require.Equal(t, base.StreamProtocolUDP, th.Protocol)
require.Equal(t, base.StreamDeliveryMulticast, *th.Delivery)
require.Equal(t, headers.TransportProtocolUDP, th.Protocol)
require.Equal(t, headers.TransportDeliveryMulticast, *th.Delivery)
default:
require.Equal(t, base.StreamProtocolTCP, th.Protocol)
require.Equal(t, base.StreamDeliveryUnicast, *th.Delivery)
require.Equal(t, headers.TransportProtocolTCP, th.Protocol)
require.Equal(t, headers.TransportDeliveryUnicast, *th.Delivery)
}
<-sessionOpened
@@ -666,9 +666,9 @@ func TestServerReadTCPResponseBeforeFrames(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -737,9 +737,9 @@ func TestServerReadPlayPlay(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolUDP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolUDP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -844,9 +844,9 @@ func TestServerReadPlayPausePlay(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -958,9 +958,9 @@ func TestServerReadPlayPausePause(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1065,8 +1065,8 @@ func TestServerReadTimeout(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(nconn), bufio.NewWriter(nconn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1075,7 +1075,7 @@ func TestServerReadTimeout(t *testing.T) {
}(),
}
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
res, err := writeReqReadRes(bconn, base.Request{
@@ -1162,8 +1162,8 @@ func TestServerReadWithoutTeardown(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(nconn), bufio.NewWriter(nconn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1173,10 +1173,10 @@ func TestServerReadWithoutTeardown(t *testing.T) {
}
if transport == "udp" {
inTH.Protocol = base.StreamProtocolUDP
inTH.Protocol = headers.TransportProtocolUDP
inTH.ClientPorts = &[2]int{35466, 35467}
} else {
inTH.Protocol = base.StreamProtocolTCP
inTH.Protocol = headers.TransportProtocolTCP
inTH.InterleavedIDs = &[2]int{0, 1}
}
@@ -1253,15 +1253,15 @@ func TestServerReadUDPChangeConn(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: &[2]int{35466, 35467},
}
@@ -1344,15 +1344,15 @@ func TestServerReadErrorUDPSamePorts(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: &[2]int{35466, 35467},
}
@@ -1386,15 +1386,15 @@ func TestServerReadErrorUDPSamePorts(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolUDP,
Protocol: headers.TransportProtocolUDP,
ClientPorts: &[2]int{35466, 35467},
}
@@ -1448,15 +1448,15 @@ func TestServerReadNonSetuppedPath(t *testing.T) {
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{0, 1},
}
@@ -1500,15 +1500,15 @@ func TestServerReadAdditionalInfos(t *testing.T) {
ssrcs := make([]*uint32, 2)
inTH := &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{0, 1},
}
@@ -1529,15 +1529,15 @@ func TestServerReadAdditionalInfos(t *testing.T) {
ssrcs[0] = th.SSRC
inTH = &headers.Transport{
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
v := headers.TransportModePlay
return &v
}(),
Protocol: base.StreamProtocolTCP,
Protocol: headers.TransportProtocolTCP,
InterleavedIDs: &[2]int{2, 3},
}

View File

@@ -700,9 +700,9 @@ func TestServerErrorTCPTwoConnOneSession(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -738,9 +738,9 @@ func TestServerErrorTCPTwoConnOneSession(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -797,9 +797,9 @@ func TestServerErrorTCPOneConnTwoSessions(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -830,9 +830,9 @@ func TestServerErrorTCPOneConnTwoSessions(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"3"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -995,9 +995,9 @@ func TestServerSessionClose(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1048,9 +1048,9 @@ func TestServerSessionAutoClose(t *testing.T) {
Header: base.Header{
"CSeq": base.HeaderValue{"1"},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {
@@ -1156,9 +1156,9 @@ func TestServerErrorInvalidPath(t *testing.T) {
"CSeq": base.HeaderValue{"2"},
"Session": base.HeaderValue{sxID},
"Transport": headers.Transport{
Protocol: base.StreamProtocolTCP,
Delivery: func() *base.StreamDelivery {
v := base.StreamDeliveryUnicast
Protocol: headers.TransportProtocolTCP,
Delivery: func() *headers.TransportDelivery {
v := headers.TransportDeliveryUnicast
return &v
}(),
Mode: func() *headers.TransportMode {

View File

@@ -76,22 +76,22 @@ func setupGetTrackIDPathQuery(
}
func setupGetTransport(th headers.Transport) (Transport, bool) {
delivery := func() base.StreamDelivery {
delivery := func() headers.TransportDelivery {
if th.Delivery != nil {
return *th.Delivery
}
return base.StreamDeliveryUnicast
return headers.TransportDeliveryUnicast
}()
switch th.Protocol {
case base.StreamProtocolUDP:
if delivery == base.StreamDeliveryUnicast {
case headers.TransportProtocolUDP:
if delivery == headers.TransportDeliveryUnicast {
return TransportUDP, true
}
return TransportUDPMulticast, true
default: // TCP
if delivery != base.StreamDeliveryUnicast {
if delivery != headers.TransportDeliveryUnicast {
return 0, false
}
return TransportTCP, true
@@ -696,15 +696,15 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
sst.udpRTPPort = inTH.ClientPorts[0]
sst.udpRTCPPort = inTH.ClientPorts[1]
th.Protocol = base.StreamProtocolUDP
de := base.StreamDeliveryUnicast
th.Protocol = headers.TransportProtocolUDP
de := headers.TransportDeliveryUnicast
th.Delivery = &de
th.ClientPorts = inTH.ClientPorts
th.ServerPorts = &[2]int{sc.s.udpRTPListener.port(), sc.s.udpRTCPListener.port()}
case TransportUDPMulticast:
th.Protocol = base.StreamProtocolUDP
de := base.StreamDeliveryMulticast
th.Protocol = headers.TransportProtocolUDP
de := headers.TransportDeliveryMulticast
th.Delivery = &de
v := uint(127)
th.TTL = &v
@@ -724,8 +724,8 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
ss.setuppedTracksByChannel[inTH.InterleavedIDs[0]] = trackID
th.Protocol = base.StreamProtocolTCP
de := base.StreamDeliveryUnicast
th.Protocol = headers.TransportProtocolTCP
de := headers.TransportDeliveryUnicast
th.Delivery = &de
th.InterleavedIDs = inTH.InterleavedIDs
}