(frame AudioFrame, pes *mpegts.MpegtsPESFrame)
| 144 | } |
| 145 | |
| 146 | func (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 | |
| 166 | func (ts *MemoryTs) WriteVideoFrame(frame VideoFrame, pes *mpegts.MpegtsPESFrame) (err error) { |
| 167 | var buffer net.Buffers |
nothing calls this directly
no test coverage detected