X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=tools%2Ftrasher.c;h=11605b8a8e2b3f6bd474b35c93af8d6724776e6c;hb=1a6b9a98ceacc3aca35ab354f9e97e3ac01b0ded;hp=9e1961f857b0be6485e62595243738dd5e974432;hpb=c33820e52e8829668ef59b7ead6acee09558504f;p=ffmpeg diff --git a/tools/trasher.c b/tools/trasher.c index 9e1961f857b..11605b8a8e2 100644 --- a/tools/trasher.c +++ b/tools/trasher.c @@ -1,66 +1,72 @@ /* * Copyright (c) 2007 Michael Niedermayer * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * FFmpeg is distributed in the hope that it will be useful, + * Libav is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include #include -#include #include -int main(int argc, char** argv) +static uint32_t state; +static uint32_t ran(void) +{ + return state = state * 1664525 + 1013904223; +} + +int main(int argc, char **argv) { FILE *f; int count, maxburst, length; - if (argc < 4){ - printf("USAGE: trasher \n"); + if (argc < 5) { + printf("USAGE: trasher \n"); return 1; } - f= fopen(argv[1], "rb+"); - if (!f){ + f = fopen(argv[1], "rb+"); + if (!f) { perror(argv[1]); return 2; } - count= atoi(argv[2]); - maxburst= atoi(argv[3]); - - srand (time (0)); + count = atoi(argv[2]); + maxburst = atoi(argv[3]); + state = atoi(argv[4]); fseek(f, 0, SEEK_END); - length= ftell(f); + length = ftell(f); fseek(f, 0, SEEK_SET); - while(count--){ - int burst= 1 + random() * (uint64_t) (abs(maxburst)-1) / RAND_MAX; - int pos= random() * (uint64_t) length / RAND_MAX; + while (count--) { + int burst = 1 + ran() * (uint64_t) (abs(maxburst) - 1) / UINT32_MAX; + int pos = ran() * (uint64_t) length / UINT32_MAX; fseek(f, pos, SEEK_SET); - if(maxburst<0) burst= -maxburst; + if (maxburst < 0) + burst = -maxburst; - if(pos + burst > length) + if (pos + burst > length) continue; - while(burst--){ - int val= random() * 256ULL / RAND_MAX; + while (burst--) { + int val = ran() * 256ULL / UINT32_MAX; - if(maxburst<0) val=0; + if (maxburst < 0) + val = 0; fwrite(&val, 1, 1, f); }