Go to the documentation of this file.
30 #define MAX_FORMATS 1000 //this must be larger than the number of formats
37 #define AV_READ_TIME(x) 0
44 void *fmt_opaque =
NULL;
59 "Failure of %s probing code with score=%d type=%d p=%X size=%d\n",
72 void *fmt_opaque =
NULL;
78 fprintf(stderr,
"%12"PRIu64
" cycles, %12s\n",
96 int main(
int argc,
char **argv)
102 int retry_count= 4097;
103 int max_size = 65537;
106 for (j =
i = 1;
i<argc;
i++) {
109 }
else if (
read_int(argv[
i])>0 && j == 1) {
112 }
else if (
read_int(argv[
i])>0 && j == 2) {
116 fprintf(stderr,
"probetest [-f <input format>] [<retry_count> [<max_size>]]\n");
121 if (max_size > 1000000000
U/8) {
122 fprintf(stderr,
"max_size out of bounds\n");
126 if (retry_count > 1000000000
U) {
127 fprintf(stderr,
"retry_count out of bounds\n");
140 fprintf(stderr,
"out of memory\n");
146 fprintf(stderr,
"testing size=%d\n",
size);
148 for (retry = 0; retry < retry_count; retry +=
FFMAX(
size, 32)) {
150 for (p = 0; p < 4096; p++) {
159 for (
i = 0;
i <
size * 8;
i++) {
160 unsigned int p2 = hist ? p & 0x3F : (p >> 6);
167 for (
i = 0;
i <
size * 8;
i++) {
168 unsigned int p2 = (p >> (hist * 3)) & 7;
171 hist = (2 * hist + v) & 3;
179 if (
c >=
'a' &&
c <=
'z' && (p & 1))
181 else if (
c >=
'A' &&
c <=
'Z' && (p & 2))
183 else if (
c >=
'0' &&
c <=
'9' && (p & 4))
185 else if (
c ==
' ' && (p & 8))
187 else if (
c == 0 && (p & 16))
189 else if (
c == 1 && (p & 32))
av_cold void av_lfg_init(AVLFG *c, unsigned int seed)
static void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
Initialize the PutBitContext s.
int main(int argc, char **argv)
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
int buf_size
Size of buf except extra allocated bytes.
static int score_array[MAX_FORMATS]
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 type
static unsigned int av_lfg_get(AVLFG *c)
Get the next random unsigned 32-bit number using an ALFG.
unsigned char * buf
Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero.
static int read_int(char *arg)
static int64_t time_array[MAX_FORMATS]
This structure contains the data a format has to probe a file.
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Context structure for the Lagged Fibonacci PRNG.
const AVInputFormat * av_demuxer_iterate(void **opaque)
Iterate over all registered demuxers.
#define i(width, name, range_min, range_max)
static const char * single_format
static const FFInputFormat * ffifmt(const AVInputFormat *fmt)
static int read_probe(const AVProbeData *p)
static void flush_put_bits(PutBitContext *s)
Pad the end of the output stream with zeros.
static void print_times(void)
static void probe(AVProbeData *pd, int type, int p, int size)
void * av_realloc(void *ptr, size_t size)
Allocate, reallocate, or free a block of memory.