in cmd/transcode/main.go [59:99]
func (r *fbsReader) Read(p []byte) (n int, err error) {
// remember any previous error
if r.err != nil {
return 0, r.err
}
defer func() {
if err != nil {
r.err = err
}
}()
if r.buf.Len() == 0 {
// read length
b, err := r.read4()
if err != nil {
return 0, err
}
l := int64(bytes2Uint32(b))
if l == 0 {
return 0, io.EOF
}
// read data
_, err = io.Copy(&r.buf, io.LimitReader(r.r, l))
if err == io.EOF {
err = io.ErrUnexpectedEOF
}
if err != nil {
return 0, err
}
// read timestamp
b, err = r.read4()
if err != nil {
return 0, err
}
copy(r.timestamp[:], b)
}
return r.buf.Read(p)
}