go-alac/mp4_test.go

81 lines
1.1 KiB
Go
Raw Permalink Normal View History

2022-04-20 20:32:15 +00:00
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()
2022-04-20 20:49:15 +00:00
encoder := NewFormatEncoder(o, 44100, 2, 16, false, time.Millisecond*100)
2022-04-20 20:32:15 +00:00
iterationSize := 65536
for len(data) > iterationSize {
encoder.Write(data[:iterationSize])
data = data[iterationSize:]
}
if len(data) > 0 {
encoder.Write(data)
}
2022-04-21 10:49:43 +00:00
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)
}
2022-04-20 20:32:15 +00:00
o.Sync()
}