noop.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package interceptor
  2. // NoOp is an Interceptor that does not modify any packets. It can embedded in other interceptors, so it's
  3. // possible to implement only a subset of the methods.
  4. type NoOp struct{}
  5. // BindRTCPReader lets you modify any incoming RTCP packets. It is called once per sender/receiver, however this might
  6. // change in the future. The returned method will be called once per packet batch.
  7. func (i *NoOp) BindRTCPReader(reader RTCPReader) RTCPReader {
  8. return reader
  9. }
  10. // BindRTCPWriter lets you modify any outgoing RTCP packets. It is called once per PeerConnection. The returned method
  11. // will be called once per packet batch.
  12. func (i *NoOp) BindRTCPWriter(writer RTCPWriter) RTCPWriter {
  13. return writer
  14. }
  15. // BindLocalStream lets you modify any outgoing RTP packets. It is called once for per LocalStream. The returned method
  16. // will be called once per rtp packet.
  17. func (i *NoOp) BindLocalStream(_ *StreamInfo, writer RTPWriter) RTPWriter {
  18. return writer
  19. }
  20. // UnbindLocalStream is called when the Stream is removed. It can be used to clean up any data related to that track.
  21. func (i *NoOp) UnbindLocalStream(_ *StreamInfo) {}
  22. // BindRemoteStream lets you modify any incoming RTP packets. It is called once for per RemoteStream. The returned method
  23. // will be called once per rtp packet.
  24. func (i *NoOp) BindRemoteStream(_ *StreamInfo, reader RTPReader) RTPReader {
  25. return reader
  26. }
  27. // UnbindRemoteStream is called when the Stream is removed. It can be used to clean up any data related to that track.
  28. func (i *NoOp) UnbindRemoteStream(_ *StreamInfo) {}
  29. // Close closes the Interceptor, cleaning up any data if necessary.
  30. func (i *NoOp) Close() error {
  31. return nil
  32. }