Correctly deal with preceding underscore on macOS

Co-authored-by: neebyA <neebyA@users.noreply.github.com>

Revert "Update ih264_intra_pred_filters.h"

This reverts commit 0ac296d79a.

Revert "Update ih264_deblk_edge_filters.h"

This reverts commit 0e48f86412.

Revert "fix CI on windows"

This reverts commit 2ccb5dd287.

Revert "fix compiling on x64"

This reverts commit 99378f137f.

Revert "update ih264d macros"

This reverts commit 0924e1180e.

Revert "ih264d: Modify to compile with AppleClang & for M1"

This reverts commit d2a9c317d6.
This commit is contained in:
Exverge 2025-05-26 00:12:45 -04:00
parent 0ac296d79a
commit 3a3710d2e2
No known key found for this signature in database
GPG key ID: 19AAFC0AC6A9B35A
12 changed files with 593 additions and 554 deletions

View file

@ -183,6 +183,9 @@ target_sources(ih264d PRIVATE
"decoder/arm/ih264d_function_selector.c"
)
target_compile_options(ih264d PRIVATE -DARMV8)
if(APPLE)
target_sources(ih264d PRIVATE "common/armv8/macos_arm_symbol_aliases.s")
endif()
else()
message(FATAL_ERROR "ih264d unknown architecture: ${IH264D_ARCHITECTURE}")
endif()

View file

@ -429,7 +429,7 @@ ih264_intra_pred_chroma_8x8_mode_plane_av8:
rev64 v7.4h, v2.4h
ld1 {v3.2s}, [x10]
sub x5, x3, #8
#if defined(__APPLE__) && defined(__aarch64__)
#ifdef __APPLE__
adrp x12, _ih264_gai1_intrapred_chroma_plane_coeffs1@GOTPAGE
ldr x12, [x12, _ih264_gai1_intrapred_chroma_plane_coeffs1@GOTPAGEOFF]
#else
@ -489,7 +489,7 @@ 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
#if defined(__APPLE__) && defined(__aarch64__)
#ifdef __APPLE__
adrp x12, _ih264_gai1_intrapred_chroma_plane_coeffs2@GOTPAGE
ldr x12, [x12, _ih264_gai1_intrapred_chroma_plane_coeffs2@GOTPAGEOFF]
#else

View file

@ -431,9 +431,9 @@ ih264_intra_pred_luma_16x16_mode_plane_av8:
mov x10, x1 //top_left
mov x4, #-1
ld1 {v2.2s}, [x1], x8
#if defined(__APPLE__) && defined(__aarch64__)
#ifdef __APPLE__
adrp x7, _ih264_gai1_intrapred_luma_plane_coeffs@GOTPAGE
ldr x7, [x7, #_ih264_gai1_intrapred_luma_plane_coeffs@GOTPAGEOFF]
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]

View file

@ -1029,8 +1029,7 @@ 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]
#if defined(__APPLE__) && defined(__aarch64__)
#ifdef __APPLE__
adrp x12, _ih264_gai1_intrapred_luma_8x8_horz_u@GOTPAGE
ldr x12, [x12, _ih264_gai1_intrapred_luma_8x8_horz_u@GOTPAGEOFF]
#else

View file

@ -0,0 +1,185 @@
// macOS clang compilers append preceding underscores to function names, this is to prevent
// mismatches with the assembly function names and the C functions as defined in the header.
.global _ih264_deblk_chroma_horz_bs4_av8
_ih264_deblk_chroma_horz_bs4_av8 = ih264_deblk_chroma_horz_bs4_av8
.global _ih264_deblk_chroma_horz_bslt4_av8
_ih264_deblk_chroma_horz_bslt4_av8 = ih264_deblk_chroma_horz_bslt4_av8
.global _ih264_deblk_chroma_vert_bs4_av8
_ih264_deblk_chroma_vert_bs4_av8 = ih264_deblk_chroma_vert_bs4_av8
.global _ih264_deblk_chroma_vert_bslt4_av8
_ih264_deblk_chroma_vert_bslt4_av8 = ih264_deblk_chroma_vert_bslt4_av8
.global _ih264_deblk_luma_horz_bs4_av8
_ih264_deblk_luma_horz_bs4_av8 = ih264_deblk_luma_horz_bs4_av8
.global _ih264_deblk_luma_horz_bslt4_av8
_ih264_deblk_luma_horz_bslt4_av8 = ih264_deblk_luma_horz_bslt4_av8
.global _ih264_deblk_luma_vert_bs4_av8
_ih264_deblk_luma_vert_bs4_av8 = ih264_deblk_luma_vert_bs4_av8
.global _ih264_deblk_luma_vert_bslt4_av8
_ih264_deblk_luma_vert_bslt4_av8 = ih264_deblk_luma_vert_bslt4_av8
.global _ih264_default_weighted_pred_chroma_av8
_ih264_default_weighted_pred_chroma_av8 = ih264_default_weighted_pred_chroma_av8
.global _ih264_default_weighted_pred_luma_av8
_ih264_default_weighted_pred_luma_av8 = ih264_default_weighted_pred_luma_av8
.global _ih264_ihadamard_scaling_4x4_av8
_ih264_ihadamard_scaling_4x4_av8 = ih264_ihadamard_scaling_4x4_av8
.global _ih264_inter_pred_chroma_av8
_ih264_inter_pred_chroma_av8 = ih264_inter_pred_chroma_av8
.global _ih264_inter_pred_luma_copy_av8
_ih264_inter_pred_luma_copy_av8 = ih264_inter_pred_luma_copy_av8
.global _ih264_inter_pred_luma_horz_av8
_ih264_inter_pred_luma_horz_av8 = ih264_inter_pred_luma_horz_av8
.global _ih264_inter_pred_luma_horz_hpel_vert_hpel_av8
_ih264_inter_pred_luma_horz_hpel_vert_hpel_av8 = ih264_inter_pred_luma_horz_hpel_vert_hpel_av8
.global _ih264_inter_pred_luma_horz_hpel_vert_qpel_av8
_ih264_inter_pred_luma_horz_hpel_vert_qpel_av8 = ih264_inter_pred_luma_horz_hpel_vert_qpel_av8
.global _ih264_inter_pred_luma_horz_qpel_av8
_ih264_inter_pred_luma_horz_qpel_av8 = ih264_inter_pred_luma_horz_qpel_av8
.global _ih264_inter_pred_luma_horz_qpel_vert_hpel_av8
_ih264_inter_pred_luma_horz_qpel_vert_hpel_av8 = ih264_inter_pred_luma_horz_qpel_vert_hpel_av8
.global _ih264_inter_pred_luma_horz_qpel_vert_qpel_av8
_ih264_inter_pred_luma_horz_qpel_vert_qpel_av8 = ih264_inter_pred_luma_horz_qpel_vert_qpel_av8
.global _ih264_inter_pred_luma_vert_av8
_ih264_inter_pred_luma_vert_av8 = ih264_inter_pred_luma_vert_av8
.global _ih264_inter_pred_luma_vert_qpel_av8
_ih264_inter_pred_luma_vert_qpel_av8 = ih264_inter_pred_luma_vert_qpel_av8
.global _ih264_intra_pred_chroma_8x8_mode_horz_av8
_ih264_intra_pred_chroma_8x8_mode_horz_av8 = ih264_intra_pred_chroma_8x8_mode_horz_av8
.global _ih264_intra_pred_chroma_8x8_mode_plane_av8
_ih264_intra_pred_chroma_8x8_mode_plane_av8 = ih264_intra_pred_chroma_8x8_mode_plane_av8
.global _ih264_intra_pred_chroma_8x8_mode_vert_av8
_ih264_intra_pred_chroma_8x8_mode_vert_av8 = ih264_intra_pred_chroma_8x8_mode_vert_av8
.global _ih264_intra_pred_luma_16x16_mode_dc_av8
_ih264_intra_pred_luma_16x16_mode_dc_av8 = ih264_intra_pred_luma_16x16_mode_dc_av8
.global _ih264_intra_pred_luma_16x16_mode_horz_av8
_ih264_intra_pred_luma_16x16_mode_horz_av8 = ih264_intra_pred_luma_16x16_mode_horz_av8
.global _ih264_intra_pred_luma_16x16_mode_plane_av8
_ih264_intra_pred_luma_16x16_mode_plane_av8 = ih264_intra_pred_luma_16x16_mode_plane_av8
.global _ih264_intra_pred_luma_16x16_mode_vert_av8
_ih264_intra_pred_luma_16x16_mode_vert_av8 = ih264_intra_pred_luma_16x16_mode_vert_av8
.global _ih264_intra_pred_luma_4x4_mode_dc_av8
_ih264_intra_pred_luma_4x4_mode_dc_av8 = ih264_intra_pred_luma_4x4_mode_dc_av8
.global _ih264_intra_pred_luma_4x4_mode_diag_dl_av8
_ih264_intra_pred_luma_4x4_mode_diag_dl_av8 = ih264_intra_pred_luma_4x4_mode_diag_dl_av8
.global _ih264_intra_pred_luma_4x4_mode_diag_dr_av8
_ih264_intra_pred_luma_4x4_mode_diag_dr_av8 = ih264_intra_pred_luma_4x4_mode_diag_dr_av8
.global _ih264_intra_pred_luma_4x4_mode_horz_av8
_ih264_intra_pred_luma_4x4_mode_horz_av8 = ih264_intra_pred_luma_4x4_mode_horz_av8
.global _ih264_intra_pred_luma_4x4_mode_horz_d_av8
_ih264_intra_pred_luma_4x4_mode_horz_d_av8 = ih264_intra_pred_luma_4x4_mode_horz_d_av8
.global _ih264_intra_pred_luma_4x4_mode_horz_u_av8
_ih264_intra_pred_luma_4x4_mode_horz_u_av8 = ih264_intra_pred_luma_4x4_mode_horz_u_av8
.global _ih264_intra_pred_luma_4x4_mode_vert_av8
_ih264_intra_pred_luma_4x4_mode_vert_av8 = ih264_intra_pred_luma_4x4_mode_vert_av8
.global _ih264_intra_pred_luma_4x4_mode_vert_l_av8
_ih264_intra_pred_luma_4x4_mode_vert_l_av8 = ih264_intra_pred_luma_4x4_mode_vert_l_av8
.global _ih264_intra_pred_luma_4x4_mode_vert_r_av8
_ih264_intra_pred_luma_4x4_mode_vert_r_av8 = ih264_intra_pred_luma_4x4_mode_vert_r_av8
.global _ih264_intra_pred_luma_8x8_mode_dc_av8
_ih264_intra_pred_luma_8x8_mode_dc_av8 = ih264_intra_pred_luma_8x8_mode_dc_av8
.global _ih264_intra_pred_luma_8x8_mode_diag_dl_av8
_ih264_intra_pred_luma_8x8_mode_diag_dl_av8 = ih264_intra_pred_luma_8x8_mode_diag_dl_av8
.global _ih264_intra_pred_luma_8x8_mode_diag_dr_av8
_ih264_intra_pred_luma_8x8_mode_diag_dr_av8 = ih264_intra_pred_luma_8x8_mode_diag_dr_av8
.global _ih264_intra_pred_luma_8x8_mode_horz_av8
_ih264_intra_pred_luma_8x8_mode_horz_av8 = ih264_intra_pred_luma_8x8_mode_horz_av8
.global _ih264_intra_pred_luma_8x8_mode_horz_d_av8
_ih264_intra_pred_luma_8x8_mode_horz_d_av8 = ih264_intra_pred_luma_8x8_mode_horz_d_av8
.global _ih264_intra_pred_luma_8x8_mode_horz_u_av8
_ih264_intra_pred_luma_8x8_mode_horz_u_av8 = ih264_intra_pred_luma_8x8_mode_horz_u_av8
.global _ih264_intra_pred_luma_8x8_mode_vert_av8
_ih264_intra_pred_luma_8x8_mode_vert_av8 = ih264_intra_pred_luma_8x8_mode_vert_av8
.global _ih264_intra_pred_luma_8x8_mode_vert_l_av8
_ih264_intra_pred_luma_8x8_mode_vert_l_av8 = ih264_intra_pred_luma_8x8_mode_vert_l_av8
.global _ih264_intra_pred_luma_8x8_mode_vert_r_av8
_ih264_intra_pred_luma_8x8_mode_vert_r_av8 = ih264_intra_pred_luma_8x8_mode_vert_r_av8
.global _ih264_iquant_itrans_recon_4x4_av8
_ih264_iquant_itrans_recon_4x4_av8 = ih264_iquant_itrans_recon_4x4_av8
.global _ih264_iquant_itrans_recon_4x4_dc_av8
_ih264_iquant_itrans_recon_4x4_dc_av8 = ih264_iquant_itrans_recon_4x4_dc_av8
.global _ih264_iquant_itrans_recon_8x8_av8
_ih264_iquant_itrans_recon_8x8_av8 = ih264_iquant_itrans_recon_8x8_av8
.global _ih264_iquant_itrans_recon_8x8_dc_av8
_ih264_iquant_itrans_recon_8x8_dc_av8 = ih264_iquant_itrans_recon_8x8_dc_av8
.global _ih264_iquant_itrans_recon_chroma_4x4_av8
_ih264_iquant_itrans_recon_chroma_4x4_av8 = ih264_iquant_itrans_recon_chroma_4x4_av8
.global _ih264_iquant_itrans_recon_chroma_4x4_dc_av8
_ih264_iquant_itrans_recon_chroma_4x4_dc_av8 = ih264_iquant_itrans_recon_chroma_4x4_dc_av8
.global _ih264_pad_left_chroma_av8
_ih264_pad_left_chroma_av8 = ih264_pad_left_chroma_av8
.global _ih264_pad_left_luma_av8
_ih264_pad_left_luma_av8 = ih264_pad_left_luma_av8
.global _ih264_pad_right_chroma_av8
_ih264_pad_right_chroma_av8 = ih264_pad_right_chroma_av8
.global _ih264_pad_right_luma_av8
_ih264_pad_right_luma_av8 = ih264_pad_right_luma_av8
.global _ih264_pad_top_av8
_ih264_pad_top_av8 = ih264_pad_top_av8
.global _ih264_weighted_bi_pred_chroma_av8
_ih264_weighted_bi_pred_chroma_av8 = ih264_weighted_bi_pred_chroma_av8
.global _ih264_weighted_bi_pred_luma_av8
_ih264_weighted_bi_pred_luma_av8 = ih264_weighted_bi_pred_luma_av8
.global _ih264_weighted_pred_chroma_av8
_ih264_weighted_pred_chroma_av8 = ih264_weighted_pred_chroma_av8
.global _ih264_weighted_pred_luma_av8
_ih264_weighted_pred_luma_av8 = ih264_weighted_pred_luma_av8

View file

@ -41,31 +41,19 @@
/* Extern Function Declarations */
/*****************************************************************************/
typedef void _ih264_deblk_edge_bslt4_ft(UWORD8 *pu1_src,
typedef void ih264_deblk_edge_bslt4_ft(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
WORD32 beta,
UWORD32 u4_bs,
const UWORD8 *pu1_cliptab );
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_deblk_edge_bslt4_ft(arg) _ih264_deblk_edge_bslt4_ft arg __asm__(#arg);
#else
#define ih264_deblk_edge_bslt4_ft(arg) _ih264_deblk_edge_bslt4_ft arg;
#endif
typedef void _ih264_deblk_edge_bs4_ft(UWORD8 *pu1_src,
typedef void ih264_deblk_edge_bs4_ft(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha,
WORD32 beta );
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_deblk_edge_bs4_ft(arg) _ih264_deblk_edge_bs4_ft arg __asm__(#arg);
#else
#define ih264_deblk_edge_bs4_ft(arg) _ih264_deblk_edge_bs4_ft arg;
#endif
typedef void _ih264_deblk_chroma_edge_bslt4_ft(UWORD8 *pu1_src,
typedef void ih264_deblk_chroma_edge_bslt4_ft(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
WORD32 beta_cb,
@ -75,143 +63,133 @@ typedef void _ih264_deblk_chroma_edge_bslt4_ft(UWORD8 *pu1_src,
const UWORD8 *pu1_cliptab_cb,
const UWORD8 *pu1_cliptab_cr);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_deblk_chroma_edge_bslt4_ft(arg) _ih264_deblk_chroma_edge_bslt4_ft arg __asm__(#arg);
#else
#define ih264_deblk_chroma_edge_bslt4_ft(arg) _ih264_deblk_chroma_edge_bslt4_ft arg;
#endif
typedef void _ih264_deblk_chroma_edge_bs4_ft(UWORD8 *pu1_src,
typedef void ih264_deblk_chroma_edge_bs4_ft(UWORD8 *pu1_src,
WORD32 src_strd,
WORD32 alpha_cb,
WORD32 beta_cb,
WORD32 alpha_cr,
WORD32 beta_cr);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_deblk_chroma_edge_bs4_ft(arg) _ih264_deblk_chroma_edge_bs4_ft arg __asm__(#arg);
#else
#define ih264_deblk_chroma_edge_bs4_ft(arg) _ih264_deblk_chroma_edge_bs4_ft arg;
#endif
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_horz_bs4);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4_mbaff);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_bp);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_bp);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff_bp);
ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff;
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_horz_bslt4);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4_mbaff);
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp;
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_bp);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_bp);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_mbaff_bp);
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff;
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_mbaff);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_mbaff);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_mbaff);
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff;
/*A9*/
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_horz_bs4_a9);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4_a9);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4_mbaff_a9);
ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_a9;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_a9;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_a9;
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_bp_a9);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_bp_a9);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff_bp_a9);
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_a9;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_a9;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_a9;
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_horz_bslt4_a9);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4_a9);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4_mbaff_a9);
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_a9;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_a9;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_a9;
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_bp_a9);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_bp_a9);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_mbaff_bp_a9);
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_a9;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_a9;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_a9;
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_a9);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_a9);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff_a9);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_mbaff_a9);
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_a9;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_a9;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_a9;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_a9;
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_a9);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_a9);
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);
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_a9;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_a9;
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 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(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 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_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 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(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 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_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 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_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 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;
/*SSE3*/
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_horz_bs4_ssse3);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4_ssse3);
ih264_deblk_edge_bs4_ft(ih264_deblk_luma_vert_bs4_mbaff_ssse3);
ih264_deblk_edge_bs4_ft ih264_deblk_luma_horz_bs4_ssse3;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_ssse3;
ih264_deblk_edge_bs4_ft ih264_deblk_luma_vert_bs4_mbaff_ssse3;
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_bp_ssse3);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_bp_ssse3);
ih264_deblk_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff_bp_ssse3);
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_horz_bs4_bp_ssse3;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_bp_ssse3;
ih264_deblk_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_bp_ssse3;
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_horz_bslt4_ssse3);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4_ssse3);
ih264_deblk_edge_bslt4_ft(ih264_deblk_luma_vert_bslt4_mbaff_ssse3);
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_horz_bslt4_ssse3;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_ssse3;
ih264_deblk_edge_bslt4_ft ih264_deblk_luma_vert_bslt4_mbaff_ssse3;
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_bp_ssse3);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_bp_ssse3);
ih264_deblk_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_mbaff_bp_ssse3);
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_bp_ssse3;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_bp_ssse3;
ih264_deblk_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_bp_ssse3;
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_ssse3);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_ssse3);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_vert_bs4_mbaff_ssse3);
ih264_deblk_chroma_edge_bs4_ft(ih264_deblk_chroma_horz_bs4_mbaff_ssse3);
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_ssse3;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_ssse3;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_vert_bs4_mbaff_ssse3;
ih264_deblk_chroma_edge_bs4_ft ih264_deblk_chroma_horz_bs4_mbaff_ssse3;
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_ssse3);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_ssse3);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_vert_bslt4_mbaff_ssse3);
ih264_deblk_chroma_edge_bslt4_ft(ih264_deblk_chroma_horz_bslt4_mbaff_ssse3);
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_ssse3;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_ssse3;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_vert_bslt4_mbaff_ssse3;
ih264_deblk_chroma_edge_bslt4_ft ih264_deblk_chroma_horz_bslt4_mbaff_ssse3;
#endif /* IH264_DEBLK_H_ */

View file

@ -100,7 +100,7 @@ extern const WORD32 ih264_g_six_tap[3];/* coefficients for 6 tap filtering*/
/* Extern Function Declarations */
/*****************************************************************************/
typedef void _ih264_inter_pred_luma_ft(UWORD8 *pu1_src,
typedef void ih264_inter_pred_luma_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
WORD32 dst_strd,
@ -109,26 +109,14 @@ typedef void _ih264_inter_pred_luma_ft(UWORD8 *pu1_src,
UWORD8* pu1_tmp,
WORD32 dydx);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_inter_pred_luma_ft(arg) _ih264_inter_pred_luma_ft arg __asm__(#arg);
#else
#define ih264_inter_pred_luma_ft(arg) _ih264_inter_pred_luma_ft arg;
#endif
typedef void _ih264_interleave_copy_ft(UWORD8 *pu1_src,
typedef void ih264_interleave_copy_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
WORD32 dst_strd,
WORD32 ht,
WORD32 wd);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_interleave_copy_ft(arg) _ih264_interleave_copy_ft arg __asm__(#arg);
#else
#define ih264_interleave_copy_ft(arg) _ih264_interleave_copy_ft arg;
#endif
typedef void _ih264_inter_pred_luma_bilinear_ft(UWORD8 *pu1_src1,
typedef void ih264_inter_pred_luma_bilinear_ft(UWORD8 *pu1_src1,
UWORD8 *pu1_src2,
UWORD8 *pu1_dst,
WORD32 src_strd1,
@ -137,13 +125,7 @@ typedef void _ih264_inter_pred_luma_bilinear_ft(UWORD8 *pu1_src1,
WORD32 height,
WORD32 width);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_inter_pred_luma_bilinear_ft(arg) _ih264_inter_pred_luma_bilinear_ft arg __asm__(#arg);
#else
#define ih264_inter_pred_luma_bilinear_ft(arg) _ih264_inter_pred_luma_bilinear_ft arg;
#endif
typedef void _ih264_inter_pred_chroma_ft(UWORD8 *pu1_src,
typedef void ih264_inter_pred_chroma_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
WORD32 dst_strd,
@ -152,113 +134,107 @@ typedef void _ih264_inter_pred_chroma_ft(UWORD8 *pu1_src,
WORD32 ht,
WORD32 wd);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_inter_pred_chroma_ft(arg) _ih264_inter_pred_chroma_ft arg __asm__(#arg);
#else
#define ih264_inter_pred_chroma_ft(arg) _ih264_inter_pred_chroma_ft arg;
#endif
/* No NEON Declarations */
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_copy);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_copy;
ih264_interleave_copy_ft(ih264_interleave_copy);
ih264_interleave_copy_ft ih264_interleave_copy;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_hpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_hpel;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_qpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_qpel;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_qpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_qpel;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_hpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_hpel;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_qpel);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_qpel;
ih264_inter_pred_luma_bilinear_ft(ih264_inter_pred_luma_bilinear);
ih264_inter_pred_luma_bilinear_ft ih264_inter_pred_luma_bilinear;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma);
ih264_inter_pred_chroma_ft ih264_inter_pred_chroma;
/* A9 NEON Declarations */
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_copy_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_copy_a9q;
ih264_interleave_copy_ft(ih264_interleave_copy_a9);
ih264_interleave_copy_ft ih264_interleave_copy_a9;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_a9q;
ih264_inter_pred_luma_bilinear_ft(ih264_inter_pred_luma_bilinear_a9q);
ih264_inter_pred_luma_bilinear_ft ih264_inter_pred_luma_bilinear_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_hpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_hpel_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_qpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_qpel_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_qpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_qpel_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_hpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_hpel_a9q;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_qpel_a9q);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_qpel_a9q;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma_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 ih264_inter_pred_luma_copy_av8;
ih264_interleave_copy_ft(ih264_interleave_copy_av8);
ih264_interleave_copy_ft ih264_interleave_copy_av8;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_av8);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_av8;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_av8);
ih264_inter_pred_luma_ft 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 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 ih264_inter_pred_luma_horz_qpel_av8;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_qpel_av8);
ih264_inter_pred_luma_ft 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 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 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 ih264_inter_pred_luma_horz_hpel_vert_qpel_av8;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma_av8);
ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_av8;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma_dx_zero_av8);
ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_dx_zero_av8;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma_dy_zero_av8);
ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_dy_zero_av8;
/* SSSE3 Intrinsic Declarations */
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_copy_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_copy_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_ssse3;
ih264_inter_pred_luma_bilinear_ft(ih264_inter_pred_luma_bilinear_ssse3);
ih264_inter_pred_luma_bilinear_ft ih264_inter_pred_luma_bilinear_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_hpel_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_vert_qpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_vert_qpel_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_qpel_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_qpel_vert_hpel_ssse3;
ih264_inter_pred_luma_ft(ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3);
ih264_inter_pred_luma_ft ih264_inter_pred_luma_horz_hpel_vert_qpel_ssse3;
ih264_inter_pred_chroma_ft(ih264_inter_pred_chroma_ssse3);
ih264_inter_pred_chroma_ft ih264_inter_pred_chroma_ssse3;
#endif

View file

@ -61,284 +61,271 @@ extern const WORD8 ih264_gai1_intrapred_luma_8x8_horz_u[];
/*****************************************************************************/
typedef void _ih264_intra_pred_ref_filtering_ft(UWORD8 *pu1_left,
typedef void ih264_intra_pred_ref_filtering_ft(UWORD8 *pu1_left,
UWORD8 *pu1_topleft,
UWORD8 *pu1_top,
UWORD8 *pu1_dst,
WORD32 left_strd,
WORD32 ngbr_avail);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_intra_pred_ref_filtering_ft(arg) _ih264_intra_pred_ref_filtering_ft arg __asm__(#arg);
#else
#define ih264_intra_pred_ref_filtering_ft(arg) _ih264_intra_pred_ref_filtering_ft arg;
#endif
typedef void _ih264_intra_pred_luma_ft(UWORD8 *pu1_src,
typedef void ih264_intra_pred_luma_ft(UWORD8 *pu1_src,
UWORD8 *pu1_dst,
WORD32 src_strd,
WORD32 dst_strd,
WORD32 ngbr_avail);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_intra_pred_luma_ft(arg) _ih264_intra_pred_luma_ft arg __asm__(#arg);
#else
#define ih264_intra_pred_luma_ft(arg) _ih264_intra_pred_luma_ft arg;
#endif
/* No Neon Definitions */
/* Luma 4x4 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_dc);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_dc;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dl);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dl;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dr);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dr;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_r);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_r;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_d);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_d;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_l);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_l;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_u);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_u;
/* Luma 8x8 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_dc);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_dc;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dl);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dl;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dr);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dr;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_r);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_r;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_d);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_d;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_l);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_l;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_u);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_u;
/* Luma 16x16 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_vert);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_vert;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_horz);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_horz;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_dc);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_dc;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_plane);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_plane;
/* Chroma 8x8 Intra pred filters */
typedef _ih264_intra_pred_luma_ft _ih264_intra_pred_chroma_ft;
#define ih264_intra_pred_chroma_ft(arg) ih264_intra_pred_luma_ft(arg);
typedef ih264_intra_pred_luma_ft ih264_intra_pred_chroma_ft;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_dc);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_dc;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_horz);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_horz;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_vert);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_vert;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_plane);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_plane;
ih264_intra_pred_ref_filtering_ft(ih264_intra_pred_luma_8x8_mode_ref_filtering);
ih264_intra_pred_ref_filtering_ft ih264_intra_pred_luma_8x8_mode_ref_filtering;
/* A9 Definition */
/* Luma 4x4 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_dc_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_dc_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dl_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dl_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dr_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dr_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_r_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_r_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_d_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_d_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_l_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_l_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_u_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_u_a9q;
/* Luma 8x8 Intra pred filters */
ih264_intra_pred_ref_filtering_ft(ih264_intra_pred_luma_8x8_mode_ref_filtering_a9q);
ih264_intra_pred_ref_filtering_ft ih264_intra_pred_luma_8x8_mode_ref_filtering_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_dc_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_dc_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dl_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dl_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dr_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dr_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_r_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_r_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_d_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_d_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_l_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_l_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_u_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_u_a9q;
/* Luma 16x16 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_vert_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_vert_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_horz_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_horz_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_dc_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_dc_a9q;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_plane_a9q);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_plane_a9q;
/* Chroma 8x8 Intra pred filters */
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_dc_a9q);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_dc_a9q;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_horz_a9q);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_horz_a9q;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_vert_a9q);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_vert_a9q;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_plane_a9q);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_plane_a9q;
/* X86 Intrinsic Definitions */
/* Luma 4x4 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_dc_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_dc_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dl_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_diag_dr_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_r_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_r_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_d_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_d_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_vert_l_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_vert_l_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_4x4_mode_horz_u_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_4x4_mode_horz_u_ssse3;
/* Luma 8x8 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_dc_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_dc_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dl_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_diag_dr_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_r_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_r_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_d_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_d_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_vert_l_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_vert_l_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_8x8_mode_horz_u_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_8x8_mode_horz_u_ssse3;
/* Luma 16x16 Intra pred filters */
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_vert_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_vert_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_horz_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_horz_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_dc_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_dc_ssse3;
ih264_intra_pred_luma_ft(ih264_intra_pred_luma_16x16_mode_plane_ssse3);
ih264_intra_pred_luma_ft ih264_intra_pred_luma_16x16_mode_plane_ssse3;
/* Chroma 8x8 Intra pred filters */
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_dc_ssse3);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_dc_ssse3;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_horz_ssse3);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_horz_ssse3;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_vert_ssse3);
ih264_intra_pred_chroma_ft ih264_intra_pred_chroma_8x8_mode_vert_ssse3;
ih264_intra_pred_chroma_ft(ih264_intra_pred_chroma_8x8_mode_plane_ssse3);
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ih264_intra_pred_chroma_8x8_mode_plane_av8;
#endif /* IH264_INTRA_PRED_FILTERS_H_ */

View file

@ -2,7 +2,7 @@
*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"));
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
@ -41,39 +41,34 @@
/* Function Declarations */
/*****************************************************************************/
typedef void _ih264_pad(UWORD8 *, WORD32, WORD32, WORD32);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_pad(arg) _ih264_pad arg __asm__(#arg);
#else
#define ih264_pad(arg) _ih264_pad arg;
#endif
typedef void ih264_pad(UWORD8 *, WORD32, WORD32, WORD32);
/* C function declarations */
ih264_pad(ih264_pad_top);
ih264_pad(ih264_pad_bottom);
ih264_pad(ih264_pad_left_luma);
ih264_pad(ih264_pad_left_chroma);
ih264_pad(ih264_pad_right_luma);
ih264_pad(ih264_pad_right_chroma);
ih264_pad ih264_pad_top;
ih264_pad ih264_pad_bottom;
ih264_pad ih264_pad_left_luma;
ih264_pad ih264_pad_left_chroma;
ih264_pad ih264_pad_right_luma;
ih264_pad ih264_pad_right_chroma;
/* A9 Q function declarations */
ih264_pad(ih264_pad_top_a9q);
ih264_pad(ih264_pad_left_luma_a9q);
ih264_pad(ih264_pad_left_chroma_a9q);
ih264_pad(ih264_pad_right_luma_a9q);
ih264_pad(ih264_pad_right_chroma_a9q);
ih264_pad ih264_pad_top_a9q;
ih264_pad ih264_pad_left_luma_a9q;
ih264_pad ih264_pad_left_chroma_a9q;
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 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(ih264_pad_left_luma_ssse3);
ih264_pad(ih264_pad_left_chroma_ssse3);
ih264_pad(ih264_pad_right_luma_ssse3);
ih264_pad(ih264_pad_right_chroma_ssse3);
ih264_pad ih264_pad_left_luma_ssse3;
ih264_pad ih264_pad_left_chroma_ssse3;
ih264_pad ih264_pad_right_luma_ssse3;
ih264_pad ih264_pad_right_chroma_ssse3;
#endif /*_IH264_PADDING_H_*/

View file

@ -41,7 +41,7 @@
/*****************************************************************************/
typedef void _ih264_resi_trans_dctrans_quant_ft(UWORD8*pu1_src,
typedef void ih264_resi_trans_dctrans_quant_ft(UWORD8*pu1_src,
UWORD8 *pu1_pred,
WORD16 *pi2_out,
WORD32 src_strd,
@ -53,13 +53,7 @@ typedef void _ih264_resi_trans_dctrans_quant_ft(UWORD8*pu1_src,
UWORD32 u4_round_fact,
UWORD8 *pu1_nnz);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_resi_trans_dctrans_quant_ft(arg) _ih264_resi_trans_dctrans_quant_ft arg __asm__(#arg);
#else
#define ih264_resi_trans_dctrans_quant_ft(arg) _ih264_resi_trans_dctrans_quant_ft arg;
#endif
typedef void _ih264_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
typedef void ih264_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
WORD32 src_strd,
@ -71,15 +65,9 @@ typedef void _ih264_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD32 pi4_cntrl,
WORD32 *pi4_tmp);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_idctrans_iquant_itrans_recon_ft(arg) _ih264_pad arg __asm__(#arg);
#else
#define ih264_idctrans_iquant_itrans_recon_ft(arg) _ih264_pad arg;
#endif
/*Function prototype declarations*/
typedef void _ih264_resi_trans_quant_ft(UWORD8*pu1_src,
typedef void ih264_resi_trans_quant_ft(UWORD8*pu1_src,
UWORD8 *pu1_pred,
WORD16 *pi2_out,
WORD32 src_strd,
@ -91,13 +79,7 @@ typedef void _ih264_resi_trans_quant_ft(UWORD8*pu1_src,
UWORD8 *pu1_nnz,
WORD16 *pi2_alt_dc_addr);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_resi_trans_quant_ft(arg) _ih264_resi_trans_quant_ft arg __asm__(#arg);
#else
#define ih264_resi_trans_quant_ft(arg) _ih264_resi_trans_quant_ft arg;
#endif
typedef void _ih264_luma_16x16_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
typedef void ih264_luma_16x16_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
UWORD8 *pu1_pred,
WORD16 *pi2_out,
WORD32 src_strd,
@ -110,13 +92,7 @@ typedef void _ih264_luma_16x16_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
UWORD8 *pu1_nnz,
UWORD32 u4_dc_flag);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_luma_16x16_resi_trans_dctrans_quant_ft(arg) _ih264_luma_16x16_resi_trans_dctrans_quant_ft arg __asm__(#arg);
#else
#define ih264_luma_16x16_resi_trans_dctrans_quant_ft(arg) _ih264_luma_16x16_resi_trans_dctrans_quant_ft arg;
#endif
typedef void _ih264_chroma_8x8_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
typedef void ih264_chroma_8x8_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
UWORD8 *pu1_pred,
WORD16 *pi2_out,
WORD32 src_strd,
@ -128,13 +104,7 @@ typedef void _ih264_chroma_8x8_resi_trans_dctrans_quant_ft(UWORD8 *pu1_src,
UWORD32 u4_round_factor,
UWORD8 *pu1_nnz);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_chroma_8x8_resi_trans_dctrans_quant_ft(arg) _ih264_chroma_8x8_resi_trans_dctrans_quant_ft arg __asm__(#arg);
#else
#define ih264_chroma_8x8_resi_trans_dctrans_quant_ft(arg) _ih264_chroma_8x8_resi_trans_dctrans_quant_ft arg;
#endif
typedef void _ih264_iquant_itrans_recon_ft(WORD16 *pi2_src,
typedef void ih264_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
WORD32 pred_strd,
@ -146,14 +116,8 @@ typedef void _ih264_iquant_itrans_recon_ft(WORD16 *pi2_src,
WORD32 iq_start_idx,
WORD16 *pi2_dc_ld_addr);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_iquant_itrans_recon_ft(arg) _ih264_iquant_itrans_recon_ft arg __asm__(#arg);
#else
#define ih264_iquant_itrans_recon_ft(arg) _ih264_iquant_itrans_recon_ft arg;
#endif
typedef void _ih264_iquant_itrans_recon_chroma_ft(WORD16 *pi2_src,
typedef void ih264_iquant_itrans_recon_chroma_ft(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
WORD32 pred_strd,
@ -164,14 +128,8 @@ typedef void _ih264_iquant_itrans_recon_chroma_ft(WORD16 *pi2_src,
WORD16 *pi2_tmp,
WORD16 *pi2_dc_src);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_iquant_itrans_recon_chroma_ft(arg) _ih264_iquant_itrans_recon_chroma_ft arg __asm__(#arg);
#else
#define ih264_iquant_itrans_recon_chroma_ft(arg) _ih264_iquant_itrans_recon_chroma_ft arg;
#endif
typedef void _ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
typedef void ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
WORD32 src_strd,
@ -184,13 +142,7 @@ typedef void _ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD32 u4_dc_trans_flag,
WORD32 *pi4_tmp);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(arg) _ih264_luma_16x16_idctrans_iquant_itrans_recon_ft arg __asm__(#arg);
#else
#define ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(arg) _ih264_luma_16x16_idctrans_iquant_itrans_recon_ft arg;
#endif
typedef void _ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
typedef void ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD8 *pu1_pred,
UWORD8 *pu1_out,
WORD32 src_strd,
@ -202,97 +154,79 @@ typedef void _ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(WORD16 *pi2_src,
UWORD32 pi4_cntrl,
WORD32 *pi4_tmp);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(arg) _ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft arg __asm__(#arg);
#else
#define ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(arg) _ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft arg;
#endif
typedef void _ih264_ihadamard_scaling_ft(WORD16* pi2_src,
typedef void ih264_ihadamard_scaling_ft(WORD16* pi2_src,
WORD16* pi2_out,
const UWORD16 *pu2_iscal_mat,
const UWORD16 *pu2_weigh_mat,
UWORD32 u4_qp_div_6,
WORD32* pi4_tmp);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_ihadamard_scaling_ft(arg) _ih264_ihadamard_scaling_ft arg __asm__(#arg);
#else
#define ih264_ihadamard_scaling_ft(arg) _ih264_ihadamard_scaling_ft arg;
#endif
typedef void _ih264_hadamard_quant_ft(WORD16 *pi2_src, WORD16 *pi2_dst,
typedef void ih264_hadamard_quant_ft(WORD16 *pi2_src, WORD16 *pi2_dst,
const UWORD16 *pu2_scale_matrix,
const UWORD16 *pu2_threshold_matrix, UWORD32 u4_qbits,
UWORD32 u4_round_factor,UWORD8 *pu1_nnz);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_hadamard_quant_ft(arg) _ih264_hadamard_quant_ft arg __asm__(#arg);
#else
#define ih264_hadamard_quant_ft(arg) _ih264_hadamard_quant_ft arg;
#endif
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_4x4);
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_chroma_4x4);
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_8x8);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_dc);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8_dc);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4_dc);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_4x4);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_2x2_uv);
ih264_hadamard_quant_ft(ih264_hadamard_quant_4x4);
ih264_hadamard_quant_ft(ih264_hadamard_quant_2x2_uv);
ih264_resi_trans_quant_ft ih264_resi_trans_quant_4x4;
ih264_resi_trans_quant_ft ih264_resi_trans_quant_chroma_4x4;
ih264_resi_trans_quant_ft ih264_resi_trans_quant_8x8;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_dc;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_dc;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_dc;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_4x4;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_2x2_uv;
ih264_hadamard_quant_ft ih264_hadamard_quant_4x4;
ih264_hadamard_quant_ft ih264_hadamard_quant_2x2_uv;
/*A9 Declarations*/
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_4x4_a9);
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_chroma_4x4_a9);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_a9);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8_a9);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_dc_a9);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8_dc_a9);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4_a9);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4_dc_a9);
ih264_luma_16x16_resi_trans_dctrans_quant_ft(ih264_luma_16x16_resi_trans_dctrans_quant_a9);
ih264_chroma_8x8_resi_trans_dctrans_quant_ft(ih264_chroma_8x8_resi_trans_dctrans_quant_a9);
ih264_luma_16x16_idctrans_iquant_itrans_recon_ft(ih264_luma_16x16_idctrans_iquant_itrans_recon_a9);
ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft(ih264_chroma_8x8_idctrans_iquant_itrans_recon_a9);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_4x4_a9);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_2x2_uv_a9);
ih264_hadamard_quant_ft(ih264_hadamard_quant_4x4_a9);
ih264_hadamard_quant_ft(ih264_hadamard_quant_2x2_uv_a9);
ih264_resi_trans_quant_ft ih264_resi_trans_quant_4x4_a9;
ih264_resi_trans_quant_ft ih264_resi_trans_quant_chroma_4x4_a9;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_a9;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_a9;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_dc_a9;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_dc_a9;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_a9;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_dc_a9;
ih264_luma_16x16_resi_trans_dctrans_quant_ft ih264_luma_16x16_resi_trans_dctrans_quant_a9;
ih264_chroma_8x8_resi_trans_dctrans_quant_ft ih264_chroma_8x8_resi_trans_dctrans_quant_a9;
ih264_luma_16x16_idctrans_iquant_itrans_recon_ft ih264_luma_16x16_idctrans_iquant_itrans_recon_a9;
ih264_chroma_8x8_idctrans_iquant_itrans_recon_ft ih264_chroma_8x8_idctrans_iquant_itrans_recon_a9;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_4x4_a9;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_2x2_uv_a9;
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 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;
/*SSSE3 Declarations*/
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_ssse3);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8_ssse3);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_dc_ssse3);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_8x8_dc_ssse3);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_4x4_ssse3);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_2x2_uv_ssse3);
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_ssse3;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_ssse3;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_dc_ssse3;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_8x8_dc_ssse3;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_dc_ssse3;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_4x4_ssse3;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_2x2_uv_ssse3;
/*SSSE42 Declarations*/
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_4x4_sse42);
ih264_resi_trans_quant_ft(ih264_resi_trans_quant_chroma_4x4_sse42);
ih264_iquant_itrans_recon_ft(ih264_iquant_itrans_recon_4x4_sse42);
ih264_iquant_itrans_recon_chroma_ft(ih264_iquant_itrans_recon_chroma_4x4_sse42);
ih264_ihadamard_scaling_ft(ih264_ihadamard_scaling_4x4_sse42);
ih264_hadamard_quant_ft(ih264_hadamard_quant_4x4_sse42);
ih264_hadamard_quant_ft(ih264_hadamard_quant_2x2_uv_sse42);
ih264_resi_trans_quant_ft ih264_resi_trans_quant_4x4_sse42;
ih264_resi_trans_quant_ft ih264_resi_trans_quant_chroma_4x4_sse42;
ih264_iquant_itrans_recon_ft ih264_iquant_itrans_recon_4x4_sse42;
ih264_iquant_itrans_recon_chroma_ft ih264_iquant_itrans_recon_chroma_4x4_sse42;
ih264_ihadamard_scaling_ft ih264_ihadamard_scaling_4x4_sse42;
ih264_hadamard_quant_ft ih264_hadamard_quant_4x4_sse42;
ih264_hadamard_quant_ft ih264_hadamard_quant_2x2_uv_sse42;
#endif /* IH264_TRANS_QUANT_H_ */

View file

@ -68,7 +68,7 @@
/*****************************************************************************/
/* Extern Function Declarations */
/*****************************************************************************/
typedef void _ih264_default_weighted_pred_ft(UWORD8 *puc_src1,
typedef void ih264_default_weighted_pred_ft(UWORD8 *puc_src1,
UWORD8 *puc_src2,
UWORD8 *puc_dst,
WORD32 src_strd1,
@ -77,13 +77,7 @@ typedef void _ih264_default_weighted_pred_ft(UWORD8 *puc_src1,
WORD32 ht,
WORD32 wd);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_default_weighted_pred_ft(arg) _ih264_default_weighted_pred_ft arg __asm__(#arg);
#else
#define ih264_default_weighted_pred_ft(arg) _ih264_default_weighted_pred_ft arg;
#endif
typedef void _ih264_weighted_pred_ft(UWORD8 *puc_src,
typedef void ih264_weighted_pred_ft(UWORD8 *puc_src,
UWORD8 *puc_dst,
WORD32 src_strd,
WORD32 dst_strd,
@ -93,13 +87,7 @@ typedef void _ih264_weighted_pred_ft(UWORD8 *puc_src,
WORD32 ht,
WORD32 wd);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_weighted_pred_ft(arg) _ih264_weighted_pred_ft arg __asm__(#arg);
#else
#define ih264_weighted_pred_ft(arg) _ih264_weighted_pred_ft arg;
#endif
typedef void _ih264_weighted_bi_pred_ft(UWORD8 *puc_src1,
typedef void ih264_weighted_bi_pred_ft(UWORD8 *puc_src1,
UWORD8 *puc_src2,
UWORD8 *puc_dst,
WORD32 src_strd1,
@ -113,69 +101,63 @@ typedef void _ih264_weighted_bi_pred_ft(UWORD8 *puc_src1,
WORD32 ht,
WORD32 wd);
#if defined(__APPLE__) && defined(__aarch64__)
#define ih264_weighted_bi_pred_ft(arg) _ih264_weighted_bi_pred_ft arg __asm__(#arg);
#else
#define ih264_weighted_bi_pred_ft(arg) _ih264_weighted_bi_pred_ft arg;
#endif
/* No NEON Declarations */
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_luma);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma;
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_chroma);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma;
ih264_weighted_pred_ft(ih264_weighted_pred_luma);
ih264_weighted_pred_ft ih264_weighted_pred_luma;
ih264_weighted_pred_ft(ih264_weighted_pred_chroma);
ih264_weighted_pred_ft ih264_weighted_pred_chroma;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_luma);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_chroma);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma;
/* A9 NEON Declarations */
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_luma_a9q);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_a9q;
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_chroma_a9q);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_a9q;
ih264_weighted_pred_ft(ih264_weighted_pred_luma_a9q);
ih264_weighted_pred_ft ih264_weighted_pred_luma_a9q;
ih264_weighted_pred_ft(ih264_weighted_pred_chroma_a9q);
ih264_weighted_pred_ft ih264_weighted_pred_chroma_a9q;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_luma_a9q);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_a9q;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_chroma_a9q);
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 ih264_default_weighted_pred_luma_av8;
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_chroma_av8);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_av8;
ih264_weighted_pred_ft(ih264_weighted_pred_luma_av8);
ih264_weighted_pred_ft ih264_weighted_pred_luma_av8;
ih264_weighted_pred_ft(ih264_weighted_pred_chroma_av8);
ih264_weighted_pred_ft ih264_weighted_pred_chroma_av8;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_luma_av8);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_av8;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_chroma_av8);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_av8;
/* SSE42 Intrinsic Declarations */
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_luma_sse42);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_luma_sse42;
ih264_default_weighted_pred_ft(ih264_default_weighted_pred_chroma_sse42);
ih264_default_weighted_pred_ft ih264_default_weighted_pred_chroma_sse42;
ih264_weighted_pred_ft(ih264_weighted_pred_luma_sse42);
ih264_weighted_pred_ft ih264_weighted_pred_luma_sse42;
ih264_weighted_pred_ft(ih264_weighted_pred_chroma_sse42);
ih264_weighted_pred_ft ih264_weighted_pred_chroma_sse42;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_luma_sse42);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_luma_sse42;
ih264_weighted_bi_pred_ft(ih264_weighted_bi_pred_chroma_sse42);
ih264_weighted_bi_pred_ft ih264_weighted_bi_pred_chroma_sse42;
#endif /* IH264_WEIGHTED_PRED_H_ */

View file

@ -1365,112 +1365,112 @@ typedef struct _DecStruct
UWORD8 *pu1_mv_bank_buf_base;
UWORD8 *pu1_init_dpb_base;
_ih264_default_weighted_pred_ft *pf_default_weighted_pred_luma;
ih264_default_weighted_pred_ft *pf_default_weighted_pred_luma;
_ih264_default_weighted_pred_ft *pf_default_weighted_pred_chroma;
ih264_default_weighted_pred_ft *pf_default_weighted_pred_chroma;
_ih264_weighted_pred_ft *pf_weighted_pred_luma;
ih264_weighted_pred_ft *pf_weighted_pred_luma;
_ih264_weighted_pred_ft *pf_weighted_pred_chroma;
ih264_weighted_pred_ft *pf_weighted_pred_chroma;
_ih264_weighted_bi_pred_ft *pf_weighted_bi_pred_luma;
ih264_weighted_bi_pred_ft *pf_weighted_bi_pred_luma;
_ih264_weighted_bi_pred_ft *pf_weighted_bi_pred_chroma;
ih264_weighted_bi_pred_ft *pf_weighted_bi_pred_chroma;
_ih264_pad *pf_pad_top;
_ih264_pad *pf_pad_bottom;
_ih264_pad *pf_pad_left_luma;
_ih264_pad *pf_pad_left_chroma;
_ih264_pad *pf_pad_right_luma;
_ih264_pad *pf_pad_right_chroma;
ih264_pad *pf_pad_top;
ih264_pad *pf_pad_bottom;
ih264_pad *pf_pad_left_luma;
ih264_pad *pf_pad_left_chroma;
ih264_pad *pf_pad_right_luma;
ih264_pad *pf_pad_right_chroma;
_ih264_inter_pred_chroma_ft *pf_inter_pred_chroma;
ih264_inter_pred_chroma_ft *pf_inter_pred_chroma;
_ih264_inter_pred_luma_ft *apf_inter_pred_luma[16];
ih264_inter_pred_luma_ft *apf_inter_pred_luma[16];
_ih264_intra_pred_luma_ft *apf_intra_pred_luma_16x16[4];
ih264_intra_pred_luma_ft *apf_intra_pred_luma_16x16[4];
_ih264_intra_pred_luma_ft *apf_intra_pred_luma_8x8[9];
ih264_intra_pred_luma_ft *apf_intra_pred_luma_8x8[9];
_ih264_intra_pred_luma_ft *apf_intra_pred_luma_4x4[9];
ih264_intra_pred_luma_ft *apf_intra_pred_luma_4x4[9];
_ih264_intra_pred_ref_filtering_ft *pf_intra_pred_ref_filtering;
ih264_intra_pred_ref_filtering_ft *pf_intra_pred_ref_filtering;
_ih264_intra_pred_chroma_ft *apf_intra_pred_chroma[4];
ih264_intra_pred_chroma_ft *apf_intra_pred_chroma[4];
_ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_4x4;
ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_4x4;
_ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_4x4_dc;
ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_4x4_dc;
_ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_8x8;
ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_8x8;
_ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_8x8_dc;
ih264_iquant_itrans_recon_ft *pf_iquant_itrans_recon_luma_8x8_dc;
_ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4;
ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4;
_ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4_dc;
ih264_iquant_itrans_recon_chroma_ft *pf_iquant_itrans_recon_chroma_4x4_dc;
_ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_4x4;
ih264_ihadamard_scaling_ft *pf_ihadamard_scaling_4x4;
/**
* deblock vertical luma edge with blocking strength 4
*/
_ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4;
ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4;
/**
* deblock vertical luma edge with blocking strength less than 4
*/
_ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4;
ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4;
/**
* deblock vertical luma edge with blocking strength 4 for mbaff
*/
_ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4_mbaff;
ih264_deblk_edge_bs4_ft *pf_deblk_luma_vert_bs4_mbaff;
/**
* deblock vertical luma edge with blocking strength less than 4 for mbaff
*/
_ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4_mbaff;
ih264_deblk_edge_bslt4_ft *pf_deblk_luma_vert_bslt4_mbaff;
/**
* deblock vertical chroma edge with blocking strength 4
*/
_ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4;
ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4;
/**
* deblock vertical chroma edge with blocking strength less than 4
*/
_ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4;
ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4;
/**
* deblock vertical chroma edge with blocking strength 4 for mbaff
*/
_ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4_mbaff;
ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_vert_bs4_mbaff;
/**
* deblock vertical chroma edge with blocking strength less than 4 for mbaff
*/
_ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4_mbaff;
ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_vert_bslt4_mbaff;
/**
* deblock horizontal luma edge with blocking strength 4
*/
_ih264_deblk_edge_bs4_ft *pf_deblk_luma_horz_bs4;
ih264_deblk_edge_bs4_ft *pf_deblk_luma_horz_bs4;
/**
* deblock horizontal luma edge with blocking strength less than 4
*/
_ih264_deblk_edge_bslt4_ft *pf_deblk_luma_horz_bslt4;
ih264_deblk_edge_bslt4_ft *pf_deblk_luma_horz_bslt4;
/**
* deblock horizontal chroma edge with blocking strength 4
*/
_ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_horz_bs4;
ih264_deblk_chroma_edge_bs4_ft *pf_deblk_chroma_horz_bs4;
/**
* deblock horizontal chroma edge with blocking strength less than 4
*/
_ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_horz_bslt4;
ih264_deblk_chroma_edge_bslt4_ft *pf_deblk_chroma_horz_bslt4;
} dec_struct_t;