joy4/mp4/atom/atom.go
nareix 92528599ba Add 'mp4/' from commit 'bd71ca9823ec91410ccdf4d2ed783ba44b8a14d7'
git-subtree-dir: mp4
git-subtree-mainline: 8bb2ec1a5cdf4acae1ca4dfa09dd876b850bea24
git-subtree-split: bd71ca9823ec91410ccdf4d2ed783ba44b8a14d7
2016-07-01 21:31:47 +08:00

45 lines
652 B
Go

package atom
import (
"io"
)
func WalkFile(w Walker, r io.Reader) (err error) {
var moov *Movie
var moof *MovieFrag
for {
var lr *io.LimitedReader
var cc4 string
if lr, cc4, err = ReadAtomHeader(lr, ""); err != nil {
return
}
switch cc4 {
case "moov":
if moov, err = ReadMovie(lr); err != nil {
return
}
WalkMovie(w, moov)
case "moof":
if moof, err = ReadMovieFrag(lr); err != nil {
return
}
WalkMovieFrag(w, moof)
case "mdat":
w.StartStruct("MovieData")
w.Name("Length")
w.Int64(lr.N)
w.EndStruct()
}
if _, err = ReadDummy(r, int(lr.N)); err != nil {
return
}
}
return
}