FFmpeg
2.1.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
tools
trasher.c
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2007 Michael Niedermayer
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* FFmpeg is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include <stdio.h>
22
#include <stdlib.h>
23
#include <inttypes.h>
24
#include <errno.h>
25
#include <string.h>
26
27
static
uint32_t
state
;
28
static
uint32_t
ran
(
void
)
29
{
30
return
state
=
state
* 1664525 + 1013904223;
31
}
32
33
int
main
(
int
argc,
char
**argv)
34
{
35
FILE *f;
36
int
count
, maxburst,
length
;
37
38
if
(argc < 5) {
39
printf(
"USAGE: trasher <filename> <count> <maxburst> <seed>\n"
);
40
return
1;
41
}
42
43
f = fopen(argv[1],
"rb+"
);
44
if
(!f) {
45
perror(argv[1]);
46
return
2;
47
}
48
count = atoi(argv[2]);
49
maxburst = atoi(argv[3]);
50
state
= atoi(argv[4]);
51
52
fseek(f, 0, SEEK_END);
53
length = ftell(f);
54
fseek(f, 0, SEEK_SET);
55
56
while
(count--) {
57
int
burst = 1 +
ran
() * (uint64_t) (abs(maxburst) - 1) / UINT32_MAX;
58
int
pos =
ran
() * (uint64_t) length / UINT32_MAX;
59
if
(fseek(f, pos, SEEK_SET) < 0) {
60
fprintf(stderr,
"seek failed\n"
);
61
return
1;
62
}
63
64
if
(maxburst < 0)
65
burst = -maxburst;
66
67
if
(pos + burst > length)
68
continue
;
69
70
while
(burst--) {
71
int
val
=
ran
() * 256ULL / UINT32_MAX;
72
73
if
(maxburst < 0)
74
val = 0;
75
76
fwrite(&val, 1, 1, f);
77
}
78
}
79
80
return
0;
81
}
val
const char const char void * val
Definition:
avisynth_c.h:671
ran
static uint32_t ran(void)
Definition:
trasher.c:28
state
static uint32_t state
Definition:
trasher.c:27
count
void INT64 INT64 count
Definition:
avisynth_c.h:594
length
const char int length
Definition:
avisynth_c.h:668
main
int main(int argc, char **argv)
Definition:
main.c:22
Generated on Wed Nov 20 2013 08:50:08 for FFmpeg by
1.8.5