From c06253c8b27d70a25830e84a001ff2a773d78a9a Mon Sep 17 00:00:00 2001 From: Alexey Khit Date: Mon, 7 Nov 2022 17:48:45 +0300 Subject: [PATCH] Fix producer request new track after start --- cmd/streams/producer.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/cmd/streams/producer.go b/cmd/streams/producer.go index cfe3afcd..af6869dc 100644 --- a/cmd/streams/producer.go +++ b/cmd/streams/producer.go @@ -65,23 +65,28 @@ func (p *Producer) GetTrack(media *streamer.Media, codec *streamer.Codec) *strea return nil } + for _, track := range p.tracks { + if track.Codec == codec { + return track + } + } + + // can't get new tracks after start + if p.state == stateStart { + return nil + } + track := p.element.GetTrack(media, codec) if track == nil { return nil } - for _, t := range p.tracks { - if track == t { - return track - } - } + p.tracks = append(p.tracks, track) if p.state == stateMedias { p.state = stateTracks } - p.tracks = append(p.tracks, track) - return track }