From 2a2b00b8628574c3ff69def79a180d5aceb43c3f Mon Sep 17 00:00:00 2001 From: langhuihui <178529795@qq.com> Date: Wed, 3 Dec 2025 10:44:37 +0800 Subject: [PATCH] fix: publish timeout --- publisher.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/publisher.go b/publisher.go index eb574d3..9e5b4a2 100644 --- a/publisher.go +++ b/publisher.go @@ -163,33 +163,33 @@ func (p *Publisher) Go() error { switch p.State { case PublisherStateInit: if p.HasAudioTrack() || p.HasVideoTrack() { - if p.Publish.IdleTimeout > 0 && time.Since(p.StartTime) > p.Publish.IdleTimeout { - p.Stop(ErrPublishIdleTimeout) - } } else { - p.Stop(ErrPublishTimeout) + return ErrPublishTimeout } case PublisherStateSubscribed: case PublisherStateWaitSubscriber: if p.Publish.DelayCloseTimeout > 0 { - p.Stop(ErrPublishDelayCloseTimeout) + return ErrPublishDelayCloseTimeout } } case <-noDataCheck.C: if p.Paused != nil { continue } + if p.State == PublisherStateInit && p.Publish.IdleTimeout > 0 && time.Since(p.StartTime) > p.Publish.IdleTimeout { + return ErrPublishIdleTimeout + } if p.PubVideo && p.VideoTrack.CheckTimeout(p.PublishTimeout) { p.Error("video timeout", "writeTime", p.VideoTrack.LastValue.WriteTime) if !p.HasAudioTrack() { - p.Stop(ErrPublishTimeout) + return ErrPublishTimeout } p.NoVideo() } if p.PubAudio && p.AudioTrack.CheckTimeout(p.PublishTimeout) { p.Error("audio timeout", "writeTime", p.AudioTrack.LastValue.WriteTime) if !p.HasVideoTrack() { - p.Stop(ErrPublishTimeout) + return ErrPublishTimeout } p.NoAudio() }