This commit is contained in:
parent
3cdfe0039f
commit
4631fb06e8
|
@ -337,8 +337,8 @@ func TestPacketizeFLAC(t *testing.T) {
|
|||
if packetCount != 4231 {
|
||||
t.Errorf("Wrong Packet Count %d != %d", packetCount, 4231)
|
||||
}
|
||||
if packetBytes != 60850176 {
|
||||
t.Errorf("Wrong Packet Bytes %d != %d", packetBytes, 60850176)
|
||||
if packetBytes != 51515502 {
|
||||
t.Errorf("Wrong Packet Bytes %d != %d", packetBytes, 51515502)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
package packetizer
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
flac_parser "github.com/mewkiz/flac"
|
||||
"io"
|
||||
)
|
||||
|
||||
type FLACPacketizer struct {
|
||||
reader io.Reader
|
||||
stream *flac_parser.Stream
|
||||
offset int64
|
||||
samples int64
|
||||
buffer []byte
|
||||
reader io.Reader
|
||||
stream *flac_parser.Stream
|
||||
offset int64
|
||||
samples int64
|
||||
bytesRead int64
|
||||
buffer []byte
|
||||
}
|
||||
|
||||
type FLACPacket struct {
|
||||
|
@ -32,7 +34,7 @@ func (p *FLACPacket) GetData() []byte {
|
|||
}
|
||||
|
||||
func NewFLACPacketizer(reader io.Reader) *FLACPacketizer {
|
||||
return &FLACPacketizer{reader: reader}
|
||||
return &FLACPacketizer{reader: bufio.NewReader(reader)}
|
||||
}
|
||||
|
||||
func (o *FLACPacketizer) Read(p []byte) (n int, err error) {
|
||||
|
@ -40,9 +42,17 @@ func (o *FLACPacketizer) Read(p []byte) (n int, err error) {
|
|||
if err == nil {
|
||||
o.buffer = append(o.buffer, p...)
|
||||
}
|
||||
o.bytesRead += int64(n)
|
||||
return
|
||||
}
|
||||
|
||||
func (o *FLACPacketizer) Seek(offset int64, whence int) (int64, error) {
|
||||
if offset == 0 && whence == io.SeekCurrent {
|
||||
return o.bytesRead, nil
|
||||
}
|
||||
return 0, io.ErrNoProgress
|
||||
}
|
||||
|
||||
func (o *FLACPacketizer) getBuffer() (buf []byte) {
|
||||
buf = make([]byte, len(o.buffer))
|
||||
copy(buf, o.buffer)
|
||||
|
@ -53,7 +63,7 @@ func (o *FLACPacketizer) getBuffer() (buf []byte) {
|
|||
func (o *FLACPacketizer) GetPacket() (packet Packet) {
|
||||
var err error
|
||||
if o.stream == nil {
|
||||
o.stream, err = flac_parser.New(o)
|
||||
o.stream, err = flac_parser.NewSeek(o)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue