112 lines
1.7 KiB
Go
112 lines
1.7 KiB
Go
package go_vorbis
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestEncoderCBR(t *testing.T) {
|
|
t.Parallel()
|
|
f, err := os.Open("test.vorbis")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
defer f.Close()
|
|
|
|
decoder, err := NewSeekCloserDecoder(f)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
defer decoder.Close()
|
|
|
|
target, err := os.CreateTemp("/tmp", "encode_test_*.vorbis")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
defer func() {
|
|
name := target.Name()
|
|
target.Close()
|
|
os.Remove(name)
|
|
}()
|
|
|
|
encoder, err := NewEncoderCBR(target, decoder.Information().Channels, int(decoder.Information().Rate), -1, 128*1000, -1)
|
|
defer encoder.Close()
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
for {
|
|
buf, _, err := decoder.ReadFloat()
|
|
if err != nil {
|
|
if err == io.EOF {
|
|
break
|
|
}
|
|
t.Error(err)
|
|
return
|
|
}
|
|
if err = encoder.WriteFloat(buf); err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
}
|
|
|
|
encoder.Flush()
|
|
}
|
|
|
|
func TestEncoderVBR(t *testing.T) {
|
|
t.Parallel()
|
|
f, err := os.Open("test.vorbis")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
defer f.Close()
|
|
|
|
decoder, err := NewSeekCloserDecoder(f)
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
defer decoder.Close()
|
|
|
|
target, err := os.CreateTemp("/tmp", "encode_test_*.vorbis")
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
|
|
defer func() {
|
|
name := target.Name()
|
|
target.Close()
|
|
os.Remove(name)
|
|
}()
|
|
|
|
encoder, err := NewEncoderVBR(target, decoder.Information().Channels, int(decoder.Information().Rate), 0.5)
|
|
defer encoder.Close()
|
|
if err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
for {
|
|
buf, _, err := decoder.ReadFloat()
|
|
if err != nil {
|
|
if err == io.EOF {
|
|
break
|
|
}
|
|
t.Error(err)
|
|
return
|
|
}
|
|
if err = encoder.WriteFloat(buf); err != nil {
|
|
t.Error(err)
|
|
return
|
|
}
|
|
}
|
|
|
|
encoder.Flush()
|
|
}
|