From 77842643c86572e2aa62e4c9032bf7a299f1d7ea Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Wed, 8 Mar 2023 20:52:06 +0300 Subject: [PATCH] Rewrite Tapo producer --- pkg/tapo/producer.go | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/pkg/tapo/producer.go b/pkg/tapo/producer.go index 18227244..e714cc7e 100644 --- a/pkg/tapo/producer.go +++ b/pkg/tapo/producer.go @@ -48,31 +48,29 @@ func (c *Client) GetTrack(media *streamer.Media, codec *streamer.Codec) (track * c.tracks = map[byte]*streamer.Track{} } - if media.Kind == streamer.KindVideo { + if media.Direction == streamer.DirectionSendonly { + var payloadType byte + if media.Kind == streamer.KindVideo { + payloadType = mpegts.StreamTypeH264 + } else { + payloadType = mpegts.StreamTypePCMATapo + } + if err := c.SetupStream(); err != nil { return nil } track = streamer.NewTrack(media, codec) - c.tracks[mpegts.StreamTypeH264] = track + c.tracks[payloadType] = track } else { - if media.Direction == streamer.DirectionSendonly { - if err := c.SetupStream(); err != nil { - return nil - } + if err := c.SetupBackchannel(); err != nil { + return nil + } + if w := c.backchannelWriter(); w != nil { track = streamer.NewTrack(media, codec) - c.tracks[mpegts.StreamTypePCMATapo] = track - } else { - if err := c.SetupBackchannel(); err != nil { - return nil - } - - if w := c.backchannelWriter(); w != nil { - track = streamer.NewTrack(media, codec) - track.Bind(w) - c.tracks[0] = track - } + track.Bind(w) + c.tracks[0] = track } }