206 lines
3.3 KiB
Go
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
|
|
}
|
|
}
|