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() }