mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
124 lines
5.9 KiB
C
124 lines
5.9 KiB
C
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
typedef void (fastconvert_packedFunc)(void* x_ptr, int x_stride,
|
|
void* y_src, void* v_src, void* u_src, int y_stride, int uv_stride,
|
|
int width, int height, int vflip);
|
|
typedef fastconvert_packedFunc *fastconvert_packedFuncPtr;
|
|
/* plain c */
|
|
extern fastconvert_packedFunc fastconvert_rgb555_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_rgb565_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_bgr_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_bgra_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_abgr_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_rgba_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_argb_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_yuyv_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_uyvy_to_yv12_c;
|
|
|
|
extern fastconvert_packedFunc fastconvert_rgb555i_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_rgb565i_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_bgri_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_bgrai_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_abgri_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_rgbai_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_argbi_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_yuyvi_to_yv12_c;
|
|
extern fastconvert_packedFunc fastconvert_uyvyi_to_yv12_c;
|
|
|
|
/* mmx */
|
|
extern fastconvert_packedFunc fastconvert_bgr_to_yv12_mmx;
|
|
extern fastconvert_packedFunc fastconvert_bgra_to_yv12_mmx;
|
|
extern fastconvert_packedFunc fastconvert_yuyv_to_yv12_mmx;
|
|
extern fastconvert_packedFunc fastconvert_uyvy_to_yv12_mmx;
|
|
|
|
/* 3dnow */
|
|
extern fastconvert_packedFunc fastconvert_yuyv_to_yv12_3dn;
|
|
extern fastconvert_packedFunc fastconvert_uyvy_to_yv12_3dn;
|
|
|
|
/* xmm */
|
|
extern fastconvert_packedFunc fastconvert_yuyv_to_yv12_xmm;
|
|
extern fastconvert_packedFunc fastconvert_uyvy_to_yv12_xmm;
|
|
|
|
|
|
/* plain c */
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgb555_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgb565_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgr_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgra_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_abgr_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgba_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_argb_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_yuyv_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_uyvy_c;
|
|
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgb555i_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgb565i_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgri_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgrai_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_abgri_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_rgbai_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_argbi_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_yuyvi_c;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_uyvyi_c;
|
|
|
|
/* mmx */
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgr_mmx;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_bgra_mmx;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_yuyv_mmx;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_uyvy_mmx;
|
|
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_yuyvi_mmx;
|
|
extern fastconvert_packedFunc fastconvert_yv12_to_uyvyi_mmx;
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
typedef void (fastconvert_planarFunc)(void* y_dst, void* u_dst, void* v_dst, int y_dst_stride, int uv_dst_stride,
|
|
void* y_src, void* u_src, void* v_src, int y_src_stride, int uv_src_stride,
|
|
int width, int height, int vflip);
|
|
typedef fastconvert_planarFunc *fastconvert_planarFuncPtr;
|
|
|
|
extern fastconvert_planarFunc fastconvert_yv12_to_yv12_c;
|
|
extern fastconvert_planarFunc fastconvert_yv12_to_yv12_mmx;
|
|
extern fastconvert_planarFunc fastconvert_yv12_to_yv12_xmm;
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
typedef void (fastconvet_emmsFunc) ();
|
|
typedef fastconvet_emmsFunc *fastconvert_emmsFuncPtr;
|
|
|
|
extern fastconvet_emmsFunc fastconvert_emms_c;
|
|
extern fastconvet_emmsFunc fastconvert_emms_mmx;
|
|
extern fastconvet_emmsFunc fastconvert_emms_3dn;
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
typedef void (fastconvert_Func)(void* dst, void* src, int w, int srcpitch);
|
|
typedef fastconvert_Func *fastconvert_FuncPtr;
|
|
|
|
extern fastconvert_Func fastconvert_asm_blend_row_clipped;
|
|
extern fastconvert_Func fastconvert_asm_blend_row;
|
|
extern fastconvert_Func fastconvert_asm_blend_row_MMX;
|
|
extern fastconvert_Func fastconvert_asm_middle_row;
|
|
extern fastconvert_Func fastconvert_asm_middle_row_MMX;
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
extern void fastconvert_colorspace_init(void);
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
extern int fastconvert_check_cpu_features(void);
|
|
extern void fastconvert_sse_os_trigger(void);
|
|
extern void fastconvert_sse2_os_trigger(void);
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
extern void fastconvert_safe_packed_conv(void* x_ptr, int x_stride,
|
|
void* y_ptr, void* u_ptr, void* v_ptr, int y_stride, int uv_stride,
|
|
int width, int height, int vflip,
|
|
fastconvert_packedFunc* func_opt, fastconvert_packedFunc func_c, int size);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|