Fix loopback for stream
This commit is contained in:
@@ -59,10 +59,6 @@ func (p *Producer) GetTrack(media *streamer.Media, codec *streamer.Codec) *strea
|
|||||||
p.mx.Lock()
|
p.mx.Lock()
|
||||||
defer p.mx.Unlock()
|
defer p.mx.Unlock()
|
||||||
|
|
||||||
if p.state == stateMedias {
|
|
||||||
p.state = stateTracks
|
|
||||||
}
|
|
||||||
|
|
||||||
track := p.element.GetTrack(media, codec)
|
track := p.element.GetTrack(media, codec)
|
||||||
if track == nil {
|
if track == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -74,6 +70,10 @@ func (p *Producer) GetTrack(media *streamer.Media, codec *streamer.Codec) *strea
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if p.state == stateMedias {
|
||||||
|
p.state = stateTracks
|
||||||
|
}
|
||||||
|
|
||||||
p.tracks = append(p.tracks, track)
|
p.tracks = append(p.tracks, track)
|
||||||
|
|
||||||
return track
|
return track
|
||||||
@@ -82,13 +82,13 @@ func (p *Producer) GetTrack(media *streamer.Media, codec *streamer.Codec) *strea
|
|||||||
// internals
|
// internals
|
||||||
|
|
||||||
func (p *Producer) start() {
|
func (p *Producer) start() {
|
||||||
p.mx.Lock()
|
|
||||||
defer p.mx.Unlock()
|
|
||||||
|
|
||||||
if p.state != stateTracks {
|
if p.state != stateTracks {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p.mx.Lock()
|
||||||
|
defer p.mx.Unlock()
|
||||||
|
|
||||||
log.Debug().Str("url", p.url).Msg("[streams] start producer")
|
log.Debug().Str("url", p.url).Msg("[streams] start producer")
|
||||||
|
|
||||||
p.state = stateStart
|
p.state = stateStart
|
||||||
|
|||||||
Reference in New Issue
Block a user