Proper FLAC byte reader, use buffered reader
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
4631fb06e8
commit
385e440775
|
@ -2,6 +2,7 @@ package Kirika
|
|||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"git.gammaspectra.live/S.O.N.G/Kirika/audio"
|
||||
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format"
|
||||
|
@ -314,6 +315,10 @@ func TestPacketizeFLAC(t *testing.T) {
|
|||
|
||||
reader, writer := io.Pipe()
|
||||
|
||||
shaHasher := sha256.New()
|
||||
shaPacketHasher := sha256.New()
|
||||
encodeReader := io.TeeReader(reader, shaHasher)
|
||||
|
||||
go func() {
|
||||
defer writer.Close()
|
||||
err = flac.NewFormat().Encode(source, writer, nil)
|
||||
|
@ -323,7 +328,7 @@ func TestPacketizeFLAC(t *testing.T) {
|
|||
}
|
||||
}()
|
||||
|
||||
pipePacketizer := packetizer.NewFLACPacketizer(reader)
|
||||
pipePacketizer := packetizer.NewFLACPacketizer(encodeReader)
|
||||
packetCount := 0
|
||||
packetBytes := 0
|
||||
for {
|
||||
|
@ -333,12 +338,16 @@ func TestPacketizeFLAC(t *testing.T) {
|
|||
}
|
||||
packetCount++
|
||||
packetBytes += len(packet.GetData())
|
||||
shaPacketHasher.Write(packet.GetData())
|
||||
}
|
||||
if packetCount != 4231 {
|
||||
t.Errorf("Wrong Packet Count %d != %d", packetCount, 4231)
|
||||
}
|
||||
if packetBytes != 51515502 {
|
||||
t.Errorf("Wrong Packet Bytes %d != %d", packetBytes, 51515502)
|
||||
t.Errorf("Wrong Packet Bytes %d != %d", packetBytes, 51513533)
|
||||
}
|
||||
if bytes.Compare(shaHasher.Sum([]byte{}), shaPacketHasher.Sum([]byte{})) != 0 {
|
||||
t.Errorf("Mismatch on byte output %X != %X", shaPacketHasher.Sum([]byte{}), shaHasher.Sum([]byte{}))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package packetizer
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
aac_adts "github.com/edgeware/mp4ff/aac"
|
||||
"io"
|
||||
)
|
||||
|
@ -28,7 +29,7 @@ func (p *AdtsPacket) GetData() []byte {
|
|||
}
|
||||
|
||||
func NewAdtsPacketizer(reader io.Reader) *AdtsPacketizer {
|
||||
return &AdtsPacketizer{reader: reader}
|
||||
return &AdtsPacketizer{reader: bufio.NewReader(reader)}
|
||||
}
|
||||
|
||||
func (o *AdtsPacketizer) GetPacket() Packet {
|
||||
|
|
|
@ -40,7 +40,7 @@ func NewFLACPacketizer(reader io.Reader) *FLACPacketizer {
|
|||
func (o *FLACPacketizer) Read(p []byte) (n int, err error) {
|
||||
n, err = o.reader.Read(p)
|
||||
if err == nil {
|
||||
o.buffer = append(o.buffer, p...)
|
||||
o.buffer = append(o.buffer, p[:n]...)
|
||||
}
|
||||
o.bytesRead += int64(n)
|
||||
return
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package packetizer
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
mp3parser "github.com/sssgun/mp3"
|
||||
"io"
|
||||
)
|
||||
|
@ -28,7 +29,7 @@ func (p *Mp3Packet) GetData() []byte {
|
|||
}
|
||||
|
||||
func NewMp3Packetizer(reader io.Reader) *Mp3Packetizer {
|
||||
return &Mp3Packetizer{decoder: mp3parser.NewDecoder(reader)}
|
||||
return &Mp3Packetizer{decoder: mp3parser.NewDecoder(bufio.NewReader(reader))}
|
||||
}
|
||||
|
||||
func (o *Mp3Packetizer) GetPacket() Packet {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package packetizer
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"encoding/binary"
|
||||
"io"
|
||||
|
@ -51,7 +52,7 @@ func (p *OggPacket) GetData() []byte {
|
|||
}
|
||||
|
||||
func NewOggPacketizer(reader io.Reader) *OggPacketizer {
|
||||
return &OggPacketizer{reader: reader}
|
||||
return &OggPacketizer{reader: bufio.NewReader(reader)}
|
||||
}
|
||||
|
||||
func (o *OggPacketizer) GetPacket() Packet {
|
||||
|
|
|
@ -138,8 +138,8 @@ __attribute__((weak)) void audio_int24_to_float32(int8_t* restrict data, size_t
|
|||
|
||||
for (int i = 0; i < data_len; i += 3){
|
||||
sample = data[i];
|
||||
sample += ((int) data[i+1]) << 8;
|
||||
sample += ((int) data[i+2]) << 16;
|
||||
sample += ((uint32_t) data[i+1]) << 8;
|
||||
sample += ((uint32_t) data[i+2]) << 16;
|
||||
|
||||
//sign extend
|
||||
buffer[i/3] = ((float)((int32_t)(sample << 8) >> 8)) / BITS_TO_DIV(bitDepth);
|
||||
|
|
Loading…
Reference in a new issue