fix raw
This commit is contained in:
		| @@ -2,7 +2,7 @@ package raw | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"io" | ||||
| 	"os" | ||||
|  | ||||
| 	"github.com/deepch/vdk/codec/h265parser" | ||||
|  | ||||
| @@ -15,13 +15,28 @@ var startCode = []byte{0, 0, 0, 1} | ||||
|  | ||||
| type Muxer struct { | ||||
| 	idx int8 | ||||
| 	w   io.WriteSeeker | ||||
| 	w   *os.File | ||||
| } | ||||
|  | ||||
| func NewMuxer(v io.WriteSeeker) *Muxer { | ||||
| 	return &Muxer{w: v} | ||||
| func NewMuxer(filePatch, fileName string) (*Muxer, error) { | ||||
|  | ||||
| 	if _, err := os.Stat(filePatch); os.IsNotExist(err) { | ||||
| 		err := os.MkdirAll(filePatch, os.ModePerm) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	f2, err := os.Create(filePatch + fileName) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &Muxer{w: f2}, nil | ||||
| } | ||||
|  | ||||
| func (element *Muxer) WriteHeader(streams []av.CodecData) (err error) { | ||||
|  | ||||
| 	for i, stream := range streams { | ||||
| 		switch stream.Type() { | ||||
| 		case av.H264: | ||||
| @@ -32,9 +47,13 @@ func (element *Muxer) WriteHeader(streams []av.CodecData) (err error) { | ||||
| 			element.idx = int8(i) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
|  | ||||
| } | ||||
| func (element *Muxer) WritePacket(pkt *av.Packet) (err error) { | ||||
|  | ||||
| func (element *Muxer) WriteAvPacket(pkt *av.Packet) (err error) { | ||||
|  | ||||
| 	if pkt.Idx == element.idx { | ||||
| 		_, err = element.w.Write(startCode) | ||||
| 		if err != nil { | ||||
| @@ -42,5 +61,19 @@ func (element *Muxer) WritePacket(pkt *av.Packet) (err error) { | ||||
| 		} | ||||
| 		_, err = element.w.Write(pkt.Data[4:]) | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
|  | ||||
| } | ||||
|  | ||||
| func (element *Muxer) WriteRTPPacket(pkt *[]byte) (err error) { | ||||
|  | ||||
| 	return | ||||
|  | ||||
| } | ||||
|  | ||||
| func (element *Muxer) Close() error { | ||||
|  | ||||
| 	return element.w.Close() | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 deepch
					deepch