From 0f340f8fc54dfca02eecc3f9143fc21230938321 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 8 Jan 2008 00:54:19 +0000 Subject: [PATCH] A little proggy i wrote years ago. This simply writes burts of random data into a file. Great for testing error robustness/resilience/concealment. Originally committed as revision 11459 to svn://svn.ffmpeg.org/ffmpeg/trunk --- tools/trasher.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tools/trasher.c diff --git a/tools/trasher.c b/tools/trasher.c new file mode 100644 index 0000000000..a9d27736db --- /dev/null +++ b/tools/trasher.c @@ -0,0 +1,40 @@ + +#include +#include +#include +#include + +int main(int argc, char** argv) +{ + FILE *f= fopen(argv[1], "rb+"); + int count= atoi(argv[2]); + int maxburst= atoi(argv[3]); + int length, i; + + srand (time (0)); + + fseek(f, 0, SEEK_END); + 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; + fseek(f, pos, SEEK_SET); + + if(maxburst<0) burst= -maxburst; + + if(pos + burst > length) + continue; + + while(burst--){ + int val= random() * 256ULL / RAND_MAX; + + if(maxburst<0) val=0; + + fwrite(&val, 1, 1, f); + } + } + + return 0; +}