29 #define OFFSET(x) offsetof(IDETContext, x)
30 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
45 case TFF :
return "tff";
46 case BFF :
return "bff";
53 #define PRECISION 1048576
55 static uint64_t
uintpow(uint64_t
b,
unsigned int e)
66 uint64_t print_precision =
uintpow(10, digits);
70 snprintf(valuestr,
sizeof(valuestr),
"%"PRId64
".%0*"PRId64,
71 value / print_precision, digits, value % print_precision);
78 switch(repeated_field) {
92 int v = (*a++ + *c++) - 2 * *b++;
105 int v = (*a++ + *c++) - 2 * *b++;
116 int64_t
alpha[2]={0};
118 int64_t gamma[2]={0};
134 for (y = 2; y < h - 2; y++) {
138 alpha[ y &1] += idet->
filter_line(cur-refs, prev, cur+refs, w);
139 alpha[(y^1)&1] += idet->
filter_line(cur-refs, next, cur+refs, w);
140 delta += idet->
filter_line(cur-refs, cur, cur+refs, w);
141 gamma[(y^1)&1] += idet->
filter_line(cur , prev, cur , w);
171 if(idet->
history[i] == best_type) {
212 av_log(ctx,
AV_LOG_DEBUG,
"Repeated Field:%12s, Single frame:%12s, Multi frame:%12s\n",
285 }
else if (ret < 0) {
288 }
while (!idet->
prev);
297 av_log(ctx,
AV_LOG_INFO,
"Repeated Fields: Neither:%6"PRId64
" Top:%6"PRId64
" Bottom:%6"PRId64
"\n",
302 av_log(ctx,
AV_LOG_INFO,
"Single frame detection: TFF:%6"PRId64
" BFF:%6"PRId64
" Progressive:%6"PRId64
" Undetermined:%6"PRId64
"\n",
308 av_log(ctx,
AV_LOG_INFO,
"Multi frame detection: TFF:%6"PRId64
" BFF:%6"PRId64
" Progressive:%6"PRId64
" Undetermined:%6"PRId64
"\n",
405 .priv_class = &idet_class,