Go to the documentation of this file.
19 #ifndef PULLDOWN_H_INCLUDED
20 #define PULLDOWN_H_INCLUDED
34 #define PULLDOWN_SEQ_AA (1<<0)
35 #define PULLDOWN_SEQ_AB (1<<1)
36 #define PULLDOWN_SEQ_BC (1<<2)
37 #define PULLDOWN_SEQ_CC (1<<3)
38 #define PULLDOWN_SEQ_DD (1<<4)
40 #define PULLDOWN_ACTION_NEXT_PREV (1<<0)
41 #define PULLDOWN_ACTION_PREV_NEXT (1<<1)
58 uint8_t *old, uint8_t *
new,
int w,
int h,
int os,
int ns );
#define movd_r2m(reg, var)
Definition: mmx.h:427
int determine_pulldown_offset(int top_repeat, int bot_repeat, int tff, int last_offset)
Definition: pulldown.c:116
#define punpcklbw_r2r(regs, regd)
Definition: mmx.h:695
#define PULLDOWN_SEQ_AB
Definition: pulldown.h:35
static int bothistory_diff[5]
Definition: pulldown.c:182
#define HISTORY_SIZE
Definition: pulldown.c:176
int p
Definition: speedy.h:52
int determine_pulldown_offset(int top_repeat, int bot_repeat, int tff, int last_offset)
Definition: pulldown.c:116
static void deinterlace_scanline_vfir(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: vfir.c:117
#define PULLDOWN_SEQ_AA
Definition: pulldown.h:34
int pulldown_source(int action, int bottom_field)
Definition: pulldown.c:590
#define paddw_r2r(regs, regd)
Definition: mmx.h:443
static int tophistory_diff[5]
Definition: pulldown.c:181
#define movq(vars, vard)
Definition: mmx.h:414
int determine_pulldown_offset_history(int top_repeat, int bot_repeat, int tff, int *realbest)
Definition: pulldown.c:220
#define psrlw_i2r(imm, reg)
Definition: mmx.h:643
int pulldown_source(int action, int bottom_field)
Definition: pulldown.c:590
uint8_t * m0
Definition: deinterlace.h:56
uint8_t * m1
Definition: deinterlace.h:57
void(* diff_packed422_block8x8)(pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns)
Definition: speedy.c:108
const deinterlace_method_t * vfir_get_method(void)
Definition: vfir.c:160
#define paddusb(vars, vard)
Definition: mmx.h:470
#define psubusw_r2r(regs, regd)
Definition: mmx.h:502
int pulldown_drop(int action, int bottom_field)
Definition: pulldown.c:607
int o
Definition: speedy.h:50
static int histpos
Definition: pulldown.c:184
Definition: deinterlace.h:54
static void copy_scanline(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: weave.c:45
int t
Definition: speedy.h:52
unsigned short uw[4]
Definition: mmx.h:59
static int reference
Definition: pulldown.c:289
int e
Definition: speedy.h:50
int pulldown_drop(int action, int bottom_field)
Definition: pulldown.c:607
static int bothistory[5]
Definition: pulldown.c:179
static const deinterlace_method_t vfirmethod
Definition: vfir.c:132
#define pxor_r2r(regs, regd)
Definition: mmx.h:577
#define movq_m2r(var, reg)
Definition: mmx.h:411
#define PULLDOWN_ACTION_PREV_NEXT
Definition: pulldown.h:41
int determine_pulldown_offset_short_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:401
int determine_pulldown_offset_history(int top_repeat, int bot_repeat, int tff, int *realbest)
Definition: pulldown.c:220
#define PULLDOWN_SEQ_DD
Definition: pulldown.h:38
uint8_t * bb1
Definition: deinterlace.h:57
void diff_factor_packed422_frame(pulldown_metrics_t *peak, pulldown_metrics_t *rel, pulldown_metrics_t *mean, uint8_t *old, uint8_t *new, int w, int h, int os, int ns)
Definition: pulldown.c:550
int s
Definition: speedy.h:52
void(* blit_packed422_scanline)(uint8_t *dest, const uint8_t *src, int width)
Definition: speedy.c:79
int determine_pulldown_offset_short_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:401
unsigned int width
Definition: gfontrle.c:4
#define movd_m2r(var, reg)
Definition: mmx.h:426
int determine_pulldown_offset_dalias(pulldown_metrics_t *old_peak, pulldown_metrics_t *old_relative, pulldown_metrics_t *old_mean, pulldown_metrics_t *new_peak, pulldown_metrics_t *new_relative, pulldown_metrics_t *new_mean)
Definition: pulldown.c:517
uint8_t * t0
Definition: deinterlace.h:56
Definition: deinterlace.h:123
uint8_t * tt1
Definition: deinterlace.h:57
static void copy_scanline(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: vfir.c:124
#define psllw_i2r(imm, reg)
Definition: mmx.h:625
#define V_PMAXUB(mmr1, mmr2)
Definition: greedyhmacros.h:48
#define emms()
Definition: mmx.h:732
int determine_pulldown_offset_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:291
void diff_factor_packed422_frame(pulldown_metrics_t *peak, pulldown_metrics_t *rel, pulldown_metrics_t *mean, uint8_t *old, uint8_t *new, int w, int h, int os, int ns)
Definition: pulldown.c:550
static const int bff_bot_pattern[]
Definition: pulldown.c:100
const deinterlace_method_t * weave_get_method(void)
Definition: weave.c:68
#define V_PMINUB(mmr1, mmr2, mmrw)
Definition: greedyhmacros.h:61
static const int tff_top_pattern[]
Definition: pulldown.c:92
static const int tff_bot_pattern[]
Definition: pulldown.c:93
uint8_t * b0
Definition: deinterlace.h:56
static void deinterlace_line(uint8_t *dst, uint8_t *lum_m4, uint8_t *lum_m3, uint8_t *lum_m2, uint8_t *lum_m1, uint8_t *lum, int size)
Definition: vfir.c:51
int determine_pulldown_offset_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:291
#define PULLDOWN_SEQ_CC
Definition: pulldown.h:37
static const deinterlace_method_t weavemethod
Definition: weave.c:53
#define PULLDOWN_ACTION_NEXT_PREV
Definition: pulldown.h:40
static int tophistory[5]
Definition: pulldown.c:178
int d
Definition: speedy.h:50
#define V_PAVGB(mmr1, mmr2, mmrw, smask)
Definition: greedyhmacros.h:38
static void deinterlace_scanline_weave(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: weave.c:38
#define MAXUP(a, b)
Definition: pulldown.c:548
static const int bff_top_pattern[]
Definition: pulldown.c:99
int determine_pulldown_offset_dalias(pulldown_metrics_t *old_peak, pulldown_metrics_t *old_relative, pulldown_metrics_t *old_mean, pulldown_metrics_t *new_peak, pulldown_metrics_t *new_relative, pulldown_metrics_t *new_mean)
Definition: pulldown.c:517
#define psubusb(vars, vard)
Definition: mmx.h:507
#define packuswb_r2r(regs, regd)
Definition: mmx.h:678
#define MM_ACCEL_X86_MMXEXT
Definition: xineutils.h:166
#define PULLDOWN_SEQ_BC
Definition: pulldown.h:36