mirror of
https://github.com/livekit/livekit.git
synced 2026-03-30 17:45:40 +00:00
Fix DD tracker addition. (#2751)
DD uses a wrapped tracker. Check only stream tracker manager field for existing tracker.
This commit is contained in:
@@ -170,37 +170,40 @@ func (s *StreamTrackerManager) AddDependencyDescriptorTrackers() {
|
||||
func (s *StreamTrackerManager) AddTracker(layer int32) streamtracker.StreamTrackerWorker {
|
||||
var tracker streamtracker.StreamTrackerWorker
|
||||
s.lock.Lock()
|
||||
if s.ddTracker != nil {
|
||||
tracker = s.ddTracker.LayeredTracker(layer)
|
||||
} else {
|
||||
tracker = s.trackers[layer]
|
||||
}
|
||||
s.lock.Unlock()
|
||||
tracker = s.trackers[layer]
|
||||
if tracker != nil {
|
||||
s.lock.Unlock()
|
||||
return tracker
|
||||
}
|
||||
|
||||
if s.ddTracker != nil {
|
||||
tracker = s.ddTracker.LayeredTracker(layer)
|
||||
}
|
||||
s.lock.Unlock()
|
||||
|
||||
bitrateInterval, ok := s.trackerConfig.BitrateReportInterval[layer]
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
|
||||
var trackerImpl streamtracker.StreamTrackerImpl
|
||||
switch s.trackerConfig.StreamTrackerType {
|
||||
case config.StreamTrackerTypePacket:
|
||||
trackerImpl = s.createStreamTrackerPacket(layer)
|
||||
case config.StreamTrackerTypeFrame:
|
||||
trackerImpl = s.createStreamTrackerFrame(layer)
|
||||
}
|
||||
if trackerImpl == nil {
|
||||
return nil
|
||||
}
|
||||
if tracker == nil {
|
||||
var trackerImpl streamtracker.StreamTrackerImpl
|
||||
switch s.trackerConfig.StreamTrackerType {
|
||||
case config.StreamTrackerTypePacket:
|
||||
trackerImpl = s.createStreamTrackerPacket(layer)
|
||||
case config.StreamTrackerTypeFrame:
|
||||
trackerImpl = s.createStreamTrackerFrame(layer)
|
||||
}
|
||||
if trackerImpl == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
tracker = streamtracker.NewStreamTracker(streamtracker.StreamTrackerParams{
|
||||
StreamTrackerImpl: trackerImpl,
|
||||
BitrateReportInterval: bitrateInterval,
|
||||
Logger: s.logger.WithValues("layer", layer),
|
||||
})
|
||||
tracker = streamtracker.NewStreamTracker(streamtracker.StreamTrackerParams{
|
||||
StreamTrackerImpl: trackerImpl,
|
||||
BitrateReportInterval: bitrateInterval,
|
||||
Logger: s.logger.WithValues("layer", layer),
|
||||
})
|
||||
}
|
||||
|
||||
s.logger.Debugw("stream tracker add track", "layer", layer)
|
||||
tracker.OnStatusChanged(func(status streamtracker.StreamStatus) {
|
||||
|
||||
Reference in New Issue
Block a user