Skip to content

Commit 2b8b646

Browse files
committedOct 31, 2020
Format changes and more verbose message in srtsockoptsetSocketOptions
1 parent 67964e8 commit 2b8b646

File tree

3 files changed

+125
-124
lines changed

3 files changed

+125
-124
lines changed
 

‎go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c h1:38q6VNPWR010vN82/SB121GujZNIfAUb4YttE2rhGuc=
2+
golang.org/x/sys v0.0.0-20200926100807-9d91bd62050c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

‎srtsocketoptions.go

+34-34
Original file line numberDiff line numberDiff line change
@@ -23,37 +23,37 @@ const (
2323
tBoolean = 3
2424
tTransType = 4
2525

26-
SRTO_TRANSTYPE = C.SRTO_TRANSTYPE
27-
SRTO_MAXBW = C.SRTO_MAXBW
28-
SRTO_PBKEYLEN = C.SRTO_PBKEYLEN
29-
SRTO_PASSPHRASE = C.SRTO_PASSPHRASE
30-
SRTO_MSS = C.SRTO_MSS
31-
SRTO_FC = C.SRTO_FC
32-
SRTO_SNDBUF = C.SRTO_SNDBUF
33-
SRTO_RCVBUF = C.SRTO_RCVBUF
34-
SRTO_IPTTL = C.SRTO_IPTTL
35-
SRTO_IPTOS = C.SRTO_IPTOS
36-
SRTO_INPUTBW = C.SRTO_INPUTBW
37-
SRTO_OHEADBW = C.SRTO_OHEADBW
38-
SRTO_LATENCY = C.SRTO_LATENCY
39-
SRTO_TSBPDMODE = C.SRTO_TSBPDMODE
40-
SRTO_TLPKTDROP = C.SRTO_TLPKTDROP
41-
SRTO_SNDDROPDELAY = C.SRTO_SNDDROPDELAY
42-
SRTO_NAKREPORT = C.SRTO_NAKREPORT
43-
SRTO_CONNTIMEO = C.SRTO_CONNTIMEO
44-
SRTO_LOSSMAXTTL = C.SRTO_LOSSMAXTTL
45-
SRTO_RCVLATENCY = C.SRTO_RCVLATENCY
46-
SRTO_PEERLATENCY = C.SRTO_PEERLATENCY
47-
SRTO_MINVERSION = C.SRTO_MINVERSION
48-
SRTO_STREAMID = C.SRTO_STREAMID
49-
SRTO_CONGESTION = C.SRTO_CONGESTION
50-
SRTO_MESSAGEAPI = C.SRTO_MESSAGEAPI
51-
SRTO_PAYLOADSIZE = C.SRTO_PAYLOADSIZE
52-
SRTO_KMREFRESHRATE = C.SRTO_KMREFRESHRATE
53-
SRTO_KMPREANNOUNCE = C.SRTO_KMPREANNOUNCE
26+
SRTO_TRANSTYPE = C.SRTO_TRANSTYPE
27+
SRTO_MAXBW = C.SRTO_MAXBW
28+
SRTO_PBKEYLEN = C.SRTO_PBKEYLEN
29+
SRTO_PASSPHRASE = C.SRTO_PASSPHRASE
30+
SRTO_MSS = C.SRTO_MSS
31+
SRTO_FC = C.SRTO_FC
32+
SRTO_SNDBUF = C.SRTO_SNDBUF
33+
SRTO_RCVBUF = C.SRTO_RCVBUF
34+
SRTO_IPTTL = C.SRTO_IPTTL
35+
SRTO_IPTOS = C.SRTO_IPTOS
36+
SRTO_INPUTBW = C.SRTO_INPUTBW
37+
SRTO_OHEADBW = C.SRTO_OHEADBW
38+
SRTO_LATENCY = C.SRTO_LATENCY
39+
SRTO_TSBPDMODE = C.SRTO_TSBPDMODE
40+
SRTO_TLPKTDROP = C.SRTO_TLPKTDROP
41+
SRTO_SNDDROPDELAY = C.SRTO_SNDDROPDELAY
42+
SRTO_NAKREPORT = C.SRTO_NAKREPORT
43+
SRTO_CONNTIMEO = C.SRTO_CONNTIMEO
44+
SRTO_LOSSMAXTTL = C.SRTO_LOSSMAXTTL
45+
SRTO_RCVLATENCY = C.SRTO_RCVLATENCY
46+
SRTO_PEERLATENCY = C.SRTO_PEERLATENCY
47+
SRTO_MINVERSION = C.SRTO_MINVERSION
48+
SRTO_STREAMID = C.SRTO_STREAMID
49+
SRTO_CONGESTION = C.SRTO_CONGESTION
50+
SRTO_MESSAGEAPI = C.SRTO_MESSAGEAPI
51+
SRTO_PAYLOADSIZE = C.SRTO_PAYLOADSIZE
52+
SRTO_KMREFRESHRATE = C.SRTO_KMREFRESHRATE
53+
SRTO_KMPREANNOUNCE = C.SRTO_KMPREANNOUNCE
5454
SRTO_ENFORCEDENCRYPTION = C.SRTO_ENFORCEDENCRYPTION
55-
SRTO_PEERIDLETIMEO = C.SRTO_PEERIDLETIMEO
56-
SRTO_PACKETFILTER = C.SRTO_PACKETFILTER
55+
SRTO_PEERIDLETIMEO = C.SRTO_PEERIDLETIMEO
56+
SRTO_PACKETFILTER = C.SRTO_PACKETFILTER
5757
)
5858

5959
type socketOption struct {
@@ -122,23 +122,23 @@ func setSocketOptions(s C.int, binding int, options map[string]string) error {
122122
if err == nil {
123123
result := C.srt_setsockflag(s, C.SRT_SOCKOPT(so.option), unsafe.Pointer(&v32), C.int32_t(unsafe.Sizeof(v32)))
124124
if result == -1 {
125-
log.Printf("Warning - Error setting option %s to %s", so.name, val)
125+
log.Printf("Warning - Error setting option %s to %s, %v", so.name, val, C.GoString(C.srt_getlasterror_str()))
126126
}
127127
}
128128
} else if so.dataType == tInteger64 {
129129
v, err := strconv.ParseInt(val, 10, 64)
130130
if err == nil {
131131
result := C.srt_setsockflag(s, C.SRT_SOCKOPT(so.option), unsafe.Pointer(&v), C.int32_t(unsafe.Sizeof(v)))
132132
if result == -1 {
133-
log.Printf("Warning - Error setting option %s to %s", so.name, val)
133+
log.Printf("Warning - Error setting option %s to %s, %v", so.name, val, C.GoString(C.srt_getlasterror_str()))
134134
}
135135
}
136136
} else if so.dataType == tString {
137137
sval := C.CString(val)
138138
defer C.free(unsafe.Pointer(sval))
139139
result := C.srt_setsockflag(s, C.SRT_SOCKOPT(so.option), unsafe.Pointer(sval), C.int32_t(len(val)))
140140
if result == -1 {
141-
log.Printf("Warning - Error setting option %s to %s", so.name, val)
141+
log.Printf("Warning - Error setting option %s to %s, %v", so.name, val, C.GoString(C.srt_getlasterror_str()))
142142
}
143143

144144
} else if so.dataType == tBoolean {
@@ -151,7 +151,7 @@ func setSocketOptions(s C.int, binding int, options map[string]string) error {
151151
result = C.srt_setsockflag(s, C.SRT_SOCKOPT(so.option), unsafe.Pointer(&v), C.int32_t(unsafe.Sizeof(v)))
152152
}
153153
if result == -1 {
154-
log.Printf("Warning - Error setting option %s to %s", so.name, val)
154+
log.Printf("Warning - Error setting option %s to %s, %v", so.name, val, C.GoString(C.srt_getlasterror_str()))
155155
}
156156
} else if so.dataType == tTransType {
157157
var result C.int

‎srtstats.go

+89-90
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ import "C"
66

77
type SrtStats struct {
88
// Global measurements
9-
MsTimeStamp int64 // time since the UDT entity is started, in milliseconds
10-
PktSentTotal int64 // total number of sent data packets, including retransmissions
11-
PktRecvTotal int64 // total number of received packets
12-
PktSndLossTotal int // total number of lost packets (sender side)
13-
PktRcvLossTotal int // total number of lost packets (receiver side)
14-
PktRetransTotal int // total number of retransmitted packets
15-
PktSentACKTotal int // total number of sent ACK packets
9+
MsTimeStamp int64 // time since the UDT entity is started, in milliseconds
10+
PktSentTotal int64 // total number of sent data packets, including retransmissions
11+
PktRecvTotal int64 // total number of received packets
12+
PktSndLossTotal int // total number of lost packets (sender side)
13+
PktRcvLossTotal int // total number of lost packets (receiver side)
14+
PktRetransTotal int // total number of retransmitted packets
15+
PktSentACKTotal int // total number of sent ACK packets
1616
PktRecvACKTotal int // total number of received ACK packets
1717
PktSentNAKTotal int // total number of sent NAK packets
1818
PktRecvNAKTotal int // total number of received NAK packets
@@ -60,7 +60,6 @@ type SrtStats struct {
6060
ByteRcvDrop int64 // number of too-late-to play missing Bytes (estimate based on average packet size)
6161
ByteRcvUndecrypt int64 // number of undecrypted bytes
6262

63-
6463
// Instant measurements
6564
UsPktSndPeriod float64 // packet sending period, in microseconds
6665
PktFlowWindow int // flow window size, in number of packets
@@ -72,7 +71,7 @@ type SrtStats struct {
7271
ByteAvailRcvBuf int // available UDT receiver buffer size
7372

7473
MbpsMaxBW float64 // Transmit Bandwidth ceiling (Mbps)
75-
ByteMSS int // MTU
74+
ByteMSS int // MTU
7675

7776
PktSndBuf int // UnACKed packets in UDT sender
7877
ByteSndBuf int // UnACKed bytes in UDT sender
@@ -99,91 +98,91 @@ type SrtStats struct {
9998
func newSrtStats(stats *C.SRT_TRACEBSTATS) *SrtStats {
10099
s := new(SrtStats)
101100

102-
s.MsTimeStamp = int64(stats.msTimeStamp)
103-
s.PktSentTotal = int64(stats.pktSentTotal)
104-
s.PktRecvTotal = int64(stats.pktRecvTotal)
105-
s.PktSndLossTotal = int(stats.pktSndLossTotal)
106-
s.PktRcvLossTotal = int(stats.pktRcvLossTotal)
107-
s.PktRetransTotal = int(stats.pktRetransTotal)
108-
s.PktSentACKTotal = int(stats.pktSentACKTotal)
109-
s.PktRecvACKTotal = int(stats.pktRecvACKTotal)
110-
s.PktSentNAKTotal = int(stats.pktSentNAKTotal)
111-
s.PktRecvNAKTotal = int(stats.pktRecvNAKTotal)
101+
s.MsTimeStamp = int64(stats.msTimeStamp)
102+
s.PktSentTotal = int64(stats.pktSentTotal)
103+
s.PktRecvTotal = int64(stats.pktRecvTotal)
104+
s.PktSndLossTotal = int(stats.pktSndLossTotal)
105+
s.PktRcvLossTotal = int(stats.pktRcvLossTotal)
106+
s.PktRetransTotal = int(stats.pktRetransTotal)
107+
s.PktSentACKTotal = int(stats.pktSentACKTotal)
108+
s.PktRecvACKTotal = int(stats.pktRecvACKTotal)
109+
s.PktSentNAKTotal = int(stats.pktSentNAKTotal)
110+
s.PktRecvNAKTotal = int(stats.pktRecvNAKTotal)
112111
s.UsSndDurationTotal = int64(stats.usSndDurationTotal)
113112

114-
s.PktSndDropTotal = int(stats.pktSndDropTotal)
115-
s.PktRcvDropTotal = int(stats.pktRcvDropTotal)
116-
s.PktRcvUndecryptTotal = int(stats.pktRcvUndecryptTotal)
117-
s.ByteSentTotal = int64(stats.byteSentTotal)
118-
s.ByteRecvTotal = int64(stats.byteRecvTotal)
119-
s.ByteRcvLossTotal = int64(stats.byteRcvLossTotal)
120-
121-
s.ByteRetransTotal = int64(stats.byteRetransTotal)
122-
s.ByteSndDropTotal = int64(stats.byteSndDropTotal)
123-
s.ByteRcvDropTotal = int64(stats.byteRcvDropTotal)
124-
s.ByteRcvUndecryptTotal = int64(stats.byteRcvUndecryptTotal)
125-
126-
s.PktSent = int64(stats.pktSent)
127-
s.PktRecv = int64(stats.pktRecv)
128-
s.PktSndLoss = int(stats.pktSndLoss)
129-
s.PktRcvLoss = int(stats.pktRcvLoss)
130-
s.PktRetrans = int(stats.pktRetrans)
131-
s.PktRcvRetrans = int(stats.pktRcvRetrans)
132-
s.PktSentACK = int(stats.pktSentACK)
133-
s.PktRecvACK = int(stats.pktRecvACK)
134-
s.PktSentNAK = int(stats.pktSentNAK)
135-
s.PktRecvNAK = int(stats.pktRecvNAK)
136-
s.MbpsSendRate = float64(stats.mbpsSendRate)
137-
s.MbpsRecvRate = float64(stats.mbpsRecvRate)
138-
s.UsSndDuration = int64(stats.usSndDuration)
139-
s.PktReorderDistance = int(stats.pktReorderDistance)
140-
s.PktRcvAvgBelatedTime = float64(stats.pktRcvAvgBelatedTime)
141-
s.PktRcvBelated = int64(stats.pktRcvBelated)
142-
143-
s.PktSndDrop = int(stats.pktSndDrop)
144-
s.PktRcvDrop = int(stats.pktRcvDrop)
145-
s.PktRcvUndecrypt = int(stats.pktRcvUndecrypt)
146-
s.ByteSent = int64(stats.byteSent)
147-
s.ByteRecv = int64(stats.byteRecv)
148-
149-
s.ByteRcvLoss = int64(stats.byteRcvLoss)
150-
s.ByteRetrans = int64(stats.byteRetrans)
151-
s.ByteSndDrop = int64(stats.byteSndDrop)
152-
s.ByteRcvDrop = int64(stats.byteRcvDrop)
153-
s.ByteRcvUndecrypt = int64(stats.byteRcvUndecrypt)
154-
155-
s.UsPktSndPeriod = float64(stats.usPktSndPeriod)
156-
s.PktFlowWindow = int(stats.pktFlowWindow)
157-
s.PktCongestionWindow = int(stats.pktCongestionWindow)
158-
s.PktFlightSize = int(stats.pktFlightSize)
159-
s.MsRTT = float64(stats.msRTT)
160-
s.MbpsBandwidth = float64(stats.mbpsBandwidth)
161-
s.ByteAvailSndBuf = int(stats.byteAvailSndBuf)
162-
s.ByteAvailRcvBuf = int(stats.byteAvailRcvBuf)
163-
164-
s.MbpsMaxBW = float64(stats.mbpsMaxBW)
165-
s.ByteMSS = int(stats.byteMSS)
166-
167-
s.PktSndBuf = int(stats.pktSndBuf)
168-
s.ByteSndBuf = int(stats.byteSndBuf)
169-
s.MsSndBuf = int(stats.msSndBuf)
170-
s.MsSndTsbPdDelay = int(stats.msSndTsbPdDelay)
171-
172-
s.PktRcvBuf = int(stats.pktRcvBuf)
173-
s.ByteRcvBuf = int(stats.byteRcvBuf)
174-
s.MsRcvBuf = int(stats.msRcvBuf)
175-
s.MsRcvTsbPdDelay = int(stats.msRcvTsbPdDelay)
176-
177-
s.PktSndFilterExtraTotal = int(stats.pktSndFilterExtraTotal)
178-
s.PktRcvFilterExtraTotal = int(stats.pktRcvFilterExtraTotal)
113+
s.PktSndDropTotal = int(stats.pktSndDropTotal)
114+
s.PktRcvDropTotal = int(stats.pktRcvDropTotal)
115+
s.PktRcvUndecryptTotal = int(stats.pktRcvUndecryptTotal)
116+
s.ByteSentTotal = int64(stats.byteSentTotal)
117+
s.ByteRecvTotal = int64(stats.byteRecvTotal)
118+
s.ByteRcvLossTotal = int64(stats.byteRcvLossTotal)
119+
120+
s.ByteRetransTotal = int64(stats.byteRetransTotal)
121+
s.ByteSndDropTotal = int64(stats.byteSndDropTotal)
122+
s.ByteRcvDropTotal = int64(stats.byteRcvDropTotal)
123+
s.ByteRcvUndecryptTotal = int64(stats.byteRcvUndecryptTotal)
124+
125+
s.PktSent = int64(stats.pktSent)
126+
s.PktRecv = int64(stats.pktRecv)
127+
s.PktSndLoss = int(stats.pktSndLoss)
128+
s.PktRcvLoss = int(stats.pktRcvLoss)
129+
s.PktRetrans = int(stats.pktRetrans)
130+
s.PktRcvRetrans = int(stats.pktRcvRetrans)
131+
s.PktSentACK = int(stats.pktSentACK)
132+
s.PktRecvACK = int(stats.pktRecvACK)
133+
s.PktSentNAK = int(stats.pktSentNAK)
134+
s.PktRecvNAK = int(stats.pktRecvNAK)
135+
s.MbpsSendRate = float64(stats.mbpsSendRate)
136+
s.MbpsRecvRate = float64(stats.mbpsRecvRate)
137+
s.UsSndDuration = int64(stats.usSndDuration)
138+
s.PktReorderDistance = int(stats.pktReorderDistance)
139+
s.PktRcvAvgBelatedTime = float64(stats.pktRcvAvgBelatedTime)
140+
s.PktRcvBelated = int64(stats.pktRcvBelated)
141+
142+
s.PktSndDrop = int(stats.pktSndDrop)
143+
s.PktRcvDrop = int(stats.pktRcvDrop)
144+
s.PktRcvUndecrypt = int(stats.pktRcvUndecrypt)
145+
s.ByteSent = int64(stats.byteSent)
146+
s.ByteRecv = int64(stats.byteRecv)
147+
148+
s.ByteRcvLoss = int64(stats.byteRcvLoss)
149+
s.ByteRetrans = int64(stats.byteRetrans)
150+
s.ByteSndDrop = int64(stats.byteSndDrop)
151+
s.ByteRcvDrop = int64(stats.byteRcvDrop)
152+
s.ByteRcvUndecrypt = int64(stats.byteRcvUndecrypt)
153+
154+
s.UsPktSndPeriod = float64(stats.usPktSndPeriod)
155+
s.PktFlowWindow = int(stats.pktFlowWindow)
156+
s.PktCongestionWindow = int(stats.pktCongestionWindow)
157+
s.PktFlightSize = int(stats.pktFlightSize)
158+
s.MsRTT = float64(stats.msRTT)
159+
s.MbpsBandwidth = float64(stats.mbpsBandwidth)
160+
s.ByteAvailSndBuf = int(stats.byteAvailSndBuf)
161+
s.ByteAvailRcvBuf = int(stats.byteAvailRcvBuf)
162+
163+
s.MbpsMaxBW = float64(stats.mbpsMaxBW)
164+
s.ByteMSS = int(stats.byteMSS)
165+
166+
s.PktSndBuf = int(stats.pktSndBuf)
167+
s.ByteSndBuf = int(stats.byteSndBuf)
168+
s.MsSndBuf = int(stats.msSndBuf)
169+
s.MsSndTsbPdDelay = int(stats.msSndTsbPdDelay)
170+
171+
s.PktRcvBuf = int(stats.pktRcvBuf)
172+
s.ByteRcvBuf = int(stats.byteRcvBuf)
173+
s.MsRcvBuf = int(stats.msRcvBuf)
174+
s.MsRcvTsbPdDelay = int(stats.msRcvTsbPdDelay)
175+
176+
s.PktSndFilterExtraTotal = int(stats.pktSndFilterExtraTotal)
177+
s.PktRcvFilterExtraTotal = int(stats.pktRcvFilterExtraTotal)
179178
s.PktRcvFilterSupplyTotal = int(stats.pktRcvFilterSupplyTotal)
180-
s.PktRcvFilterLossTotal = int(stats.pktRcvFilterLossTotal)
179+
s.PktRcvFilterLossTotal = int(stats.pktRcvFilterLossTotal)
181180

182-
s.PktSndFilterExtra = int(stats.pktSndFilterExtra)
183-
s.PktRcvFilterExtra = int(stats.pktRcvFilterExtra)
184-
s.PktRcvFilterSupply = int(stats.pktRcvFilterSupply)
185-
s.PktRcvFilterLoss = int(stats.pktRcvFilterLoss)
186-
s.PktReorderTolerance = int(stats.pktReorderTolerance)
181+
s.PktSndFilterExtra = int(stats.pktSndFilterExtra)
182+
s.PktRcvFilterExtra = int(stats.pktRcvFilterExtra)
183+
s.PktRcvFilterSupply = int(stats.pktRcvFilterSupply)
184+
s.PktRcvFilterLoss = int(stats.pktRcvFilterLoss)
185+
s.PktReorderTolerance = int(stats.pktReorderTolerance)
187186

188187
return s
189188
}

0 commit comments

Comments
 (0)
Please sign in to comment.