//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 } }