Add a regresion test for compression levels.

This commit is contained in:
Erik de Castro Lopo
2012-10-14 21:40:40 +11:00
parent fc360735ce
commit 1f0daccf2b
3 changed files with 100 additions and 1 deletions

View File

@@ -869,6 +869,51 @@ foo:
return false;
}
static FLAC__bool generate_noisy_sine(void)
{
FILE *f;
FLAC__byte wav[] = {
'R', 'I', 'F', 'F', 76, 0, 0, 0,
'W', 'A', 'V', 'E', 'f', 'm', 't', ' ',
16, 0, 0, 0, 1, 0, 1, 0,
0x44,0xAC, 0, 0,0x88,0x58,0x01, 0,
2, 0, 16, 0, 'd', 'a', 't', 'a',
0xa8, 0xba, 0x6, 0
};
int32_t randstate = 0x1243456;
double sample, last_val = 0.0;
int k;
if(0 == (f = fopen("noisy-sine.wav", "wb")))
return false;
if(fwrite(wav, 1, sizeof (wav), f) < sizeof (wav))
goto foo;
for (k = 0 ; k < 5 * 44100 ; k++) {
/* Obvioulsy not a crypto quality RNG. */
randstate = 11117 * randstate + 211231;
randstate = 11117 * randstate + 211231;
randstate = 11117 * randstate + 211231;
sample = randstate / (0x7fffffff * 1.000001);
sample = 0.2 * sample - 0.9 * last_val;
last_val = sample;
sample += sin (2.0 * k * M_PI * 1.0 / 32.0);
sample *= 0.4;
write_little_endian_int16(f, lrintf(sample * 32700.0));
};
fclose(f);
return true;
foo:
fclose(f);
return false;
}
static FLAC__bool generate_wackywav64s(void)
{
FILE *f;
@@ -1078,6 +1123,7 @@ int main(int argc, char *argv[])
if(!generate_wackywavs()) return 1;
if(!generate_wackywav64s()) return 1;
if(!generate_wackyrf64s()) return 1;
if(!generate_noisy_sine()) return 1;
for(channels = 1; channels <= 8; channels *= 2) {
unsigned bits_per_sample;
for(bits_per_sample = 8; bits_per_sample <= 24; bits_per_sample += 4) {