diff options
author | Erik de Castro Lopo <erikd@mega-nerd.com> | 2014-12-20 14:24:41 +1100 |
---|---|---|
committer | Erik de Castro Lopo <erikd@mega-nerd.com> | 2015-02-15 16:48:46 +1100 |
commit | b903670f2159a8ee23b0fa2410c9c2237b74731e (patch) | |
tree | 7c42dd3b72f7eb9845543064fa470a96a1e02874 /src/test_streams | |
parent | a0277fc637668f2cdade510e53d0921572d8f3e0 (diff) | |
download | flac-b903670f2159a8ee23b0fa2410c9c2237b74731e.tar.gz |
replaygain test: Use C code to generate test files.
Diffstat (limited to 'src/test_streams')
-rw-r--r-- | src/test_streams/main.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/test_streams/main.c b/src/test_streams/main.c index 649c22bb..00552872 100644 --- a/src/test_streams/main.c +++ b/src/test_streams/main.c @@ -1043,6 +1043,41 @@ foo: return false; } +static FLAC__bool generate_replaygain_tone (unsigned samplerate) +{ + FILE *f; + char fname [256] ; + double pi, tone, sample, samplerange; + int k; + + snprintf(fname, sizeof(fname), "rpg-tone-%u.wav", samplerate); + + if(0 == (f = flac_fopen(fname, "wb"))) + return false; + + if(!write_simple_wavex_header (f, samplerate, 1, 3, 220500)) + goto foo; + + + samplerange = 0x7fffff; /* Largest sample value allowed for a 24 bit PCM file. */ + tone = 1000.0; /* 1 kHz */ + pi = 4 * atan2(1,1); + + for (k = 0 ; k < 5 * 44100 ; k++) { + sample = sin(2 * pi * tone * k / samplerate); + sample *= samplerange; + if (!write_little_endian_uint24(f, (FLAC__int32) sample)) + goto foo; + }; + + fclose(f); + + return true; +foo: + fclose(f); + return false; +} + int main(int argc, char *argv[]) { FLAC__uint32 test = 1; @@ -1156,6 +1191,22 @@ int main(int argc, char *argv[]) if(!generate_sine24_2("sine24-18.raw", 44100.0, 200000, 441.0, 0.50, 4410.0, 0.49, 1.3)) return 1; if(!generate_sine24_2("sine24-19.raw", 44100.0, 200000, 8820.0, 0.70, 4410.0, 0.29, 0.1)) return 1; + if(!generate_replaygain_tone(8000)) return 1; + if(!generate_replaygain_tone(11025)) return 1; + if(!generate_replaygain_tone(12000)) return 1; + if(!generate_replaygain_tone(16000)) return 1; + if(!generate_replaygain_tone(18900)) return 1; + if(!generate_replaygain_tone(22050)) return 1; + if(!generate_replaygain_tone(24000)) return 1; + if(!generate_replaygain_tone(28000)) return 1; + if(!generate_replaygain_tone(32000)) return 1; + if(!generate_replaygain_tone(36000)) return 1; + if(!generate_replaygain_tone(37800)) return 1; + if(!generate_replaygain_tone(44100)) return 1; + if(!generate_replaygain_tone(48000)) return 1; + if(!generate_replaygain_tone(96000)) return 1; + if(!generate_replaygain_tone(192000)) return 1; + /* WATCHOUT: the size of noise.raw is hardcoded into test/test_flac.sh */ if(!generate_noise("noise.raw", 65536 * 8 * 3)) return 1; if(!generate_noise("noise8m32.raw", 32)) return 1; |