修复stream序列化循环引用问题

This commit is contained in:
dexter
2023-01-02 14:46:42 +08:00
parent 688d7e8b51
commit 62ad580a0d

View File

@@ -7,6 +7,7 @@ import (
"m7s.live/engine/v4/config" "m7s.live/engine/v4/config"
"m7s.live/engine/v4/util" "m7s.live/engine/v4/util"
) )
type RTPWriter interface { type RTPWriter interface {
writeRTPFrame(frame *RTPFrame) writeRTPFrame(frame *RTPFrame)
} }
@@ -33,7 +34,6 @@ func (av *Media[T]) UnmarshalRTP(raw []byte) (frame *RTPFrame) {
return av.UnmarshalRTPPacket(&p) return av.UnmarshalRTPPacket(&p)
} }
// WriteRTPPack 写入已反序列化的RTP包 // WriteRTPPack 写入已反序列化的RTP包
func (av *Media[T]) WriteRTPPack(p *rtp.Packet) { func (av *Media[T]) WriteRTPPack(p *rtp.Packet) {
for frame := av.UnmarshalRTPPacket(p); frame != nil; frame = av.nextRTPFrame() { for frame := av.UnmarshalRTPPacket(p); frame != nil; frame = av.nextRTPFrame() {
@@ -48,12 +48,11 @@ func (av *Media[T]) WriteRTP(raw []byte) {
} }
} }
type RTPDemuxer struct { type RTPDemuxer struct {
lastSeq uint16 //上一个收到的序号,用于乱序重排 lastSeq uint16 //上一个收到的序号,用于乱序重排
lastSeq2 uint16 //记录上上一个收到的序列号 lastSeq2 uint16 //记录上上一个收到的序列号
乱序重排 util.RTPReorder[*RTPFrame] 乱序重排 util.RTPReorder[*RTPFrame]
RTPWriter RTPWriter `json:"-"`
} }
// 获取缓存中下一个rtpFrame // 获取缓存中下一个rtpFrame
@@ -87,6 +86,4 @@ func (av *RTPDemuxer) recorderRTP(frame *RTPFrame) *RTPFrame {
type RTPMuxer struct { type RTPMuxer struct {
rtpSequence uint16 //用于生成下一个rtp包的序号 rtpSequence uint16 //用于生成下一个rtp包的序号
} }