add avutil.CopyPackets avutil.CopyFile

This commit is contained in:
nareix 2016-07-03 17:47:06 +08:00
parent 25869d4bbc
commit f3da3caa49

View File

@ -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
}