From b6579122d1037934bccf33e1007a15e76bd2f166 Mon Sep 17 00:00:00 2001 From: seydx Date: Fri, 6 Jun 2025 03:11:28 +0200 Subject: [PATCH] fix --- internal/streams/api.go | 12 +++++++++--- pkg/preload/producer.go | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/internal/streams/api.go b/internal/streams/api.go index c0c6744b..47febeb4 100644 --- a/internal/streams/api.go +++ b/internal/streams/api.go @@ -140,14 +140,15 @@ func apiPreload(w http.ResponseWriter, r *http.Request) { switch r.Method { case "PUT": // check if stream exists - if stream := Get(src); stream == nil { + stream := Get(src) + if stream == nil { http.Error(w, "stream not found", http.StatusNotFound) return } // check if consumer exists if cons, ok := preloads[src]; ok { - cons.Stop() + stream.RemoveConsumer(cons) delete(preloads, src) } @@ -172,7 +173,12 @@ func apiPreload(w http.ResponseWriter, r *http.Request) { case "DELETE": if cons, ok := preloads[src]; ok { - cons.Stop() + if stream := Get(src); stream != nil { + stream.RemoveConsumer(cons) + } else { + cons.Stop() + } + delete(preloads, src) } diff --git a/pkg/preload/producer.go b/pkg/preload/producer.go index 05a50d52..932f5e29 100644 --- a/pkg/preload/producer.go +++ b/pkg/preload/producer.go @@ -9,7 +9,7 @@ import ( type Preload struct { core.Connection - Closed core.Waiter + closed core.Waiter } func NewPreload(name string, query url.Values) *Preload { @@ -74,7 +74,7 @@ func (p *Preload) GetTrack(media *core.Media, codec *core.Codec) (*core.Receiver } func (p *Preload) Start() error { - p.Closed.Wait() + p.closed.Wait() return nil } @@ -85,6 +85,6 @@ func (p *Preload) Stop() error { for _, sender := range p.Senders { sender.Close() } - p.Closed.Done(nil) + p.closed.Done(nil) return nil }