mirror of
https://github.com/livekit/livekit.git
synced 2026-10-23 21:44:29 +00:00
Skip restart callback if external. (#4208)
* Skip restart callback if external. Without out the external restart was bumping forwarder generation twice. * fix sense
This commit is contained in:
1 parent
dde4fb498e
commit
1a4758ed9c
2 files changed
+7
-6
No files matched your search
@@ -487,11 +487,11 @@ func (b *BufferBase) RestartStream(reason string) {
|
||||
b.Lock()
|
||||
defer b.Unlock()
|
||||
|
||||
b.restartStreamLocked(reason)
|
||||
b.restartStreamLocked(reason, false)
|
||||
b.readCond.Broadcast()
|
||||
}
|
||||
|
||||
func (b *BufferBase) restartStreamLocked(reason string) {
|
||||
func (b *BufferBase) restartStreamLocked(reason string, isDetected bool) {
|
||||
b.logger.Infow("stream restart", "reason", reason)
|
||||
|
||||
// stop
|
||||
@@ -530,7 +530,7 @@ func (b *BufferBase) restartStreamLocked(reason string) {
|
||||
|
||||
b.isRestartPending = true
|
||||
|
||||
if f := b.onStreamRestart; f != nil {
|
||||
if f := b.onStreamRestart; f != nil && isDetected {
|
||||
go f(reason)
|
||||
}
|
||||
}
|
||||
@@ -754,7 +754,7 @@ func (b *BufferBase) HandleIncomingPacketLocked(
|
||||
return 0, fmt.Errorf("unhandled reason: %s", flowState.UnhandledReason.String())
|
||||
}
|
||||
|
||||
b.restartStreamLocked("discontinuity")
|
||||
b.restartStreamLocked("discontinuity", true)
|
||||
|
||||
flowState = b.rtpStats.Update(
|
||||
arrivalTime,
|
||||
@@ -964,7 +964,7 @@ func (b *BufferBase) handleCodecChange(newPT uint8) {
|
||||
b.rtxPayloadType = rtxPt
|
||||
b.mime = mime.NormalizeMimeType(newCodec.MimeType)
|
||||
|
||||
b.restartStreamLocked("codec-change")
|
||||
b.restartStreamLocked("codec-change", true)
|
||||
|
||||
if f := b.onCodecChange; f != nil {
|
||||
go f(newCodec)
|
||||
|
||||
@@ -904,6 +904,7 @@ func (r *ReceiverBase) forwardRTP(
|
||||
"numPacketsDropped", numPacketsDropped,
|
||||
"forwarderGeneration", forwarderGeneration,
|
||||
"forwardersGeneration", r.forwardersGeneration.Load(),
|
||||
"errror", err,
|
||||
)
|
||||
wg.Done()
|
||||
}()
|
||||
@@ -915,7 +916,7 @@ func (r *ReceiverBase) forwardRTP(
|
||||
}
|
||||
|
||||
pktBuf := make([]byte, bucket.RTPMaxPktSize)
|
||||
r.params.Logger.Debugw("starting forwarding", "layer", layer)
|
||||
r.params.Logger.Debugw("starting forwarding", "layer", layer, "forwarderGeneration", forwarderGeneration)
|
||||
|
||||
for r.forwardersGeneration.Load() == forwarderGeneration {
|
||||
extPkt, err = buff.ReadExtended(pktBuf)
|
||||
|
||||
Reference in new issue
Block a user