Merge branch 'develop'

This commit is contained in:
hkmadao
2024-11-23 11:28:29 +08:00
4 changed files with 13 additions and 8 deletions
@@ -136,6 +136,7 @@ func (hfw *HttpFlvWriter) httpWrite() {
func (hfw *HttpFlvWriter) changeNotBlockStream(pktStream <-chan av.Packet) <-chan av.Packet {
notBlockStream := make(chan av.Packet, 1024)
go func() {
defer close(notBlockStream)
for {
select {
case pkt, ok := <-pktStream:
@@ -162,10 +162,12 @@ func (rfw *RtmpFlvWriter) writerPacket(pkt av.Packet, templateTime *time.Time) e
}
var err error
err = rfw.conn.WriteHeader(rfw.codecs)
logs.Info("KeyFrame WriteHeader to rtmp server : %s, codesc: %v", rfw.code, rfw.codecs)
if err != nil {
logs.Error("writer header to rtmp server error : %v", err)
return err
}
logs.Info("KeyFrame WriteHeader to rtmp server success : %s", rfw.code)
err = rfw.conn.WritePacket(pkt)
if err != nil {
logs.Error("writer packet to rtmp server error : %v", err)
+6 -6
View File
@@ -29,9 +29,9 @@ func NewRtspClient(connDone <-chan int, pktStream <-chan av.Packet, code string,
pktStream: pktStream,
code: code,
codecs: codecs,
ffmPktStream: make(chan av.Packet),
hfmPktStream: make(chan av.Packet),
rfmPktStream: make(chan av.Packet),
ffmPktStream: make(chan av.Packet, 1024),
hfmPktStream: make(chan av.Packet, 1024),
rfmPktStream: make(chan av.Packet, 1024),
ircm: ircm,
}
r.pktTransfer()
@@ -55,9 +55,9 @@ func (r *RtspClient) pktTransfer() {
func tee(done <-chan int, in <-chan av.Packet) (<-chan av.Packet, <-chan av.Packet, <-chan av.Packet) {
//设置缓冲,调节前后速率
out1 := make(chan av.Packet, 50)
out2 := make(chan av.Packet, 50)
out3 := make(chan av.Packet, 50)
out1 := make(chan av.Packet, 1024)
out2 := make(chan av.Packet, 1024)
out3 := make(chan av.Packet, 1024)
go func() {
defer close(out1)
defer close(out2)
@@ -96,12 +96,14 @@ func (s *RtspClientManager) serveStreams() {
func (s *RtspClientManager) connRtsp(code string) {
defer func() {
s.rcs.Delete(code)
s.conns.Delete(code)
if r := recover(); r != nil {
logs.Error("system painc : %v \nstack : %v", r, string(debug.Stack()))
}
}()
defer func() {
s.rcs.Delete(code)
s.conns.Delete(code)
}()
//放置信息表示已经开始
s.rcs.Store(code, struct{}{})
q := models.Camera{Code: code}