|
4 | 4 | "sync" |
5 | 5 | "sync/atomic" |
6 | 6 |
|
| 7 | + log "github.com/pion/ion-log" |
| 8 | + |
7 | 9 | "github.com/pion/interceptor" |
8 | 10 | "github.com/pion/rtcp" |
9 | 11 | "github.com/pion/rtp" |
@@ -84,7 +86,9 @@ func (i *Interceptor) BindRTCPReader(reader interceptor.RTCPReader) interceptor. |
84 | 86 |
|
85 | 87 | func (i *Interceptor) BindRTCPWriter(writer interceptor.RTCPWriter) interceptor.RTCPWriter { |
86 | 88 | i.twcc.onFeedback = func(pkts []rtcp.Packet) { |
87 | | - writer.Write(pkts, nil) |
| 89 | + if _, err := writer.Write(pkts, nil); err != nil { |
| 90 | + log.Errorf("Writing buffer twcc rtcp err: %v", err) |
| 91 | + } |
88 | 92 | } |
89 | 93 | i.rtcpWriter.Store(writer) |
90 | 94 | return writer |
@@ -127,12 +131,21 @@ func (i *Interceptor) newBuffer(info *interceptor.StreamInfo) *Buffer { |
127 | 131 | buffer := NewBuffer(info, Options{}) |
128 | 132 | buffer.onFeedback(func(pkts []rtcp.Packet) { |
129 | 133 | if p, ok := i.rtcpWriter.Load().(interceptor.RTCPWriter); ok { |
130 | | - p.Write(pkts, nil) |
| 134 | + if _, err := p.Write(pkts, nil); err != nil { |
| 135 | + log.Errorf("Writing buffer rtcp err: %v", err) |
| 136 | + } |
131 | 137 | } |
132 | 138 | }) |
133 | 139 | buffer.onTransportWideCC(func(sn uint16, timeNS int64, marker bool) { |
134 | 140 | i.twcc.push(sn, timeNS, marker) |
135 | 141 | }) |
| 142 | + buffer.onNack(func(fb *rtcp.TransportLayerNack) { |
| 143 | + if p, ok := i.rtcpWriter.Load().(interceptor.RTCPWriter); ok { |
| 144 | + if _, err := p.Write([]rtcp.Packet{fb}, nil); err != nil { |
| 145 | + log.Errorf("Writing buffer rtcp err: %v", err) |
| 146 | + } |
| 147 | + } |
| 148 | + }) |
136 | 149 | i.Lock() |
137 | 150 | i.buffers = append(i.buffers, buffer) |
138 | 151 | i.twcc.mSSRC = info.SSRC |
|
0 commit comments