mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 23:26:58 +08:00

This change caused a ~24% performance decrease
Relates to pion/webrtc#1564
This reverts commit 47a7a64898
.
30 lines
607 B
Go
30 lines
607 B
Go
// +build !js
|
|
|
|
package webrtc
|
|
|
|
import (
|
|
"sync/atomic"
|
|
|
|
"github.com/pion/interceptor"
|
|
"github.com/pion/rtp"
|
|
)
|
|
|
|
type interceptorTrackLocalWriter struct {
|
|
TrackLocalWriter
|
|
rtpWriter atomic.Value
|
|
}
|
|
|
|
func (i *interceptorTrackLocalWriter) setRTPWriter(writer interceptor.RTPWriter) {
|
|
i.rtpWriter.Store(writer)
|
|
}
|
|
|
|
func (i *interceptorTrackLocalWriter) WriteRTP(header *rtp.Header, payload []byte) (int, error) {
|
|
writer := i.rtpWriter.Load().(interceptor.RTPWriter)
|
|
|
|
if writer == nil {
|
|
return 0, nil
|
|
}
|
|
|
|
return writer.Write(&rtp.Packet{Header: *header, Payload: payload}, make(interceptor.Attributes))
|
|
}
|