X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftest_streams%2Fmain.c;h=28a14685ad24185665acd7072d550bca1387fb1a;hb=1f0daccf2b58994879ffa627a5e6000e3c321139;hp=fe1173cfcd72b37ad43f102acabbd0190ebfbf9b;hpb=fc360735ce4d1aa88a94bfccdd3bea5bdd19a8d6;p=platform%2Fupstream%2Fflac.git diff --git a/src/test_streams/main.c b/src/test_streams/main.c index fe1173c..28a1468 100644 --- a/src/test_streams/main.c +++ b/src/test_streams/main.c @@ -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) {