Fix producer request new track after start
This commit is contained in:
+12
-7
@@ -65,23 +65,28 @@ func (p *Producer) GetTrack(media *streamer.Media, codec *streamer.Codec) *strea
|
|||||||
return nil
|
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)
|
track := p.element.GetTrack(media, codec)
|
||||||
if track == nil {
|
if track == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, t := range p.tracks {
|
p.tracks = append(p.tracks, track)
|
||||||
if track == t {
|
|
||||||
return track
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if p.state == stateMedias {
|
if p.state == stateMedias {
|
||||||
p.state = stateTracks
|
p.state = stateTracks
|
||||||
}
|
}
|
||||||
|
|
||||||
p.tracks = append(p.tracks, track)
|
|
||||||
|
|
||||||
return track
|
return track
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user