FFmpeg
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
Functions
Variables
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
c
d
g
i
o
q
r
s
v
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
a
d
e
f
i
j
l
m
n
p
r
s
v
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
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
static
void
checked_seek
(FILE *stream, int64_t
offset
,
int
whence)
34
{
35
offset
= fseek(stream,
offset
, whence);
36
if
(
offset
< 0) {
37
fprintf(stderr,
"seek failed\n"
);
38
exit(1);
39
}
40
}
41
42
int
main
(
int
argc,
char
**argv)
43
{
44
FILE *
f
;
45
int
count
, maxburst,
length
;
46
47
if
(argc < 5) {
48
printf
(
"USAGE: trasher <filename> <count> <maxburst> <seed>\n"
);
49
return
1;
50
}
51
52
f
= fopen(argv[1],
"rb+"
);
53
if
(!
f
) {
54
perror(argv[1]);
55
return
2;
56
}
57
count
= atoi(argv[2]);
58
maxburst = atoi(argv[3]);
59
state
= atoi(argv[4]);
60
61
checked_seek
(
f
, 0, SEEK_END);
62
length
= ftell(
f
);
63
checked_seek
(
f
, 0, SEEK_SET);
64
65
while
(
count
--) {
66
int
burst = 1 +
ran
() * (uint64_t) (
abs
(maxburst) - 1) / UINT32_MAX;
67
int
pos =
ran
() * (uint64_t)
length
/ UINT32_MAX;
68
checked_seek
(
f
, pos, SEEK_SET);
69
70
if
(maxburst < 0)
71
burst = -maxburst;
72
73
if
(pos + burst >
length
)
74
continue
;
75
76
while
(burst--) {
77
int
val
=
ran
() * 256ULL / UINT32_MAX;
78
79
if
(maxburst < 0)
80
val
= 0;
81
82
fwrite(&
val
, 1, 1,
f
);
83
}
84
}
85
86
return
0;
87
}
count
void INT64 INT64 count
Definition:
avisynth_c.h:767
f
#define f(width, name)
Definition:
cbs_vp9.c:255
abs
#define abs(x)
Definition:
cuda_runtime.h:35
main
int main(int argc, char **argv)
Definition:
trasher.c:42
printf
printf("static const uint8_t my_array[100] = {\n")
val
const char const char void * val
Definition:
avisynth_c.h:863
offset
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
Definition:
writing_filters.txt:86
ran
static uint32_t ran(void)
Definition:
trasher.c:28
state
static uint32_t state
Definition:
trasher.c:27
checked_seek
static void checked_seek(FILE *stream, int64_t offset, int whence)
Definition:
trasher.c:33
length
const char int length
Definition:
avisynth_c.h:860
Generated on Wed Aug 24 2022 21:27:32 for FFmpeg by
1.8.17