syntax highlighting in the README

This commit is contained in:
Attila Oláh 2014-12-01 17:14:01 +01:00
parent 4a7ed9cf72
commit 1a3d00af18

103
README.md
View File

@ -2,64 +2,71 @@
codec codec
==== ====
Golang aac/h264 encoder and decoder Golang aac/h264 encoder and decoder.
H264 encoding example H264 encoding example:
w := 400 ```go
h := 400 w := 400
var nal [][]byte h := 400
var nal [][]byte
c, _ := codec.NewH264Encoder(w, h, image.YCbCrSubsampleRatio420) c, _ := codec.NewH264Encoder(w, h, image.YCbCrSubsampleRatio420)
nal = append(nal, c.Header) nal = append(nal, c.Header)
for i := 0; i < 60; i++ { for i := 0; i < 60; i++ {
img := image.NewYCbCr(image.Rect(0,0,w,h), image.YCbCrSubsampleRatio420) img := image.NewYCbCr(image.Rect(0,0,w,h), image.YCbCrSubsampleRatio420)
p, _ := c.Encode(img) p, _ := c.Encode(img)
if len(p.Data) > 0 { if len(p.Data) > 0 {
nal = append(nal, p.Data)
}
}
for {
// flush encoder
p, err := c.Encode(nil)
if err != nil {
break
}
nal = append(nal, p.Data) nal = append(nal, p.Data)
} }
}
H264 decoding example for {
// flush encoder
dec, err := codec.NewH264Decoder(nal[0]) p, err := c.Encode(nil)
for i, n := range nal[1:] { if err != nil {
img, err := dec.Decode(n) break
if err == nil {
fp, _ := os.Create(fmt.Sprintf("/tmp/dec-%d.jpg", i))
jpeg.Encode(fp, img, nil)
fp.Close()
}
} }
nal = append(nal, p.Data)
}
```
AAC encoding example H264 decoding example:
var pkts [][]byte
c, _ := codec.NewAACEncoder() ```go
pkts = append(pkts, c.Header) dec, err := codec.NewH264Decoder(nal[0])
for i, n := range nal[1:] {
for i := 0; i < 60; i++ { img, err := dec.Decode(n)
var sample [8192]byte if err == nil {
p, _ := c.Encode(sample) fp, _ := os.Create(fmt.Sprintf("/tmp/dec-%d.jpg", i))
if len(p) > 0 { jpeg.Encode(fp, img, nil)
pkts = append(pkts, p) fp.Close()
}
} }
}
```
AAC decoding example AAC encoding example:
dec, _ := codec.NewAACDecoder(pkts[0]) ```go
for _, p := range pkts[1:] { var pkts [][]byte
sample, err := dec.Decode(p)
c, _ := codec.NewAACEncoder()
pkts = append(pkts, c.Header)
for i := 0; i < 60; i++ {
var sample [8192]byte
p, _ := c.Encode(sample)
if len(p) > 0 {
pkts = append(pkts, p)
} }
}
```
AAC decoding example:
```go
dec, _ := codec.NewAACDecoder(pkts[0])
for _, p := range pkts[1:] {
sample, err := dec.Decode(p)
}
```