libavfilter/libmpcodecs/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

Defines

#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 vf_info_detc


Define Documentation

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

Definition at line 51 of file vf_detc.c.

Referenced by analyze_aggressive().

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

Definition at line 50 of file vf_detc.c.

#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().

#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 OUTER_TC_NBHD (  ) 

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 STARTVARS   if (0)

Definition at line 394 of file vf_detc.c.

Referenced by parse_var().

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

Definition at line 52 of file vf_detc.c.

Referenced by analyze_aggressive().


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 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 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 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.

static int config ( struct vf_instance vf,
int  width,
int  height,
int  d_width,
int  d_height,
unsigned int  flags,
unsigned int  outfmt 
) [static]

Definition at line 372 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 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(), foo(), and put_image().

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 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 void parse_args ( struct vf_priv_s p,
char *  args 
) [static]

Definition at line 412 of file vf_detc.c.

Referenced by open(), and 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 int put_image ( struct vf_instance vf,
mp_image_t mpi,
double  pts 
) [static]

Definition at line 316 of file vf_detc.c.

static int query_format ( struct vf_instance vf,
unsigned int  fmt 
) [static]

Definition at line 360 of file vf_detc.c.

static void status ( int  f,
struct metrics m 
) [static]

static void uninit ( struct vf_instance vf  )  [static]

Definition at line 379 of file vf_detc.c.

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

Definition at line 423 of file vf_detc.c.


Variable Documentation

struct { ... } anal_funcs[] [static]

Referenced by vf_open().

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

const char* name

int needread

Definition at line 387 of file vf_detc.c.

Initial value:

 {
    "de-telecine filter",
    "detc",
    "Rich Felker",
    "",
    vf_open,
    NULL
}

Definition at line 446 of file vf_detc.c.


Generated on Fri Oct 26 02:48:00 2012 for FFmpeg by  doxygen 1.5.8