diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-01-08 00:54:19 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-01-08 00:54:19 +0000 |
commit | 0f340f8fc54dfca02eecc3f9143fc21230938321 (patch) | |
tree | 0df54d19e24aa5e0a3cbb07bd07b4544bf50055e | |
parent | 787e1353917a99982daa6c277b623c366d671a3e (diff) | |
download | ffmpeg-0f340f8fc54dfca02eecc3f9143fc21230938321.tar.gz |
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
-rw-r--r-- | tools/trasher.c | 40 |
1 files changed, 40 insertions, 0 deletions
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 <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <inttypes.h> + +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; +} |