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

Method WriteAudioFrame

memory-ts.go:146–164  ·  view source on GitHub ↗
(frame AudioFrame, pes *mpegts.MpegtsPESFrame)

Source from the content-addressed store, hash-verified

144}
145
146func (ts *MemoryTs) WriteAudioFrame(frame AudioFrame, pes *mpegts.MpegtsPESFrame) (err error) {
147 // packetLength = 原始音频流长度 + adts(7) + MpegTsOptionalPESHeader长度(8 bytes, 因为只含有pts)
148 var packet mpegts.MpegTsPESPacket
149 if frame.CodecID == codec.CodecID_AAC {
150 packet.Header.PesPacketLength = uint16(7 + frame.AUList.ByteLength + 8)
151 packet.Buffers = frame.GetADTS()
152 } else {
153 packet.Header.PesPacketLength = uint16(frame.AUList.ByteLength + 8)
154 packet.Buffers = frame.AUList.ToBuffers()
155 }
156 packet.Header.PacketStartCodePrefix = 0x000001
157 packet.Header.ConstTen = 0x80
158 packet.Header.StreamID = mpegts.STREAM_ID_AUDIO
159 packet.Header.Pts = uint64(frame.PTS)
160 pes.ProgramClockReferenceBase = packet.Header.Pts
161 packet.Header.PtsDtsFlags = 0x80
162 packet.Header.PesHeaderDataLength = 5
163 return ts.WritePESPacket(pes, packet)
164}
165
166func (ts *MemoryTs) WriteVideoFrame(frame VideoFrame, pes *mpegts.MpegtsPESFrame) (err error) {
167 var buffer net.Buffers

Callers

nothing calls this directly

Calls 3

WritePESPacketMethod · 0.95
GetADTSMethod · 0.80
ToBuffersMethod · 0.45

Tested by

no test coverage detected