@@ -93,8 +93,8 @@ func (b CCFeedbackReport) DestinationSSRC() []uint32 {
93
93
}
94
94
95
95
// Len returns the length of the report in bytes
96
- func (b * CCFeedbackReport ) Len () uint16 {
97
- n := uint16 ( 0 )
96
+ func (b * CCFeedbackReport ) Len () int {
97
+ n := 0
98
98
for _ , block := range b .ReportBlocks {
99
99
n += block .len ()
100
100
}
@@ -107,7 +107,7 @@ func (b *CCFeedbackReport) Header() Header {
107
107
Padding : false ,
108
108
Count : FormatCCFB ,
109
109
Type : TypeTransportSpecificFeedback ,
110
- Length : b .Len ()/ 4 - 1 ,
110
+ Length : uint16 ( b .Len ()/ 4 - 1 ) ,
111
111
}
112
112
}
113
113
@@ -122,7 +122,7 @@ func (b CCFeedbackReport) Marshal() ([]byte, error) {
122
122
buf := make ([]byte , length )
123
123
copy (buf [:headerLength ], headerBuf )
124
124
binary .BigEndian .PutUint32 (buf [headerLength :], b .SenderSSRC )
125
- offset := uint16 ( reportBlockOffset )
125
+ offset := reportBlockOffset
126
126
for _ , block := range b .ReportBlocks {
127
127
b , err := block .marshal ()
128
128
if err != nil {
@@ -164,10 +164,10 @@ func (b *CCFeedbackReport) Unmarshal(rawPacket []byte) error {
164
164
165
165
b .SenderSSRC = binary .BigEndian .Uint32 (rawPacket [headerLength :])
166
166
167
- reportTimestampOffset := uint16 ( len (rawPacket ) - reportTimestampLength )
167
+ reportTimestampOffset := len (rawPacket ) - reportTimestampLength
168
168
b .ReportTimestamp = binary .BigEndian .Uint32 (rawPacket [reportTimestampOffset :])
169
169
170
- offset := uint16 ( reportBlockOffset )
170
+ offset := reportBlockOffset
171
171
b .ReportBlocks = []CCFeedbackReportBlock {}
172
172
for offset < reportTimestampOffset {
173
173
var block CCFeedbackReportBlock
@@ -199,12 +199,12 @@ type CCFeedbackReportBlock struct {
199
199
}
200
200
201
201
// len returns the length of the report block in bytes
202
- func (b * CCFeedbackReportBlock ) len () uint16 {
202
+ func (b * CCFeedbackReportBlock ) len () int {
203
203
n := len (b .MetricBlocks )
204
204
if n % 2 != 0 {
205
205
n ++
206
206
}
207
- return reportsOffset + 2 * uint16 ( n )
207
+ return reportsOffset + 2 * n
208
208
}
209
209
210
210
func (b CCFeedbackReportBlock ) String () string {
@@ -263,13 +263,14 @@ func (b *CCFeedbackReportBlock) unmarshal(rawPacket []byte) error {
263
263
}
264
264
265
265
endSequence := b .BeginSequence + numReportsField
266
- numReports := endSequence - b .BeginSequence + 1
266
+ numReports := int ( endSequence - b .BeginSequence + 1 )
267
267
268
- if len (rawPacket ) < reportsOffset + int ( numReports ) * 2 {
268
+ if len (rawPacket ) < reportsOffset + numReports * 2 {
269
269
return errIncorrectNumReports
270
270
}
271
+
271
272
b .MetricBlocks = make ([]CCFeedbackMetricBlock , numReports )
272
- for i := uint16 (0 ); i < numReports ; i ++ {
273
+ for i := int (0 ); i < numReports ; i ++ {
273
274
var mb CCFeedbackMetricBlock
274
275
offset := reportsOffset + 2 * i
275
276
if err := mb .unmarshal (rawPacket [offset : offset + 2 ]); err != nil {
0 commit comments