mirror of https://github.com/FFmpeg/FFmpeg.git
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/trunkpull/126/head
parent
787e135391
commit
0f340f8fc5
1 changed files with 40 additions and 0 deletions
@ -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; |
||||
} |
Loading…
Reference in new issue