Kirika/audio/format/aac/libfdk-aac_test.go
2022-04-23 20:41:14 +02:00

206 lines
3.3 KiB
Go

//go:build !disable_format_aac && !disable_codec_libfdk_aac
// +build !disable_format_aac,!disable_codec_libfdk_aac
package aac
import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/flac"
"git.gammaspectra.live/S.O.N.G/Kirika/test"
"io"
"os"
"testing"
)
func TestEncodeAAC(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
}
target, err := os.CreateTemp("/tmp", "encode_test_*.aac")
if err != nil {
t.Error(err)
return
}
defer func() {
name := target.Name()
target.Close()
os.Remove(name)
}()
options := make(map[string]interface{})
options["bitrate"] = "256k"
err = NewFormat().Encode(source, target, options)
if err != nil {
t.Error(err)
return
}
}
func TestDecodeAAC(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
}
target, err := os.CreateTemp("/tmp", "decode_test_*.aac")
if err != nil {
t.Error(err)
return
}
defer func() {
name := target.Name()
target.Close()
os.Remove(name)
}()
options := make(map[string]interface{})
options["bitrate"] = "256k"
err = NewFormat().Encode(source, target, options)
if err != nil {
t.Error(err)
return
}
target.Seek(0, io.SeekStart)
source, err = NewFormat().Open(target)
if err != nil {
t.Error(err)
return
}
//Decode
for range source.Blocks {
}
}
/*
func TestDecodeAACMP4(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
}
target, err := os.Open(test.TestSingleSampleAACMP4)
if err != nil {
t.Error(err)
return
}
defer target.Close()
source, err = NewFormat().Open(target)
if err != nil {
t.Error(err)
return
}
for range source.Blocks {
}
}
*/
func TestEncodeAACMP4(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
}
target, err := os.CreateTemp("/tmp", "encode_test_*.m4a")
if err != nil {
t.Error(err)
return
}
defer func() {
name := target.Name()
target.Close()
os.Remove(name)
}()
options := make(map[string]interface{})
options["bitrate"] = "256k"
options["format"] = "mp4"
err = NewFormat().Encode(source, target, options)
if err != nil {
t.Error(err)
return
}
}
func TestEncodeAACHE(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
}
target, err := os.CreateTemp("/tmp", "encode_test_*.aac")
if err != nil {
t.Error(err)
return
}
defer func() {
name := target.Name()
target.Close()
os.Remove(name)
}()
options := make(map[string]interface{})
options["bitrate"] = "256k"
options["mode"] = "hev2"
err = NewFormat().Encode(source, target, options)
if err != nil {
t.Error(err)
return
}
}