Skip to content

Commit 89fc20a

Browse files
committed
various changes
1 parent baa7ed0 commit 89fc20a

1 file changed

Lines changed: 25 additions & 8 deletions

File tree

vcodec.go

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,42 @@ import (
1111
"golang.org/x/image/riff"
1212
)
1313

14+
var exitValue = 0
15+
1416
func main() {
17+
main2()
18+
fmt.Printf("Exitvalue: %d\n", exitValue)
19+
os.Exit(exitValue)
20+
}
21+
22+
func main2() {
1523
f, err := os.Open(os.Args[1])
1624
if err != nil {
1725
log.Fatal(err)
1826
}
1927
defer f.Close()
20-
formType, r, err := riff.NewReader(bufio.NewReader(io.LimitReader(f, 65000)))
28+
defer func() {
29+
if r := recover(); r != nil {
30+
fmt.Printf("Codec: %s\n", r)
31+
for _, v := range os.Args[2:] {
32+
if r == v {
33+
exitValue = 1
34+
break
35+
}
36+
}
37+
}
38+
}()
39+
formType, r, err := riff.NewReader(bufio.NewReader(io.LimitReader(f, 16384)))
2140
if err != nil {
2241
log.Fatal(err)
2342
}
2443
fmt.Printf("RIFF(%s)\n", formType)
25-
if err := dump(r, ".\t"); err != nil {
44+
if err := scanriff(r); err != nil {
2645
log.Fatal(err)
2746
}
2847
}
2948

30-
func dump(r *riff.Reader, indent string) error {
49+
func scanriff(r *riff.Reader) error {
3150
for {
3251
chunkID, chunkLen, chunkData, err := r.Next()
3352
if err == io.EOF {
@@ -37,12 +56,11 @@ func dump(r *riff.Reader, indent string) error {
3756
return err
3857
}
3958
if chunkID == riff.LIST {
40-
listType, list, err := riff.NewListReader(chunkLen, chunkData)
59+
_, list, err := riff.NewListReader(chunkLen, chunkData)
4160
if err != nil {
4261
return err
4362
}
44-
fmt.Printf("%sLIST(%s)\n", indent, listType)
45-
if err := dump(list, indent+".\t"); err != nil {
63+
if err := scanriff(list); err != nil {
4664
return err
4765
}
4866
continue
@@ -52,8 +70,7 @@ func dump(r *riff.Reader, indent string) error {
5270
return err
5371
}
5472
if string(b[0:4]) == "vids" {
55-
log.Printf("_%s_", string(b[4:8]))
73+
panic(string(b[4:8]))
5674
}
57-
fmt.Printf("%s%s %q\n", indent, chunkID, b)
5875
}
5976
}

0 commit comments

Comments
 (0)