diff --git a/dependencies/ih264d/CMakeLists.txt b/dependencies/ih264d/CMakeLists.txt index d97d6dda..626424f5 100644 --- a/dependencies/ih264d/CMakeLists.txt +++ b/dependencies/ih264d/CMakeLists.txt @@ -140,7 +140,7 @@ target_sources(ih264d PRIVATE "decoder/x86/ih264d_function_selector_sse42.c" "decoder/x86/ih264d_function_selector_ssse3.c" ) -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") +elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") enable_language( C CXX ASM ) set(LIBAVCDEC_ARM_INCLUDES "common/armv8" "decoder/arm") include_directories("common/" "decoder/" ${LIBAVCDEC_ARM_INCLUDES}) diff --git a/dependencies/ih264d/common/armv8/ih264_intra_pred_chroma_av8.s b/dependencies/ih264d/common/armv8/ih264_intra_pred_chroma_av8.s index 39c02560..fa4c07c5 100644 --- a/dependencies/ih264d/common/armv8/ih264_intra_pred_chroma_av8.s +++ b/dependencies/ih264d/common/armv8/ih264_intra_pred_chroma_av8.s @@ -53,10 +53,13 @@ .text .p2align 2 .include "ih264_neon_macros.s" - +#ifdef __APPLE__ +.extern _ih264_gai1_intrapred_chroma_plane_coeffs1 +.extern _ih264_gai1_intrapred_chroma_plane_coeffs2 +#else .extern ih264_gai1_intrapred_chroma_plane_coeffs1 .extern ih264_gai1_intrapred_chroma_plane_coeffs2 - +#endif ///** @@ -429,8 +432,13 @@ ih264_intra_pred_chroma_8x8_mode_plane_av8: rev64 v7.4h, v2.4h ld1 {v3.2s}, [x10] sub x5, x3, #8 +#ifdef __APPLE__ + adrp x12, _ih264_gai1_intrapred_chroma_plane_coeffs1@GOTPAGE + ldr x12, [x12, _ih264_gai1_intrapred_chroma_plane_coeffs1@GOTPAGEOFF] +#else adrp x12, :got:ih264_gai1_intrapred_chroma_plane_coeffs1 ldr x12, [x12, #:got_lo12:ih264_gai1_intrapred_chroma_plane_coeffs1] +#endif usubl v10.8h, v5.8b, v1.8b ld1 {v8.8b, v9.8b}, [x12] // Load multiplication factors 1 to 8 into D3 mov v8.d[1], v9.d[0] @@ -484,10 +492,13 @@ ih264_intra_pred_chroma_8x8_mode_plane_av8: zip1 v1.8h, v0.8h, v2.8h zip2 v2.8h, v0.8h, v2.8h mov v0.16b, v1.16b - +#ifdef __APPLE__ + adrp x12, _ih264_gai1_intrapred_chroma_plane_coeffs2@GOTPAGE + ldr x12, [x12, _ih264_gai1_intrapred_chroma_plane_coeffs2@GOTPAGEOFF] +#else adrp x12, :got:ih264_gai1_intrapred_chroma_plane_coeffs2 ldr x12, [x12, #:got_lo12:ih264_gai1_intrapred_chroma_plane_coeffs2] - +#endif ld1 {v8.2s, v9.2s}, [x12] mov v8.d[1], v9.d[0] mov v10.16b, v8.16b diff --git a/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_16x16_av8.s b/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_16x16_av8.s index fa19c121..4d45e5af 100644 --- a/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_16x16_av8.s +++ b/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_16x16_av8.s @@ -53,7 +53,11 @@ .text .p2align 2 .include "ih264_neon_macros.s" +#ifdef __APPLE__ +.extern _ih264_gai1_intrapred_luma_plane_coeffs +#else .extern ih264_gai1_intrapred_luma_plane_coeffs +#endif @@ -431,10 +435,13 @@ ih264_intra_pred_luma_16x16_mode_plane_av8: mov x10, x1 //top_left mov x4, #-1 ld1 {v2.2s}, [x1], x8 - +#ifdef __APPLE__ + adrp x7, _ih264_gai1_intrapred_luma_plane_coeffs@GOTPAGE + ldr x7, [x7, _ih264_gai1_intrapred_luma_plane_coeffs@GOTPAGEOFF] +#else adrp x7, :got:ih264_gai1_intrapred_luma_plane_coeffs ldr x7, [x7, #:got_lo12:ih264_gai1_intrapred_luma_plane_coeffs] - +#endif ld1 {v0.2s}, [x1] rev64 v2.8b, v2.8b ld1 {v6.2s, v7.2s}, [x7] diff --git a/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_8x8_av8.s b/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_8x8_av8.s index 273aa81b..efc30c03 100644 --- a/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_8x8_av8.s +++ b/dependencies/ih264d/common/armv8/ih264_intra_pred_luma_8x8_av8.s @@ -56,8 +56,11 @@ .text .p2align 2 .include "ih264_neon_macros.s" - +#ifdef __APPLE__ +.extern _ih264_gai1_intrapred_luma_8x8_horz_u +#else .extern ih264_gai1_intrapred_luma_8x8_horz_u +#endif @@ -1029,9 +1032,13 @@ ih264_intra_pred_luma_8x8_mode_horz_u_av8: mov v3.d[0], v2.d[1] ext v4.16b, v2.16b , v2.16b , #1 mov v5.d[0], v4.d[1] - +#ifdef __APPLE__ + adrp x12, _ih264_gai1_intrapred_luma_8x8_horz_u@GOTPAGE + ldr x12, [x12, _ih264_gai1_intrapred_luma_8x8_horz_u@GOTPAGEOFF] +#else adrp x12, :got:ih264_gai1_intrapred_luma_8x8_horz_u ldr x12, [x12, #:got_lo12:ih264_gai1_intrapred_luma_8x8_horz_u] +#endif uaddl v20.8h, v0.8b, v2.8b uaddl v22.8h, v1.8b, v3.8b uaddl v24.8h, v2.8b, v4.8b diff --git a/dependencies/ih264d/common/ih264_deblk_edge_filters.h b/dependencies/ih264d/common/ih264_deblk_edge_filters.h index 4079dd2c..9b375207 100644 --- a/dependencies/ih264d/common/ih264_deblk_edge_filters.h +++ b/dependencies/ih264d/common/ih264_deblk_edge_filters.h @@ -40,6 +40,11 @@ /*****************************************************************************/ /* Extern Function Declarations */ /*****************************************************************************/ +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif typedef void ih264_deblk_edge_bslt4_ft(UWORD8 *pu1_src, WORD32 src_strd, @@ -133,34 +138,34 @@ ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_a9; ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_a9; /*AV8*/ -ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_av8; -ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_av8; -ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_av8; +ih264_deblk_edge_bs4_ft av8(ih264_deblk_luma_horz_bs4_av8); +ih264_deblk_edge_bs4_ft av8(ih264_deblk_luma_vert_bs4_av8); +ih264_deblk_edge_bs4_ft av8(ih264_deblk_luma_vert_bs4_mbaff_av8); -ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_av8; -ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_av8; -ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_av8; +ih264_deblk_edge_bs4_ft av8(ih264_deblk_chroma_horz_bs4_bp_av8); +ih264_deblk_edge_bs4_ft av8(ih264_deblk_chroma_vert_bs4_bp_av8); +ih264_deblk_edge_bs4_ft av8(ih264_deblk_chroma_vert_bs4_mbaff_bp_av8); -ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_av8; -ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_av8; -ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_av8; +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_luma_horz_bslt4_av8); +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_luma_vert_bslt4_av8); +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_luma_vert_bslt4_mbaff_av8); -ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_av8; -ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_av8; -ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_av8; +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_chroma_horz_bslt4_bp_av8); +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_chroma_vert_bslt4_bp_av8); +ih264_deblk_edge_bslt4_ft av8(ih264_deblk_chroma_vert_bslt4_mbaff_bp_av8); -ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_av8; -ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_av8; -ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_av8; -ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_av8; +ih264_deblk_chroma_edge_bs4_ft av8(ih264_deblk_chroma_vert_bs4_av8); +ih264_deblk_chroma_edge_bs4_ft av8(ih264_deblk_chroma_horz_bs4_av8); +ih264_deblk_chroma_edge_bs4_ft av8(ih264_deblk_chroma_vert_bs4_mbaff_av8); +ih264_deblk_chroma_edge_bs4_ft av8(ih264_deblk_chroma_horz_bs4_mbaff_av8); -ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_av8; -ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_av8; -ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_av8; -ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_av8; +ih264_deblk_chroma_edge_bslt4_ft av8(ih264_deblk_chroma_vert_bslt4_av8); +ih264_deblk_chroma_edge_bslt4_ft av8(ih264_deblk_chroma_horz_bslt4_av8); +ih264_deblk_chroma_edge_bslt4_ft av8(ih264_deblk_chroma_vert_bslt4_mbaff_av8); +ih264_deblk_chroma_edge_bslt4_ft av8(ih264_deblk_chroma_horz_bslt4_mbaff_av8); /*SSE3*/ ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_ssse3; diff --git a/dependencies/ih264d/common/ih264_inter_pred_filters.h b/dependencies/ih264d/common/ih264_inter_pred_filters.h index c439ab84..3cc9b722 100644 --- a/dependencies/ih264d/common/ih264_inter_pred_filters.h +++ b/dependencies/ih264d/common/ih264_inter_pred_filters.h @@ -100,6 +100,12 @@ extern const WORD32 ih264_g_six_tap[3];/* coefficients for 6 tap filtering*/ /* Extern Function Declarations */ /*****************************************************************************/ +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif + typedef void ih264_inter_pred_luma_ft(UWORD8 *pu1_src, UWORD8 *pu1_dst, WORD32 src_strd, @@ -186,31 +192,31 @@ ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_qpel_a9q; ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_a9q; /* AV8 NEON Declarations */ -ih264_inter_pred_luma_ft ih264_inter_pred_luma_copy_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_copy_av8); -ih264_interleave_copy_ft ih264_interleave_copy_av8; +ih264_interleave_copy_ft av8(ih264_interleave_copy_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_vert_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_hpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_hpel_vert_hpel_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_qpel_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_qpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_vert_qpel_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_qpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_qpel_vert_qpel_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_hpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_qpel_vert_hpel_av8); -ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_qpel_av8; +ih264_inter_pred_luma_ft av8(ih264_inter_pred_luma_horz_hpel_vert_qpel_av8); -ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_av8; +ih264_inter_pred_chroma_ft av8(ih264_inter_pred_chroma_av8); -ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_dx_zero_av8; +ih264_inter_pred_chroma_ft av8(ih264_inter_pred_chroma_dx_zero_av8); -ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_dy_zero_av8; +ih264_inter_pred_chroma_ft av8(ih264_inter_pred_chroma_dy_zero_av8); /* SSSE3 Intrinsic Declarations */ diff --git a/dependencies/ih264d/common/ih264_intra_pred_filters.h b/dependencies/ih264d/common/ih264_intra_pred_filters.h index caf6b335..99857201 100644 --- a/dependencies/ih264d/common/ih264_intra_pred_filters.h +++ b/dependencies/ih264d/common/ih264_intra_pred_filters.h @@ -46,6 +46,12 @@ #define FILT121(a,b,c) ((a + (b<<1) + c + 2)>>2) /*! Filter (1,1) i.e (a + b) / 2 */ #define FILT11(a,b) ((a + b + 1)>>1) + +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif /*****************************************************************************/ /* Global Variables */ /*****************************************************************************/ @@ -60,7 +66,6 @@ extern const WORD8 ih264_gai1_intrapred_luma_8x8_horz_u[]; /* Extern Function Declarations */ /*****************************************************************************/ - typedef void ih264_intra_pred_ref_filtering_ft(UWORD8 *pu1_left, UWORD8 *pu1_topleft, UWORD8 *pu1_top, @@ -270,62 +275,62 @@ ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_plane_ssse3; /* AV8 Definition */ /* Luma 4x4 Intra pred filters */ -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_vert_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_horz_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_dc_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_dc_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dl_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_diag_dl_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dr_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_diag_dr_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_r_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_vert_r_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_d_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_horz_d_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_l_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_vert_l_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_u_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_4x4_mode_horz_u_av8); /* Luma 8x8 Intra pred filters */ -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_vert_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_horz_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_dc_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_dc_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dl_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_diag_dl_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dr_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_diag_dr_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_r_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_vert_r_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_d_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_horz_d_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_l_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_vert_l_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_u_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_8x8_mode_horz_u_av8); /* Luma 16x16 Intra pred filters */ -ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_vert_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_16x16_mode_vert_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_horz_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_16x16_mode_horz_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_dc_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_16x16_mode_dc_av8); -ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_plane_av8; +ih264_intra_pred_luma_ft av8(ih264_intra_pred_luma_16x16_mode_plane_av8); /* Chroma 8x8 Intra pred filters */ -ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_dc_av8; +ih264_intra_pred_chroma_ft av8(ih264_intra_pred_chroma_8x8_mode_dc_av8); -ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_horz_av8; +ih264_intra_pred_chroma_ft av8(ih264_intra_pred_chroma_8x8_mode_horz_av8); -ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_vert_av8; +ih264_intra_pred_chroma_ft av8(ih264_intra_pred_chroma_8x8_mode_vert_av8); -ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_plane_av8; +ih264_intra_pred_chroma_ft av8(ih264_intra_pred_chroma_8x8_mode_plane_av8); #endif /* IH264_INTRA_PRED_FILTERS_H_ */ diff --git a/dependencies/ih264d/common/ih264_padding.h b/dependencies/ih264d/common/ih264_padding.h index e4e18fbe..82457548 100644 --- a/dependencies/ih264d/common/ih264_padding.h +++ b/dependencies/ih264d/common/ih264_padding.h @@ -40,6 +40,11 @@ /*****************************************************************************/ /* Function Declarations */ /*****************************************************************************/ +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif typedef void ih264_pad(UWORD8 *, WORD32, WORD32, WORD32); @@ -59,11 +64,11 @@ ih264_pad ih264_pad_right_luma_a9q; ih264_pad ih264_pad_right_chroma_a9q; /* AV8 function declarations */ -ih264_pad ih264_pad_top_av8; -ih264_pad ih264_pad_left_luma_av8; -ih264_pad ih264_pad_left_chroma_av8; -ih264_pad ih264_pad_right_luma_av8; -ih264_pad ih264_pad_right_chroma_av8; +ih264_pad av8(ih264_pad_top_av8); +ih264_pad av8(ih264_pad_left_luma_av8); +ih264_pad av8(ih264_pad_left_chroma_av8); +ih264_pad av8(ih264_pad_right_luma_av8); +ih264_pad av8(ih264_pad_right_chroma_av8); ih264_pad ih264_pad_left_luma_ssse3; diff --git a/dependencies/ih264d/common/ih264_trans_quant_itrans_iquant.h b/dependencies/ih264d/common/ih264_trans_quant_itrans_iquant.h index 83551aad..8e87cc5a 100644 --- a/dependencies/ih264d/common/ih264_trans_quant_itrans_iquant.h +++ b/dependencies/ih264d/common/ih264_trans_quant_itrans_iquant.h @@ -39,7 +39,11 @@ /*****************************************************************************/ /* Extern Function Declarations */ /*****************************************************************************/ - +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif typedef void ih264_resi_trans_dctrans_quant_ft(UWORD8*pu1_src, UWORD8 *pu1_pred, @@ -199,18 +203,18 @@ ih264_hadamard_quant_ft ih264_hadamard_quant_4x4_a9; ih264_hadamard_quant_ft ih264_hadamard_quant_2x2_uv_a9; /*Av8 Declarations*/ -ih264_resi_trans_quant_ft ih264_resi_trans_quant_4x4_av8; -ih264_resi_trans_quant_ft ih264_resi_trans_quant_chroma_4x4_av8; -ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_av8; -ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_av8; -ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_dc_av8; -ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_dc_av8; -ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_av8; -ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_dc_av8; -ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_4x4_av8; -ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_2x2_uv_av8; -ih264_hadamard_quant_ft ih264_hadamard_quant_4x4_av8; -ih264_hadamard_quant_ft ih264_hadamard_quant_2x2_uv_av8; +ih264_resi_trans_quant_ft av8(ih264_resi_trans_quant_4x4_av8); +ih264_resi_trans_quant_ft av8(ih264_resi_trans_quant_chroma_4x4_av8); +ih264_iquant_itrans_recon_ft av8(ih264_iquant_itrans_recon_4x4_av8); +ih264_iquant_itrans_recon_ft av8(ih264_iquant_itrans_recon_8x8_av8); +ih264_iquant_itrans_recon_ft av8(ih264_iquant_itrans_recon_4x4_dc_av8); +ih264_iquant_itrans_recon_ft av8(ih264_iquant_itrans_recon_8x8_dc_av8); +ih264_iquant_itrans_recon_chroma_ft av8(ih264_iquant_itrans_recon_chroma_4x4_av8); +ih264_iquant_itrans_recon_chroma_ft av8(ih264_iquant_itrans_recon_chroma_4x4_dc_av8); +ih264_ihadamard_scaling_ft av8(ih264_ihadamard_scaling_4x4_av8); +ih264_ihadamard_scaling_ft av8(ih264_ihadamard_scaling_2x2_uv_av8); +ih264_hadamard_quant_ft av8(ih264_hadamard_quant_4x4_av8); +ih264_hadamard_quant_ft av8(ih264_hadamard_quant_2x2_uv_av8); /*SSSE3 Declarations*/ ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_ssse3; diff --git a/dependencies/ih264d/common/ih264_weighted_pred.h b/dependencies/ih264d/common/ih264_weighted_pred.h index f9b93b0f..6696e02a 100644 --- a/dependencies/ih264d/common/ih264_weighted_pred.h +++ b/dependencies/ih264d/common/ih264_weighted_pred.h @@ -68,6 +68,12 @@ /*****************************************************************************/ /* Extern Function Declarations */ /*****************************************************************************/ +#ifdef __APPLE__ +#define av8(name) name __asm__(#name) +#else +#define av8(name) name +#endif + typedef void ih264_default_weighted_pred_ft(UWORD8 *puc_src1, UWORD8 *puc_src2, UWORD8 *puc_dst, @@ -132,17 +138,17 @@ ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_a9q; /* AV8 NEON Declarations */ -ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_av8; +ih264_default_weighted_pred_ft av8(ih264_default_weighted_pred_luma_av8); -ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_av8; +ih264_default_weighted_pred_ft av8(ih264_default_weighted_pred_chroma_av8); -ih264_weighted_pred_ft ih264_weighted_pred_luma_av8; +ih264_weighted_pred_ft av8(ih264_weighted_pred_luma_av8); -ih264_weighted_pred_ft ih264_weighted_pred_chroma_av8; +ih264_weighted_pred_ft av8(ih264_weighted_pred_chroma_av8); -ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_av8; +ih264_weighted_bi_pred_ft av8(ih264_weighted_bi_pred_luma_av8); -ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_av8; +ih264_weighted_bi_pred_ft av8(ih264_weighted_bi_pred_chroma_av8); /* SSE42 Intrinsic Declarations */