Browse Source

fix: stream is nil course panic

pull/6/head
halwu(吴浩麟) 8 years ago
parent
commit
f6a8749f3f
  1. 31
      protocol/rtmp/stream.go

31
protocol/rtmp/stream.go

@ -27,22 +27,25 @@ func NewRtmpStream() *RtmpStream {
func (rs *RtmpStream) HandleReader(r av.ReadCloser) { func (rs *RtmpStream) HandleReader(r av.ReadCloser) {
info := r.Info() info := r.Info()
var s *Stream var stream *Stream
ok := rs.streams.Has(info.Key) i, ok := rs.streams.Get(info.Key)
if !ok { if ok {
s = NewStream() if s, ok := i.(*Stream); ok {
rs.streams.Set(info.Key, s) s.TransStop()
} else { id := s.ID()
s.TransStop() if id != EmptyID && id != info.UID {
id := s.ID() ns := NewStream()
if id != EmptyID && id != info.UID { s.Copy(ns)
ns := NewStream() s = ns
s.Copy(ns) rs.streams.Set(info.Key, ns)
s = ns }
rs.streams.Set(info.Key, ns)
} }
} else {
stream = NewStream()
rs.streams.Set(info.Key, stream)
} }
s.AddReader(r)
stream.AddReader(r)
} }
func (rs *RtmpStream) HandleWriter(w av.WriteCloser) { func (rs *RtmpStream) HandleWriter(w av.WriteCloser) {

Loading…
Cancel
Save