FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
vf_detc.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "mp_msg.h"
#include "img_format.h"
#include "mp_image.h"
#include "vf.h"
#include "libvo/fastmemcpy.h"

Go to the source code of this file.

Data Structures

struct  metrics
 
struct  vf_priv_s
 

Macros

#define COMPE(a, b, e)   (abs((a)-(b)) < (((a)+(b))>>(e)))
 
#define COMPARABLE(a, b)   COMPE((a),(b),2)
 
#define VERYCLOSE(a, b)   COMPE((a),(b),3)
 
#define OUTER_TC_NBHD(s)
 
#define INNER_TC_NBHD(s, l, h)
 
#define STARTVARS   if (0)
 
#define GETVAR(str, name, out, func)
 

Enumerations

enum  { TC_DROP, TC_PROG, TC_IL1, TC_IL2 }
 

Functions

static void block_diffs (struct metrics *m, unsigned char *old, unsigned char *new, int os, int ns)
 
static void diff_planes (struct metrics *m, unsigned char *old, unsigned char *new, int w, int h, int os, int ns)
 
static void diff_fields (struct metrics *metr, mp_image_t *old, mp_image_t *new)
 
static void status (int f, struct metrics *m)
 
static int analyze_fixed_pattern (struct vf_priv_s *p, mp_image_t *new, mp_image_t *old)
 
static int analyze_aggressive (struct vf_priv_s *p, mp_image_t *new, mp_image_t *old)
 
static void copy_image (mp_image_t *dmpi, mp_image_t *mpi, int field)
 
static int do_put_image (struct vf_instance *vf, mp_image_t *dmpi)
 
static int put_image (struct vf_instance *vf, mp_image_t *mpi, double pts)
 
static int query_format (struct vf_instance *vf, unsigned int fmt)
 
static int config (struct vf_instance *vf, int width, int height, int d_width, int d_height, unsigned int flags, unsigned int outfmt)
 
static void uninit (struct vf_instance *vf)
 
static void parse_var (struct vf_priv_s *p, char *var)
 
static void parse_args (struct vf_priv_s *p, char *args)
 
static int vf_open (vf_instance_t *vf, char *args)
 

Variables

struct {
   const char *   name
 
   int(*   func )(struct vf_priv_s *p,
      mp_image_t *new, mp_image_t
      *old)
 
   int   needread
 
anal_funcs []
 
const vf_info_t ff_vf_info_detc
 

Macro Definition Documentation

#define COMPE (   a,
  b,
 
)    (abs((a)-(b)) < (((a)+(b))>>(e)))

Definition at line 50 of file vf_detc.c.

#define COMPARABLE (   a,
  b 
)    COMPE((a),(b),2)

Definition at line 51 of file vf_detc.c.

Referenced by analyze_aggressive().

#define VERYCLOSE (   a,
  b 
)    COMPE((a),(b),3)

Definition at line 52 of file vf_detc.c.

Referenced by analyze_aggressive().

#define OUTER_TC_NBHD (   s)
Value:
( \
COMPARABLE((s)[-1].m.even,(s)[-1].m.odd) && \
COMPARABLE((s)[1].m.even,(s)[0].m.odd) && \
COMPARABLE((s)[2].m.even,(s)[1].m.odd) && \
COMPARABLE((s)[-1].m.noise,(s)[0].m.temp) && \
COMPARABLE((s)[2].m.noise,(s)[2].m.temp) )

Definition at line 54 of file vf_detc.c.

#define INNER_TC_NBHD (   s,
  l,
 
)
Value:
( \
COMPARABLE((s)[0].m.even,(l)) && \
COMPARABLE((s)[2].m.odd,(l)) && ( \
COMPARABLE((s)[0].m.noise,(h)) || \
COMPARABLE((s)[1].m.noise,(h)) ) )

Definition at line 61 of file vf_detc.c.

#define STARTVARS   if (0)

Definition at line 394 of file vf_detc.c.

Referenced by parse_var().

#define GETVAR (   str,
  name,
  out,
  func 
)
Value:
else if (!strncmp((str), name "=", sizeof(name))) \
(out) = (func)((str) + sizeof(name))

Definition at line 395 of file vf_detc.c.

Referenced by parse_var().

Enumeration Type Documentation

anonymous enum
Enumerator:
TC_DROP 
TC_PROG 
TC_IL1 
TC_IL2 

Definition at line 67 of file vf_detc.c.

Function Documentation

static void block_diffs ( struct metrics m,
unsigned char *  old,
unsigned char *  new,
int  os,
int  ns 
)
static

Definition at line 74 of file vf_detc.c.

Referenced by diff_planes().

static void diff_planes ( struct metrics m,
unsigned char *  old,
unsigned char *  new,
int  w,
int  h,
int  os,
int  ns 
)
static

Definition at line 98 of file vf_detc.c.

Referenced by diff_fields().

static void diff_fields ( struct metrics metr,
mp_image_t old,
mp_image_t new 
)
static

Definition at line 117 of file vf_detc.c.

Referenced by analyze_aggressive().

static void status ( int  f,
struct metrics m 
)
static
static int analyze_fixed_pattern ( struct vf_priv_s p,
mp_image_t new,
mp_image_t old 
)
static

Definition at line 147 of file vf_detc.c.

static int analyze_aggressive ( struct vf_priv_s p,
mp_image_t new,
mp_image_t old 
)
static

Definition at line 162 of file vf_detc.c.

static void copy_image ( mp_image_t dmpi,
mp_image_t mpi,
int  field 
)
static

Definition at line 243 of file vf_detc.c.

Referenced by put_image().

static int do_put_image ( struct vf_instance *  vf,
mp_image_t dmpi 
)
static

Definition at line 288 of file vf_detc.c.

Referenced by put_image().

static int put_image ( struct vf_instance *  vf,
mp_image_t mpi,
double  pts 
)
static

Definition at line 316 of file vf_detc.c.

Referenced by vf_open().

static int query_format ( struct vf_instance *  vf,
unsigned int  fmt 
)
static

Definition at line 360 of file vf_detc.c.

Referenced by vf_open().

static int config ( struct vf_instance *  vf,
int  width,
int  height,
int  d_width,
int  d_height,
unsigned int  flags,
unsigned int  outfmt 
)
static
static void uninit ( struct vf_instance *  vf)
static

Definition at line 379 of file vf_detc.c.

Referenced by vf_open().

static void parse_var ( struct vf_priv_s p,
char *  var 
)
static

Definition at line 399 of file vf_detc.c.

Referenced by parse_args().

static void parse_args ( struct vf_priv_s p,
char *  args 
)
static

Definition at line 412 of file vf_detc.c.

Referenced by vf_open().

static int vf_open ( vf_instance_t vf,
char *  args 
)
static

Definition at line 423 of file vf_detc.c.

Variable Documentation

const char* name
int(* func)(struct vf_priv_s *p, mp_image_t *new, mp_image_t *old)

Definition at line 386 of file vf_detc.c.

int needread

Definition at line 387 of file vf_detc.c.

struct { ... } anal_funcs[]
Initial value:
= {
{ "fixed", analyze_fixed_pattern, 0 },
{ "aggressive", analyze_aggressive, 1 },
{ NULL, NULL, 0 }
}

Referenced by vf_open().

const vf_info_t ff_vf_info_detc
Initial value:
= {
"de-telecine filter",
"detc",
"Rich Felker",
"",
}

Definition at line 446 of file vf_detc.c.