add NewMuxer(writeFlusher) for ts/flv
This commit is contained in:
parent
9e12fc5722
commit
c06f934d9e
@ -312,18 +312,27 @@ func PacketToTag(pkt av.Packet, stream av.CodecData) (_tag flvio.Tag, timestamp
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Muxer struct {
|
type Muxer struct {
|
||||||
bufw *bufio.Writer
|
bufw writeFlusher
|
||||||
b []byte
|
b []byte
|
||||||
streams []av.CodecData
|
streams []av.CodecData
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMuxer(w io.Writer) *Muxer {
|
type writeFlusher interface {
|
||||||
|
io.Writer
|
||||||
|
Flush() error
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewMuxerWriteFlusher(w writeFlusher) *Muxer {
|
||||||
return &Muxer{
|
return &Muxer{
|
||||||
bufw: bufio.NewWriterSize(w, pio.RecommendBufioSize),
|
bufw: w,
|
||||||
b: make([]byte, 256),
|
b: make([]byte, 256),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewMuxer(w io.Writer) *Muxer {
|
||||||
|
return NewMuxerWriteFlusher(bufio.NewWriterSize(w, pio.RecommendBufioSize))
|
||||||
|
}
|
||||||
|
|
||||||
var CodecTypes = []av.CodecType{av.H264, av.AAC, av.SPEEX}
|
var CodecTypes = []av.CodecType{av.H264, av.AAC, av.SPEEX}
|
||||||
|
|
||||||
func (self *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
func (self *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
||||||
|
@ -15,7 +15,7 @@ import (
|
|||||||
var CodecTypes = []av.CodecType{av.H264, av.AAC}
|
var CodecTypes = []av.CodecType{av.H264, av.AAC}
|
||||||
|
|
||||||
type Muxer struct {
|
type Muxer struct {
|
||||||
w *bufio.Writer
|
w writeFlusher
|
||||||
streams []*Stream
|
streams []*Stream
|
||||||
PaddingToMakeCounterCont bool
|
PaddingToMakeCounterCont bool
|
||||||
|
|
||||||
@ -29,9 +29,14 @@ type Muxer struct {
|
|||||||
tswpat, tswpmt *tsio.TSWriter
|
tswpat, tswpmt *tsio.TSWriter
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMuxer(w io.Writer) *Muxer {
|
type writeFlusher interface {
|
||||||
|
io.Writer
|
||||||
|
Flush() error
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewMuxerWriteFlusher(w writeFlusher) *Muxer {
|
||||||
return &Muxer{
|
return &Muxer{
|
||||||
w: bufio.NewWriterSize(w, pio.RecommendBufioSize),
|
w: w,
|
||||||
psidata: make([]byte, 188),
|
psidata: make([]byte, 188),
|
||||||
peshdr: make([]byte, tsio.MaxPESHeaderLength),
|
peshdr: make([]byte, tsio.MaxPESHeaderLength),
|
||||||
tshdr: make([]byte, tsio.MaxTSHeaderLength),
|
tshdr: make([]byte, tsio.MaxTSHeaderLength),
|
||||||
@ -43,6 +48,10 @@ func NewMuxer(w io.Writer) *Muxer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewMuxer(w io.Writer) *Muxer {
|
||||||
|
return NewMuxerWriteFlusher(bufio.NewWriterSize(w, pio.RecommendBufioSize))
|
||||||
|
}
|
||||||
|
|
||||||
func (self *Muxer) newStream(codec av.CodecData) (err error) {
|
func (self *Muxer) newStream(codec av.CodecData) (err error) {
|
||||||
ok := false
|
ok := false
|
||||||
for _, c := range CodecTypes {
|
for _, c := range CodecTypes {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user