xine-lib  1.2.10
pulldown.h
Go to the documentation of this file.
1 
19 #ifndef PULLDOWN_H_INCLUDED
20 #define PULLDOWN_H_INCLUDED
21 
22 #if HAVE_INTTYPES_H
23 #include <inttypes.h>
24 #else
25 #include <stdint.h>
26 #endif
27 
28 #include "speedy.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 #define PULLDOWN_SEQ_AA (1<<0) /* next - prev */
35 #define PULLDOWN_SEQ_AB (1<<1) /* prev - next */
36 #define PULLDOWN_SEQ_BC (1<<2) /* prev - next */
37 #define PULLDOWN_SEQ_CC (1<<3) /* next - prev */
38 #define PULLDOWN_SEQ_DD (1<<4) /* next - prev */
39 
40 #define PULLDOWN_ACTION_NEXT_PREV (1<<0) /* next - prev */
41 #define PULLDOWN_ACTION_PREV_NEXT (1<<1) /* prev - next */
42 
47 int pulldown_source( int action, int bottom_field );
48 
49 int determine_pulldown_offset( int top_repeat, int bot_repeat, int tff, int last_offset );
50 int determine_pulldown_offset_history( int top_repeat, int bot_repeat, int tff, int *realbest );
51 int determine_pulldown_offset_history_new( int top_repeat, int bot_repeat, int tff, int predicted );
52 int determine_pulldown_offset_short_history_new( int top_repeat, int bot_repeat, int tff, int predicted );
54  pulldown_metrics_t *old_mean, pulldown_metrics_t *new_peak,
55  pulldown_metrics_t *new_relative, pulldown_metrics_t *new_mean );
56 
58  uint8_t *old, uint8_t *new, int w, int h, int os, int ns );
59 
60 int pulldown_drop( int action, int bottom_field );
61 
62 #ifdef __cplusplus
63 };
64 #endif
65 #endif /* PULLDOWN_H_INCLUDED */
movd_r2m
#define movd_r2m(reg, var)
Definition: mmx.h:427
determine_pulldown_offset
int determine_pulldown_offset(int top_repeat, int bot_repeat, int tff, int last_offset)
Definition: pulldown.c:116
punpcklbw_r2r
#define punpcklbw_r2r(regs, regd)
Definition: mmx.h:695
PULLDOWN_SEQ_AB
#define PULLDOWN_SEQ_AB
Definition: pulldown.h:35
bothistory_diff
static int bothistory_diff[5]
Definition: pulldown.c:182
HISTORY_SIZE
#define HISTORY_SIZE
Definition: pulldown.c:176
pulldown_metrics_s::p
int p
Definition: speedy.h:52
determine_pulldown_offset
int determine_pulldown_offset(int top_repeat, int bot_repeat, int tff, int last_offset)
Definition: pulldown.c:116
xineutils.h
deinterlace_scanline_vfir
static void deinterlace_scanline_vfir(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: vfir.c:117
PULLDOWN_SEQ_AA
#define PULLDOWN_SEQ_AA
Definition: pulldown.h:34
pulldown_source
int pulldown_source(int action, int bottom_field)
Definition: pulldown.c:590
paddw_r2r
#define paddw_r2r(regs, regd)
Definition: mmx.h:443
tophistory_diff
static int tophistory_diff[5]
Definition: pulldown.c:181
movq
#define movq(vars, vard)
Definition: mmx.h:414
determine_pulldown_offset_history
int determine_pulldown_offset_history(int top_repeat, int bot_repeat, int tff, int *realbest)
Definition: pulldown.c:220
psrlw_i2r
#define psrlw_i2r(imm, reg)
Definition: mmx.h:643
pulldown_source
int pulldown_source(int action, int bottom_field)
Definition: pulldown.c:590
deinterlace_scanline_data_s::m0
uint8_t * m0
Definition: deinterlace.h:56
deinterlace_scanline_data_s::m1
uint8_t * m1
Definition: deinterlace.h:57
xine_mmx.h
diff_packed422_block8x8
void(* diff_packed422_block8x8)(pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns)
Definition: speedy.c:108
vfir_get_method
const deinterlace_method_t * vfir_get_method(void)
Definition: vfir.c:160
paddusb
#define paddusb(vars, vard)
Definition: mmx.h:470
psubusw_r2r
#define psubusw_r2r(regs, regd)
Definition: mmx.h:502
pulldown_drop
int pulldown_drop(int action, int bottom_field)
Definition: pulldown.c:607
pulldown_metrics_s::o
int o
Definition: speedy.h:50
histpos
static int histpos
Definition: pulldown.c:184
deinterlace_scanline_data_s
Definition: deinterlace.h:54
copy_scanline
static void copy_scanline(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: weave.c:45
pulldown_metrics_s::t
int t
Definition: speedy.h:52
mmx_t::uw
unsigned short uw[4]
Definition: mmx.h:59
reference
static int reference
Definition: pulldown.c:289
pulldown_metrics_s::e
int e
Definition: speedy.h:50
pulldown_drop
int pulldown_drop(int action, int bottom_field)
Definition: pulldown.c:607
bothistory
static int bothistory[5]
Definition: pulldown.c:179
attributes.h
vfirmethod
static const deinterlace_method_t vfirmethod
Definition: vfir.c:132
pxor_r2r
#define pxor_r2r(regs, regd)
Definition: mmx.h:577
movq_m2r
#define movq_m2r(var, reg)
Definition: mmx.h:411
PULLDOWN_ACTION_PREV_NEXT
#define PULLDOWN_ACTION_PREV_NEXT
Definition: pulldown.h:41
determine_pulldown_offset_short_history_new
int determine_pulldown_offset_short_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:401
determine_pulldown_offset_history
int determine_pulldown_offset_history(int top_repeat, int bot_repeat, int tff, int *realbest)
Definition: pulldown.c:220
PULLDOWN_SEQ_DD
#define PULLDOWN_SEQ_DD
Definition: pulldown.h:38
deinterlace_scanline_data_s::bb1
uint8_t * bb1
Definition: deinterlace.h:57
diff_factor_packed422_frame
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
pulldown_metrics_s::s
int s
Definition: speedy.h:52
blit_packed422_scanline
void(* blit_packed422_scanline)(uint8_t *dest, const uint8_t *src, int width)
Definition: speedy.c:79
determine_pulldown_offset_short_history_new
int determine_pulldown_offset_short_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:401
plugins.h
width
unsigned int width
Definition: gfontrle.c:4
movd_m2r
#define movd_m2r(var, reg)
Definition: mmx.h:426
determine_pulldown_offset_dalias
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
deinterlace_scanline_data_s::t0
uint8_t * t0
Definition: deinterlace.h:56
mmx_t
Definition: mmx.h:53
deinterlace_method_s
Definition: deinterlace.h:123
deinterlace_scanline_data_s::tt1
uint8_t * tt1
Definition: deinterlace.h:57
copy_scanline
static void copy_scanline(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: vfir.c:124
psllw_i2r
#define psllw_i2r(imm, reg)
Definition: mmx.h:625
V_PMAXUB
#define V_PMAXUB(mmr1, mmr2)
Definition: greedyhmacros.h:48
emms
#define emms()
Definition: mmx.h:732
determine_pulldown_offset_history_new
int determine_pulldown_offset_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:291
diff_factor_packed422_frame
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
bff_bot_pattern
static const int bff_bot_pattern[]
Definition: pulldown.c:100
weave_get_method
const deinterlace_method_t * weave_get_method(void)
Definition: weave.c:68
V_PMINUB
#define V_PMINUB(mmr1, mmr2, mmrw)
Definition: greedyhmacros.h:61
tff_top_pattern
static const int tff_top_pattern[]
Definition: pulldown.c:92
tff_bot_pattern
static const int tff_bot_pattern[]
Definition: pulldown.c:93
speedy.h
deinterlace_scanline_data_s::b0
uint8_t * b0
Definition: deinterlace.h:56
deinterlace_line
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
determine_pulldown_offset_history_new
int determine_pulldown_offset_history_new(int top_repeat, int bot_repeat, int tff, int predicted)
Definition: pulldown.c:291
PULLDOWN_SEQ_CC
#define PULLDOWN_SEQ_CC
Definition: pulldown.h:37
config.h
weavemethod
static const deinterlace_method_t weavemethod
Definition: weave.c:53
PULLDOWN_ACTION_NEXT_PREV
#define PULLDOWN_ACTION_NEXT_PREV
Definition: pulldown.h:40
tophistory
static int tophistory[5]
Definition: pulldown.c:178
pulldown_metrics_s
Definition: speedy.h:48
pulldown_metrics_s::d
int d
Definition: speedy.h:50
V_PAVGB
#define V_PAVGB(mmr1, mmr2, mmrw, smask)
Definition: greedyhmacros.h:38
deinterlace_scanline_weave
static void deinterlace_scanline_weave(uint8_t *output, deinterlace_scanline_data_t *data, int width)
Definition: weave.c:38
MAXUP
#define MAXUP(a, b)
Definition: pulldown.c:548
pulldown.h
bff_top_pattern
static const int bff_top_pattern[]
Definition: pulldown.c:99
determine_pulldown_offset_dalias
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
psubusb
#define psubusb(vars, vard)
Definition: mmx.h:507
packuswb_r2r
#define packuswb_r2r(regs, regd)
Definition: mmx.h:678
MM_ACCEL_X86_MMXEXT
#define MM_ACCEL_X86_MMXEXT
Definition: xineutils.h:166
deinterlace.h
PULLDOWN_SEQ_BC
#define PULLDOWN_SEQ_BC
Definition: pulldown.h:36