rtpreceiver_go.go 959 B

123456789101112131415161718192021222324252627282930313233
  1. //go:build !js
  2. // +build !js
  3. package webrtc
  4. import "github.com/pion/interceptor"
  5. // SetRTPParameters applies provided RTPParameters the RTPReceiver's tracks.
  6. //
  7. // This method is part of the ORTC API. It is not
  8. // meant to be used together with the basic WebRTC API.
  9. //
  10. // The amount of provided codecs must match the number of tracks on the receiver.
  11. func (r *RTPReceiver) SetRTPParameters(params RTPParameters) {
  12. headerExtensions := make([]interceptor.RTPHeaderExtension, 0, len(params.HeaderExtensions))
  13. for _, h := range params.HeaderExtensions {
  14. headerExtensions = append(headerExtensions, interceptor.RTPHeaderExtension{ID: h.ID, URI: h.URI})
  15. }
  16. r.mu.Lock()
  17. defer r.mu.Unlock()
  18. for ndx, codec := range params.Codecs {
  19. currentTrack := r.tracks[ndx].track
  20. r.tracks[ndx].streamInfo.RTPHeaderExtensions = headerExtensions
  21. currentTrack.mu.Lock()
  22. currentTrack.codec = codec
  23. currentTrack.params = params
  24. currentTrack.mu.Unlock()
  25. }
  26. }