go-alac/mp4_test.go
DataHoarder 709fcf6e33
All checks were successful
continuous-integration/drone/push Build is passing
Added Decoder, CI
2022-04-21 12:49:43 +02:00

81 lines
1.1 KiB
Go

package go_alac
import (
"io/ioutil"
"os"
"testing"
"time"
)
func TestEncodeMP4(t *testing.T) {
t.Parallel()
f, err := os.Open("sample/test_s16.raw")
if err != nil {
t.Error(err)
return
}
defer f.Close()
data, err := ioutil.ReadAll(f)
if err != nil {
t.Error(err)
return
}
o, err := os.Create("sample/test_s16_output.m4a")
if err != nil {
t.Error(err)
return
}
defer o.Close()
encoder := NewFormatEncoder(o, 44100, 2, 16, false, time.Millisecond*100)
iterationSize := 65536
for len(data) > iterationSize {
encoder.Write(data[:iterationSize])
data = data[iterationSize:]
}
if len(data) > 0 {
encoder.Write(data)
}
encoder.Flush()
o.Sync()
}
func TestDecodeMP4(t *testing.T) {
t.Parallel()
f, err := os.Open("sample/test_s16_input.m4a")
if err != nil {
t.Error(err)
return
}
defer f.Close()
o, err := os.Create("sample/test_s16_output.raw")
if err != nil {
t.Error(err)
return
}
defer o.Close()
decoder := NewFormatDecoder(f)
if decoder == nil {
t.Fail()
return
}
for {
data := decoder.Read()
if data == nil {
break
}
o.Write(data)
}
o.Sync()
}