61 lines
837 B
Go
61 lines
837 B
Go
|
|
package mp4
|
|
|
|
import (
|
|
"./atom"
|
|
"os"
|
|
)
|
|
|
|
type File struct {
|
|
moov *atom.Moov
|
|
ftyp *atom.Ftyp
|
|
}
|
|
|
|
func (self *File) AddAvcc(avcc *Avcc) {
|
|
}
|
|
|
|
func (self *File) AddMp4a(mp4a *Mp4a) {
|
|
}
|
|
|
|
func (self *File) GetAvcc() (avcc []*Avcc) {
|
|
return
|
|
}
|
|
|
|
func (self *File) GetMp4a() (mp4a []*Mp4a) {
|
|
return
|
|
}
|
|
|
|
func (self *File) Sync() {
|
|
}
|
|
|
|
func (self *File) Close() {
|
|
}
|
|
|
|
func Open(filename string) (file *File, err error) {
|
|
var osfile *os.File
|
|
if osfile, err = os.Open(filename); err != nil {
|
|
return
|
|
}
|
|
|
|
var entry atom.Atom
|
|
file = &File{}
|
|
r := atom.Reader{osfile}
|
|
|
|
if entry, err = r.ReadAtom(&atom.Ftyp{}); err != nil {
|
|
return
|
|
}
|
|
file.ftyp = entry.(*atom.Ftyp)
|
|
|
|
if entry, err = r.ReadAtom(&atom.Moov{}); err != nil {
|
|
return
|
|
}
|
|
file.moov = entry.(*atom.Moov)
|
|
|
|
return
|
|
}
|
|
|
|
func Create(filename string) (file *File, err error) {
|
|
return
|
|
}
|
|
|