fix ContinuityCounter bug

This commit is contained in:
deepch 2022-07-16 16:02:21 +03:00
parent 37a9a8619c
commit 31d128e853

View File

@ -67,11 +67,16 @@ func (self *Muxer) newStream(idx int, codec av.CodecData) (err error) {
return
}
func (self *Muxer) writePaddingTSPackets(tsw *tsio.TSWriter) (err error) {
for tsw.ContinuityCounter&0xf != 0x0 {
if err = tsw.WritePackets(self.w, self.datav[:1], 0, false, true); err != nil {
func (self *Muxer) writePaddingTSPackets(streamW *Stream) (err error) {
for streamW.tsw.ContinuityCounter&0xf != 0x0 {
header := tsio.TSHeader{
PID: uint(streamW.pid),
ContinuityCounter: streamW.tsw.ContinuityCounter,
}
if _, err = tsio.WriteTSHeader(self.w, header, 0); err != nil {
return
}
streamW.tsw.ContinuityCounter++
}
return
}
@ -79,7 +84,7 @@ func (self *Muxer) writePaddingTSPackets(tsw *tsio.TSWriter) (err error) {
func (self *Muxer) WriteTrailer() (err error) {
if self.PaddingToMakeCounterCont {
for _, stream := range self.streams {
if err = self.writePaddingTSPackets(stream.tsw); err != nil {
if err = self.writePaddingTSPackets(stream); err != nil {
return
}
}