From ec3e9230eda3b8e69c4c6e951f05838f81331705 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Sat, 24 Apr 2021 17:07:13 +0200 Subject: [PATCH] HLS client: flush buffers after every write --- internal/serverhls/server.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/internal/serverhls/server.go b/internal/serverhls/server.go index 3937d8b1..d96d6fee 100644 --- a/internal/serverhls/server.go +++ b/internal/serverhls/server.go @@ -110,7 +110,20 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { res := <-cres if res != nil { - io.Copy(w, res) + buf := make([]byte, 4096) + for { + n, err := res.Read(buf) + if err != nil { + return + } + + _, err = w.Write(buf[:n]) + if err != nil { + return + } + + w.(http.Flusher).Flush() + } } }