add avutil.CopyPackets avutil.CopyFile
This commit is contained in:
parent
25869d4bbc
commit
f3da3caa49
@ -186,3 +186,36 @@ func Create(url string) (muxer av.MuxCloser, err error) {
|
|||||||
return DefaultHandlers.Create(url)
|
return DefaultHandlers.Create(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CopyPackets(dst av.PacketWriter, src av.PacketReader) (err error) {
|
||||||
|
for {
|
||||||
|
var pkt av.Packet
|
||||||
|
if pkt, err = src.ReadPacket(); err != nil {
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = dst.WritePacket(pkt); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func CopyFile(dst av.Muxer, src av.Demuxer) (err error) {
|
||||||
|
var streams []av.CodecData
|
||||||
|
if streams, err = src.Streams(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = dst.WriteHeader(streams); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = CopyPackets(dst, src); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = dst.WriteTrailer(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user