Kirika/audio/packetizer/mp3_test.go
2022-05-20 17:23:50 +02:00

57 lines
1.1 KiB
Go

//go:build !disable_format_mp3 && !disable_codec_lame && cgo
package packetizer
import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/flac"
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/mp3"
"git.gammaspectra.live/S.O.N.G/Kirika/test"
"io"
"os"
"testing"
)
func TestPacketizeMP3(t *testing.T) {
t.Parallel()
fp, err := os.Open(test.TestSingleSample24)
if err != nil {
t.Error(err)
return
}
defer fp.Close()
source, err := flac.NewFormat().Open(fp)
if err != nil {
t.Error(err)
return
}
reader, writer := io.Pipe()
go func() {
defer writer.Close()
err = mp3.NewFormat().Encode(source, writer, nil)
if err != nil {
t.Error(err)
return
}
}()
pipePacketizer := NewMp3Packetizer(reader)
packetCount := 0
packetBytes := 0
for {
packet := pipePacketizer.GetPacket()
if packet == nil {
break
}
packetCount++
packetBytes += len(packet.GetData())
}
if packetCount != 15040 {
t.Errorf("Wrong Packet Count %d != %d", packetCount, 15040)
}
if packetBytes != 13901254 {
t.Errorf("Wrong Packet Bytes %d != %d", packetBytes, 13901254)
}
}