put HandlerRefer into struct.go
This commit is contained in:
parent
e5ed771fcd
commit
8cbf203548
@ -5,6 +5,15 @@ Array.prototype.nonull = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
var atoms = {
|
var atoms = {
|
||||||
|
test: {
|
||||||
|
cc4: 'sbss',
|
||||||
|
fields: [
|
||||||
|
['version', 'int8'],
|
||||||
|
['flags', 'int24'],
|
||||||
|
['left', '[]char'],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
|
||||||
movie: {
|
movie: {
|
||||||
cc4: 'moov',
|
cc4: 'moov',
|
||||||
fields: [
|
fields: [
|
||||||
@ -71,6 +80,13 @@ var atoms = {
|
|||||||
|
|
||||||
handlerRefer: {
|
handlerRefer: {
|
||||||
cc4: 'hdlr',
|
cc4: 'hdlr',
|
||||||
|
fields: [
|
||||||
|
['version', 'int8'],
|
||||||
|
['flags', 'int24'],
|
||||||
|
['type', '[4]char'],
|
||||||
|
['subType', '[4]char'],
|
||||||
|
['name', '[]char'],
|
||||||
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
media: {
|
media: {
|
||||||
@ -299,7 +315,7 @@ var DeclReadFunc = (opts) => {
|
|||||||
return [
|
return [
|
||||||
//DebugStmt(type),
|
//DebugStmt(type),
|
||||||
CallCheckAssign(
|
CallCheckAssign(
|
||||||
'Read'+type.fn, ['r', type.len].nonull(), [name]),
|
'Read'+type.fn, ['r', type.len||'int(r.N)'], [name]),
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -368,7 +384,7 @@ var DeclWriteFunc = (opts) => {
|
|||||||
'Write'+type.Struct, ['w', name], []);
|
'Write'+type.Struct, ['w', name], []);
|
||||||
return [
|
return [
|
||||||
CallCheckAssign(
|
CallCheckAssign(
|
||||||
'Write'+type.fn, ['w', name, type.len].nonull(), []),
|
'Write'+type.fn, ['w', name, type.len||`len(${name})`], []),
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -109,65 +109,3 @@ func WriteSampleDescEntry(w io.WriteSeeker, self *SampleDescEntry) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
type HandlerRefer struct {
|
|
||||||
Version int
|
|
||||||
Flags int
|
|
||||||
Type string
|
|
||||||
SubType string
|
|
||||||
Name string
|
|
||||||
}
|
|
||||||
|
|
||||||
func ReadHandlerRefer(r *io.LimitedReader) (res *HandlerRefer, err error) {
|
|
||||||
self := &HandlerRefer{}
|
|
||||||
if self.Version, err = ReadInt(r, 3); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if self.Flags, err = ReadInt(r, 1); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if self.Type, err = ReadString(r, 4); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if self.SubType, err = ReadString(r, 4); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if _, err = ReadDummy(r, 12); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if self.Name, err = ReadString(r, int(r.N)); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
res = self
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func WriteHandlerRefer(w io.WriteSeeker, self *HandlerRefer) (err error) {
|
|
||||||
var aw *Writer
|
|
||||||
if aw, err = WriteAtomHeader(w, "hdlr"); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
w = aw
|
|
||||||
if err = WriteInt(w, self.Version, 3); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = WriteInt(w, self.Flags, 1); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = WriteString(w, self.Type, 4); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = WriteString(w, self.SubType, 4); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = WriteDummy(w, 12); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = WriteString(w, self.Name, len(self.Name)); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if err = aw.Close(); err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
|
100
atom/struct.go
100
atom/struct.go
@ -5,6 +5,49 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Test struct {
|
||||||
|
Version int
|
||||||
|
Flags int
|
||||||
|
Left string
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadTest(r *io.LimitedReader) (res *Test, err error) {
|
||||||
|
|
||||||
|
self := &Test{}
|
||||||
|
if self.Version, err = ReadInt(r, 1); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.Flags, err = ReadInt(r, 3); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.Left, err = ReadString(r, int(r.N)); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
res = self
|
||||||
|
return
|
||||||
|
}
|
||||||
|
func WriteTest(w io.WriteSeeker, self *Test) (err error) {
|
||||||
|
|
||||||
|
var aw *Writer
|
||||||
|
if aw, err = WriteAtomHeader(w, "sbss"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w = aw
|
||||||
|
if err = WriteInt(w, self.Version, 1); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteInt(w, self.Flags, 3); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteString(w, self.Left, len(self.Left)); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = aw.Close(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
type Movie struct {
|
type Movie struct {
|
||||||
Header *MovieHeader
|
Header *MovieHeader
|
||||||
Tracks []*Track
|
Tracks []*Track
|
||||||
@ -399,6 +442,63 @@ func WriteTrackHeader(w io.WriteSeeker, self *TrackHeader) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type HandlerRefer struct {
|
||||||
|
Version int
|
||||||
|
Flags int
|
||||||
|
Type string
|
||||||
|
SubType string
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
func ReadHandlerRefer(r *io.LimitedReader) (res *HandlerRefer, err error) {
|
||||||
|
|
||||||
|
self := &HandlerRefer{}
|
||||||
|
if self.Version, err = ReadInt(r, 1); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.Flags, err = ReadInt(r, 3); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.Type, err = ReadString(r, 4); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.SubType, err = ReadString(r, 4); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if self.Name, err = ReadString(r, int(r.N)); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
res = self
|
||||||
|
return
|
||||||
|
}
|
||||||
|
func WriteHandlerRefer(w io.WriteSeeker, self *HandlerRefer) (err error) {
|
||||||
|
|
||||||
|
var aw *Writer
|
||||||
|
if aw, err = WriteAtomHeader(w, "hdlr"); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w = aw
|
||||||
|
if err = WriteInt(w, self.Version, 1); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteInt(w, self.Flags, 3); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteString(w, self.Type, 4); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteString(w, self.SubType, 4); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = WriteString(w, self.Name, len(self.Name)); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err = aw.Close(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
type Media struct {
|
type Media struct {
|
||||||
Header *MediaHeader
|
Header *MediaHeader
|
||||||
Info *MediaInfo
|
Info *MediaInfo
|
||||||
|
Loading…
x
Reference in New Issue
Block a user