mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 23:26:54 +08:00
rename StreamProtocol and StreamDelivery into TransportProtocol and TransportDelivery
This commit is contained in:
@@ -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,
|
||||
}
|
||||
|
||||
|
@@ -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,
|
||||
}
|
||||
|
||||
|
@@ -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{}
|
||||
}
|
||||
|
||||
|
@@ -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"
|
||||
}
|
@@ -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
25
pkg/base/streamtype.go
Normal 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"
|
||||
}
|
12
pkg/base/streamtype_test.go
Normal file
12
pkg/base/streamtype_test.go
Normal 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())
|
||||
}
|
@@ -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")
|
||||
|
@@ -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 {
|
||||
|
@@ -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},
|
||||
}
|
||||
|
||||
|
@@ -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},
|
||||
}
|
||||
|
||||
|
@@ -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 {
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user