Go to the documentation of this file.
19 #ifndef SPEEDY_H_INCLUDED
20 #define SPEEDY_H_INCLUDED
59 uint8_t *bot,
int width );
65 int width,
int y,
int cb,
int cr );
72 int width,
int alpha,
int luma,
98 int width,
int alpha );
106 uint8_t *mask,
int width,
107 int textluma,
int textcb,
117 uint8_t *mask,
int width,
118 int textluma,
int textcb,
119 int textcr,
int alpha );
125 uint8_t *background,
int width,
126 int a,
int luma,
int cb,
int cr,
143 uint8_t *src2,
int width,
int pos );
158 uint8_t *bot,
int width );
164 uint8_t *m, uint8_t *t, uint8_t *b );
170 uint8_t *m, uint8_t *t, uint8_t *b );
206 extern void *(*speedy_memcpy)(
void *output,
const void *
input,
size_t size );
213 uint8_t *
new,
int os,
int ns );
220 int lasta,
int startpos,
int width );
227 uint8_t *three,
int width );
234 uint8_t *bot,
int subpixpos,
int width );
242 int width,
int alpha );
251 extern void (*aspect_adjust_packed4444_scanline)( uint8_t *output,
254 double pixel_aspect );
static uint32_t speedy_accel
Definition: speedy.c:2584
#define movd_r2m(reg, var)
Definition: mmx.h:427
static void composite_alphamask_alpha_to_packed4444_scanline_c(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr, int alpha)
Definition: speedy.c:1854
#define pand_m2r(var, reg)
Definition: mmx.h:554
#define punpcklbw_r2r(regs, regd)
Definition: mmx.h:695
#define speedy_memcpy_mmx
Definition: speedy.c:1398
void(* kill_chroma_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:104
void(* blit_packed422_scanline)(uint8_t *dest, const uint8_t *src, int width)
Definition: speedy.c:79
int p
Definition: speedy.h:52
static int Cb_B[256]
Definition: speedy.c:2136
#define paddw_m2r(var, reg)
Definition: mmx.h:442
static void mirror_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:1026
void(* blit_colour_packed4444_scanline)(uint8_t *output, int width, int alpha, int luma, int cb, int cr)
Definition: speedy.c:76
void(* blend_packed422_scanline)(uint8_t *output, uint8_t *src1, uint8_t *src2, int width, int pos)
Definition: speedy.c:97
void(* chroma_420_to_422_mpeg2_plane)(uint8_t *dst, uint8_t *src, int width, int height, int progressive)
Definition: speedy.c:149
#define pmaddwd_r2r(regs, regd)
Definition: mmx.h:529
void(* composite_packed4444_alpha_to_packed422_scanline)(uint8_t *output, uint8_t *input, uint8_t *foreground, int width, int alpha)
Definition: speedy.c:82
static void blit_packed422_scanline_c(uint8_t *dest, const uint8_t *src, int width)
Definition: speedy.c:1402
#define psrld_r2r(regs, regd)
Definition: mmx.h:640
uint32_t speedy_get_accel(void)
Definition: speedy.c:2684
#define paddw_r2r(regs, regd)
Definition: mmx.h:443
void setup_speedy_calls(uint32_t accel, int verbose)
Definition: speedy.c:2586
static void quarter_blit_vertical_packed422_scanline_c(uint8_t *output, uint8_t *one, uint8_t *three, int width)
Definition: speedy.c:2062
static void kill_chroma_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:962
#define MM_ACCEL_X86_MMX
Definition: xineutils.h:164
void(* filter_luma_14641_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:100
static unsigned int diff_factor_packed422_scanline_c(uint8_t *cur, uint8_t *old, int width)
Definition: speedy.c:267
#define psrlw_i2r(imm, reg)
Definition: mmx.h:643
void(* halfmirror_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:106
void(* composite_packed4444_to_packed422_scanline)(uint8_t *output, uint8_t *input, uint8_t *foreground, int width)
Definition: speedy.c:80
void(* rgba32_to_packed4444_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:144
#define paddd_r2r(regs, regd)
Definition: mmx.h:439
void(* diff_packed422_block8x8)(pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns)
Definition: speedy.c:108
void(* composite_alphamask_to_packed4444_scanline)(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr)
Definition: speedy.c:86
void(* composite_bars_packed4444_scanline)(uint8_t *output, uint8_t *background, int width, int a, int luma, int cb, int cr, int percentage)
Definition: speedy.c:116
void(* subpix_blit_vertical_packed422_scanline)(uint8_t *output, uint8_t *top, uint8_t *bot, int subpixpos, int width)
Definition: speedy.c:114
static int Cr_B[256]
Definition: speedy.c:2139
#define always_inline
Definition: bswap.h:28
static unsigned long BitShift
Definition: speedy.c:265
#define psubusb_r2r(regs, regd)
Definition: mmx.h:506
#define psubusw_r2r(regs, regd)
Definition: mmx.h:502
void(* vfilter_chroma_332_packed422_scanline)(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:154
void(* kill_chroma_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:104
int o
Definition: speedy.h:50
#define pavgb_r2r(regs, regd)
Definition: mmx.h:226
static void composite_packed4444_to_packed422_scanline_c(uint8_t *output, uint8_t *input, uint8_t *foreground, int width)
Definition: speedy.c:1581
#define sfence()
Definition: mmx.h:263
void(* premultiply_packed4444_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:96
int t
Definition: speedy.h:52
unsigned short uw[4]
Definition: mmx.h:59
unsigned int(* diff_factor_packed422_scanline)(uint8_t *cur, uint8_t *old, int width)
Definition: speedy.c:101
void(* packed422_to_packed444_rec601_scanline)(uint8_t *dest, uint8_t *src, int width)
Definition: speedy.c:135
int e
Definition: speedy.h:50
unsigned int(* comb_factor_packed422_scanline)(uint8_t *top, uint8_t *mid, uint8_t *bot, int width)
Definition: speedy.c:102
void(* rgb24_to_packed444_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:141
static void filter_luma_14641_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:1067
void(* chroma_420_to_422_mpeg2_plane)(uint8_t *dst, uint8_t *src, int width, int height, int progressive)
Definition: speedy.c:149
#define psrlq_i2r(imm, reg)
Definition: mmx.h:633
static __attribute__((always_inline, const))
Definition: speedy.c:164
static void chroma_420_to_422_mpeg2_plane_c(uint8_t *dst, uint8_t *src, int width, int height, int progressive)
Definition: speedy.c:2481
static void halfmirror_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:1041
void(* composite_alphamask_alpha_to_packed4444_scanline)(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr, int alpha)
Definition: speedy.c:91
short w[4]
Definition: mmx.h:58
void(* filter_luma_121_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:99
static void packed444_to_rgb24_rec601_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:2277
static void packed444_to_nonpremultiplied_packed4444_scanline_c(uint8_t *output, uint8_t *input, int width, int alpha)
Definition: speedy.c:2340
void(* packed444_to_packed422_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:129
static int conv_RY_inited
Definition: speedy.c:2140
void setup_speedy_calls(uint32_t accel, int verbose)
Definition: speedy.c:2586
static void init_YCbCr_to_RGB_tables(void)
Definition: speedy.c:2189
#define por_r2r(regs, regd)
Definition: mmx.h:570
void(* chroma_422_to_444_mpeg2_plane)(uint8_t *dst, uint8_t *src, int width, int height)
Definition: speedy.c:147
struct pulldown_metrics_s pulldown_metrics_t
#define pxor_r2r(regs, regd)
Definition: mmx.h:577
#define movq_m2r(var, reg)
Definition: mmx.h:411
#define psllq_i2r(imm, reg)
Definition: mmx.h:615
void(* filter_luma_14641_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:100
void(* packed422_to_packed444_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:132
static void diff_packed422_block8x8_c(pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns)
Definition: speedy.c:578
static void interpolate_packed422_scanline_c(uint8_t *output, uint8_t *top, uint8_t *bot, int width)
Definition: speedy.c:1087
static int Cb_G[256]
Definition: speedy.c:2135
void(* composite_packed4444_to_packed422_scanline)(uint8_t *output, uint8_t *input, uint8_t *foreground, int width)
Definition: speedy.c:80
void(* packed444_to_rgb24_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:138
static int Cr_R[256]
Definition: speedy.c:2137
static void packed444_to_packed422_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:607
int s
Definition: speedy.h:52
static void composite_bars_packed4444_scanline_c(uint8_t *output, uint8_t *background, int width, int a, int luma, int cb, int cr, int percentage)
Definition: speedy.c:2407
#define pshufw_r2r(regs, regd, imm)
Definition: mmx.h:261
void(* composite_bars_packed4444_scanline)(uint8_t *output, uint8_t *background, int width, int a, int luma, int cb, int cr, int percentage)
Definition: speedy.c:116
void(* blit_packed422_scanline)(uint8_t *dest, const uint8_t *src, int width)
Definition: speedy.c:79
void(* interpolate_packed422_scanline)(uint8_t *output, uint8_t *top, uint8_t *bot, int width)
Definition: speedy.c:72
static int Y_G[256]
Definition: speedy.c:2132
#define psubw_r2r(regs, regd)
Definition: mmx.h:480
unsigned int width
Definition: gfontrle.c:4
#define movd_m2r(var, reg)
Definition: mmx.h:426
static int Y_R[256]
Definition: speedy.c:2131
static int Y_B[256]
Definition: speedy.c:2133
void(* vfilter_chroma_332_packed422_scanline)(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:154
static void composite_alphamask_to_packed4444_scanline_c(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr)
Definition: speedy.c:1724
static int Cb_R[256]
Definition: speedy.c:2134
void(* mirror_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:105
static int B_Cb[256]
Definition: speedy.c:2146
void(* packed422_to_packed444_rec601_scanline)(uint8_t *dest, uint8_t *src, int width)
Definition: speedy.c:135
unsigned int(* comb_factor_packed422_scanline)(uint8_t *top, uint8_t *mid, uint8_t *bot, int width)
Definition: speedy.c:102
#define ABS(a)
Definition: speedy.c:431
void(* rgb24_to_packed444_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:141
uint32_t speedy_get_accel(void)
Definition: speedy.c:2684
void(* packed444_to_nonpremultiplied_packed4444_scanline)(uint8_t *output, uint8_t *input, int width, int alpha)
Definition: speedy.c:120
#define movntq_r2m(mmreg, var)
Definition: mmx.h:223
#define speedy_memcpy_mmxext
Definition: speedy.c:1399
void(* invert_colour_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:151
#define psubb_r2r(regs, regd)
Definition: mmx.h:484
void(* packed444_to_packed422_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:129
void(* halfmirror_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:106
void(* blit_colour_packed422_scanline)(uint8_t *output, int width, int y, int cb, int cr)
Definition: speedy.c:74
static void blend_packed422_scanline_c(uint8_t *output, uint8_t *src1, uint8_t *src2, int width, int pos)
Definition: speedy.c:1942
static int conv_YR_inited
Definition: speedy.c:2147
void(* diff_packed422_block8x8)(pulldown_metrics_t *m, uint8_t *old, uint8_t *new, int os, int ns)
Definition: speedy.c:108
#define psllw_i2r(imm, reg)
Definition: mmx.h:625
static void rgba32_to_packed4444_rec601_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:2258
#define emms()
Definition: mmx.h:732
#define pcmpgtw_r2r(regs, regd)
Definition: mmx.h:605
void(* blit_colour_packed4444_scanline)(uint8_t *output, int width, int alpha, int luma, int cb, int cr)
Definition: speedy.c:76
void(* blend_packed422_scanline)(uint8_t *output, uint8_t *src1, uint8_t *src2, int width, int pos)
Definition: speedy.c:97
#define movq_r2m(reg, var)
Definition: mmx.h:412
static int Cr_G[256]
Definition: speedy.c:2138
void(* interpolate_packed422_scanline)(uint8_t *output, uint8_t *top, uint8_t *bot, int width)
Definition: speedy.c:72
void *(* speedy_memcpy)(void *output, const void *input, size_t size)
Definition: speedy.c:107
unsigned int height
Definition: gfontrle.c:5
void(* a8_subpix_blit_scanline)(uint8_t *output, uint8_t *input, int lasta, int startpos, int width)
Definition: speedy.c:110
#define MM_ACCEL_X86_SSE2
Definition: xineutils.h:168
unsigned int(* diff_factor_packed422_scanline)(uint8_t *cur, uint8_t *old, int width)
Definition: speedy.c:101
static void packed422_to_packed444_rec601_scanline_c(uint8_t *dest, uint8_t *src, int width)
Definition: speedy.c:640
void(* quarter_blit_vertical_packed422_scanline)(uint8_t *output, uint8_t *one, uint8_t *three, int width)
Definition: speedy.c:112
void(* composite_alphamask_alpha_to_packed4444_scanline)(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr, int alpha)
Definition: speedy.c:91
static void a8_subpix_blit_scanline_c(uint8_t *output, uint8_t *input, int lasta, int startpos, int width)
Definition: speedy.c:2092
void(* vfilter_chroma_121_packed422_scanline)(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:152
void(* mirror_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:105
#define pmullw_r2r(regs, regd)
Definition: mmx.h:513
static void premultiply_packed4444_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:1888
static void init_RGB_to_YCbCr_tables(void)
Definition: speedy.c:2157
static void rgb24_to_packed444_rec601_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:2241
static int myround(double n)
Definition: speedy.c:2149
void(* rgba32_to_packed4444_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:144
void(* chroma_422_to_444_mpeg2_plane)(uint8_t *dst, uint8_t *src, int width, int height)
Definition: speedy.c:147
#define FP_BITS
Definition: speedy.c:2127
static int R_Cr[256]
Definition: speedy.c:2143
static void invert_colour_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:993
#define movq_r2r(regs, regd)
Definition: mmx.h:413
void(* blit_colour_packed422_scanline)(uint8_t *output, int width, int y, int cb, int cr)
Definition: speedy.c:74
static void blit_colour_packed4444_scanline_c(uint8_t *output, int width, int alpha, int luma, int cb, int cr)
Definition: speedy.c:1308
static void chroma_422_to_444_mpeg2_plane_c(uint8_t *dst, uint8_t *src, int width, int height)
Definition: speedy.c:2451
void(* packed444_to_rgb24_rec601_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:138
#define punpckhbw_r2r(regs, regd)
Definition: mmx.h:712
#define pand_r2r(regs, regd)
Definition: mmx.h:555
#define speedy_memcpy_c
Definition: speedy.c:1397
static void filter_luma_121_packed422_inplace_scanline_c(uint8_t *data, int width)
Definition: speedy.c:1051
static int G_Cb[256]
Definition: speedy.c:2144
static void subpix_blit_vertical_packed422_scanline_c(uint8_t *output, uint8_t *top, uint8_t *bot, int subpixpos, int width)
Definition: speedy.c:2073
int d
Definition: speedy.h:50
void(* composite_packed4444_alpha_to_packed422_scanline)(uint8_t *output, uint8_t *input, uint8_t *foreground, int width, int alpha)
Definition: speedy.c:82
void(* premultiply_packed4444_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:96
static void blit_colour_packed422_scanline_c(uint8_t *output, int width, int y, int cb, int cr)
Definition: speedy.c:1217
static void composite_packed4444_alpha_to_packed422_scanline_c(uint8_t *output, uint8_t *input, uint8_t *foreground, int width, int alpha)
Definition: speedy.c:1421
static int input(void)
Definition: goomsl_lex.c:1495
static void packed422_to_packed444_scanline_c(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:620
void(* a8_subpix_blit_scanline)(uint8_t *output, uint8_t *input, int lasta, int startpos, int width)
Definition: speedy.c:110
#define paddb_r2r(regs, regd)
Definition: mmx.h:447
#define packuswb_r2r(regs, regd)
Definition: mmx.h:678
void(* filter_luma_121_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:99
static int G_Cr[256]
Definition: speedy.c:2145
static void vfilter_chroma_121_packed422_scanline_c(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:730
void(* quarter_blit_vertical_packed422_scanline)(uint8_t *output, uint8_t *one, uint8_t *three, int width)
Definition: speedy.c:112
static int RGB_Y[256]
Definition: speedy.c:2142
#define MM_ACCEL_X86_MMXEXT
Definition: xineutils.h:166
void(* vfilter_chroma_121_packed422_scanline)(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:152
void(* packed444_to_nonpremultiplied_packed4444_scanline)(uint8_t *output, uint8_t *input, int width, int alpha)
Definition: speedy.c:120
void(* composite_alphamask_to_packed4444_scanline)(uint8_t *output, uint8_t *input, uint8_t *mask, int width, int textluma, int textcb, int textcr)
Definition: speedy.c:86
static void vfilter_chroma_332_packed422_scanline_c(uint8_t *output, int width, uint8_t *m, uint8_t *t, uint8_t *b)
Definition: speedy.c:928
void(* packed422_to_packed444_scanline)(uint8_t *output, uint8_t *input, int width)
Definition: speedy.c:132
void(* subpix_blit_vertical_packed422_scanline)(uint8_t *output, uint8_t *top, uint8_t *bot, int subpixpos, int width)
Definition: speedy.c:114
void(* invert_colour_packed422_inplace_scanline)(uint8_t *data, int width)
Definition: speedy.c:151