initial Go port of streamrip

This commit is contained in:
2026-04-19 21:11:38 +02:00
commit 97e8b758b3
32 changed files with 7008 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package convert
import (
"strings"
"testing"
"streamrip-go/internal/config"
)
func TestAllowedSampleRates(t *testing.T) {
got := allowedSampleRates(96000)
want := []string{"44100", "48000", "88200", "96000"}
if strings.Join(got, ",") != strings.Join(want, ",") {
t.Fatalf("rates=%v want=%v", got, want)
}
}
func TestBuildFFmpegArgsLossless(t *testing.T) {
cfg := config.ConversionConfig{Enabled: true, Codec: "FLAC", SamplingRate: 48000, BitDepth: 16}
args := buildFFmpegArgs("in.flac", "out.flac", profiles["FLAC"], cfg)
joined := strings.Join(args, " ")
if !strings.Contains(joined, "-c:a flac") {
t.Fatalf("missing flac codec args=%s", joined)
}
if !strings.Contains(joined, "sample_rates=44100|48000") {
t.Fatalf("missing sample rate filter args=%s", joined)
}
if !strings.Contains(joined, "sample_fmts=s16p|s16") {
t.Fatalf("missing bit depth filter args=%s", joined)
}
}
func TestBuildFFmpegArgsLossy(t *testing.T) {
cfg := config.ConversionConfig{Enabled: true, Codec: "MP3", LossyBitrate: 320}
args := buildFFmpegArgs("in.flac", "out.mp3", profiles["MP3"], cfg)
joined := strings.Join(args, " ")
if !strings.Contains(joined, "-c:a libmp3lame") {
t.Fatalf("missing mp3 codec args=%s", joined)
}
if !strings.Contains(joined, "-b:a 320k") {
t.Fatalf("missing bitrate args=%s", joined)
}
}