MCPcopy Create free account
hub / github.com/Monibuca/engine / CompleteRTP

Method CompleteRTP

track/aac.go:113–123  ·  view source on GitHub ↗
(value *AVFrame)

Source from the content-addressed store, hash-verified

111}
112
113func (aac *AAC) CompleteRTP(value *AVFrame) {
114 l := value.AUList.ByteLength
115 //AU_HEADER_LENGTH,因为单位是bit, 除以8就是auHeader的字节长度;又因为单个auheader字节长度2字节,所以再除以2就是auheader的个数。
116 auHeaderLen := []byte{0x00, 0x10, (byte)((l & 0x1fe0) >> 5), (byte)((l & 0x1f) << 3)} // 3 = 16-13, 5 = 8-3
117 var packets [][][]byte
118 r := value.AUList.Next.Value.NewReader()
119 for bufs := r.ReadN(RTPMTU); len(bufs) > 0; bufs = r.ReadN(RTPMTU) {
120 packets = append(packets, append(net.Buffers{auHeaderLen}, bufs...))
121 }
122 aac.PacketizeRTP(packets...)
123}

Callers

nothing calls this directly

Calls 3

PacketizeRTPMethod · 0.80
ReadNMethod · 0.65
NewReaderMethod · 0.45

Tested by

no test coverage detected