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

Loading…
Cancel
Save