fmt; ts: fix crc32 bug
This commit is contained in:
parent
b3b189ca28
commit
00d8696937
@ -1,21 +1,19 @@
|
||||
package ts
|
||||
|
||||
import (
|
||||
"time"
|
||||
"bufio"
|
||||
"fmt"
|
||||
"github.com/nareix/joy4/av"
|
||||
"github.com/nareix/joy4/format/ts/tsio"
|
||||
"github.com/nareix/bits/pio"
|
||||
"github.com/nareix/joy4/codec/aacparser"
|
||||
"github.com/nareix/joy4/codec/h264parser"
|
||||
"github.com/nareix/joy4/format/ts/tsio"
|
||||
"io"
|
||||
"time"
|
||||
)
|
||||
|
||||
var CodecTypes = []av.CodecType{av.H264, av.AAC}
|
||||
|
||||
type Muxer struct {
|
||||
w writeFlusher
|
||||
w io.Writer
|
||||
streams []*Stream
|
||||
PaddingToMakeCounterCont bool
|
||||
|
||||
@ -29,12 +27,7 @@ type Muxer struct {
|
||||
tswpat, tswpmt *tsio.TSWriter
|
||||
}
|
||||
|
||||
type writeFlusher interface {
|
||||
io.Writer
|
||||
Flush() error
|
||||
}
|
||||
|
||||
func NewMuxerWriteFlusher(w writeFlusher) *Muxer {
|
||||
func NewMuxer(w io.Writer) *Muxer {
|
||||
return &Muxer{
|
||||
w: w,
|
||||
psidata: make([]byte, 188),
|
||||
@ -48,10 +41,6 @@ func NewMuxerWriteFlusher(w writeFlusher) *Muxer {
|
||||
}
|
||||
}
|
||||
|
||||
func NewMuxer(w io.Writer) *Muxer {
|
||||
return NewMuxerWriteFlusher(bufio.NewWriterSize(w, pio.RecommendBufioSize))
|
||||
}
|
||||
|
||||
func (self *Muxer) newStream(codec av.CodecData) (err error) {
|
||||
ok := false
|
||||
for _, c := range CodecTypes {
|
||||
@ -93,14 +82,11 @@ func (self *Muxer) WriteTrailer() (err error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err = self.w.Flush(); err != nil {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (self *Muxer) ChangeWriter(w io.Writer) (err error) {
|
||||
func (self *Muxer) SetWriter(w io.Writer) {
|
||||
self.w = w
|
||||
return
|
||||
}
|
||||
|
||||
@ -111,8 +97,8 @@ func (self *Muxer) WritePATPMT() (err error) {
|
||||
},
|
||||
}
|
||||
patlen := pat.Marshal(self.psidata[tsio.PSIHeaderLength:])
|
||||
tsio.FillPSI(self.psidata, tsio.TableIdPAT, tsio.TableExtPAT, patlen)
|
||||
self.datav[0] = self.psidata[:tsio.PSIHeaderLength+patlen]
|
||||
n := tsio.FillPSI(self.psidata, tsio.TableIdPAT, tsio.TableExtPAT, patlen)
|
||||
self.datav[0] = self.psidata[:n]
|
||||
if err = self.tswpat.WritePackets(self.w, self.datav[:1], 0, false, true); err != nil {
|
||||
return
|
||||
}
|
||||
@ -143,8 +129,8 @@ func (self *Muxer) WritePATPMT() (err error) {
|
||||
return
|
||||
}
|
||||
pmt.Marshal(self.psidata[tsio.PSIHeaderLength:])
|
||||
tsio.FillPSI(self.psidata, tsio.TableIdPMT, tsio.TableExtPMT, pmtlen)
|
||||
self.datav[0] = self.psidata[:tsio.PSIHeaderLength+pmtlen]
|
||||
n = tsio.FillPSI(self.psidata, tsio.TableIdPMT, tsio.TableExtPMT, pmtlen)
|
||||
self.datav[0] = self.psidata[:n]
|
||||
if err = self.tswpmt.WritePackets(self.w, self.datav[:1], 0, false, true); err != nil {
|
||||
return
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user