Browse Source

excepting errors on writing response, in NewFLVWriter. #132 issue

pull/143/head
simus 6 years ago
parent
commit
f91633fd70
  1. 4
      protocol/httpflv/server.go
  2. 11
      protocol/httpflv/writer.go

4
protocol/httpflv/server.go

@ -40,7 +40,9 @@ func (server *Server) Serve(l net.Listener) error {
mux.HandleFunc("/streams", func(w http.ResponseWriter, r *http.Request) { mux.HandleFunc("/streams", func(w http.ResponseWriter, r *http.Request) {
server.getStream(w, r) server.getStream(w, r)
}) })
http.Serve(l, mux) if err := http.Serve(l, mux); err != nil {
return err
}
return nil return nil
} }

11
protocol/httpflv/writer.go

@ -42,15 +42,22 @@ func NewFLVWriter(app, title, url string, ctx http.ResponseWriter) *FLVWriter {
packetQueue: make(chan *av.Packet, maxQueueNum), packetQueue: make(chan *av.Packet, maxQueueNum),
} }
ret.ctx.Write([]byte{0x46, 0x4c, 0x56, 0x01, 0x05, 0x00, 0x00, 0x00, 0x09}) if _, err := ret.ctx.Write([]byte{0x46, 0x4c, 0x56, 0x01, 0x05, 0x00, 0x00, 0x00, 0x09}); err != nil {
log.Errorf("Error on response writer")
ret.closed = true
}
pio.PutI32BE(ret.buf[:4], 0) pio.PutI32BE(ret.buf[:4], 0)
ret.ctx.Write(ret.buf[:4]) if _, err := ret.ctx.Write(ret.buf[:4]); err != nil {
log.Errorf("Error on response writer")
ret.closed = true
}
go func() { go func() {
err := ret.SendPacket() err := ret.SendPacket()
if err != nil { if err != nil {
log.Error("SendPacket error: ", err) log.Error("SendPacket error: ", err)
ret.closed = true ret.closed = true
} }
}() }()
return ret return ret
} }

Loading…
Cancel
Save