diff --git a/pkg/tapo/consumer.go b/pkg/tapo/consumer.go new file mode 100644 index 00000000..f39be437 --- /dev/null +++ b/pkg/tapo/consumer.go @@ -0,0 +1,18 @@ +package tapo + +import ( + "github.com/AlexxIT/go2rtc/pkg/streamer" + "github.com/pion/rtp" +) + +func (c *Client) AddTrack(media *streamer.Media, track *streamer.Track) *streamer.Track { + consCodec := media.MatchCodec(track.Codec) + consTrack := c.GetTrack(media, consCodec) + if consTrack == nil { + return nil + } + + return track.Bind(func(packet *rtp.Packet) error { + return consTrack.WriteRTP(packet) + }) +}