1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/media/libtheora/lib/arm/armint.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,126 @@ 1.4 +/******************************************************************** 1.5 + * * 1.6 + * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * 1.7 + * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 1.8 + * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 1.9 + * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 1.10 + * * 1.11 + * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2010 * 1.12 + * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * 1.13 + * * 1.14 + ******************************************************************** 1.15 + 1.16 + function: 1.17 + last mod: $Id: x86int.h 17344 2010-07-21 01:42:18Z tterribe $ 1.18 + 1.19 + ********************************************************************/ 1.20 +#if !defined(_arm_armint_H) 1.21 +# define _arm_armint_H (1) 1.22 +# include "../internal.h" 1.23 + 1.24 +# if defined(OC_ARM_ASM) 1.25 + 1.26 +# if defined(__ARMEB__) 1.27 +# error "Big-endian configurations are not supported by the ARM asm. " \ 1.28 + "Reconfigure with --disable-asm or undefine OC_ARM_ASM." 1.29 +# endif 1.30 + 1.31 +# define oc_state_accel_init oc_state_accel_init_arm 1.32 +/*This function is implemented entirely in asm, so it's helpful to pull out all 1.33 + of the things that depend on structure offsets. 1.34 + We reuse the function pointer with the wrong prototype, though.*/ 1.35 +# define oc_state_loop_filter_frag_rows(_state,_bv,_refi,_pli, \ 1.36 + _fragy0,_fragy_end) \ 1.37 + ((oc_loop_filter_frag_rows_arm_func) \ 1.38 + (_state)->opt_vtable.state_loop_filter_frag_rows)( \ 1.39 + (_state)->ref_frame_data[(_refi)],(_state)->ref_ystride[(_pli)], \ 1.40 + (_bv), \ 1.41 + (_state)->frags, \ 1.42 + (_state)->fplanes[(_pli)].froffset \ 1.43 + +(_fragy0)*(ptrdiff_t)(_state)->fplanes[(_pli)].nhfrags, \ 1.44 + (_state)->fplanes[(_pli)].froffset \ 1.45 + +(_fragy_end)*(ptrdiff_t)(_state)->fplanes[(_pli)].nhfrags, \ 1.46 + (_state)->fplanes[(_pli)].froffset, \ 1.47 + (_state)->fplanes[(_pli)].froffset+(_state)->fplanes[(_pli)].nfrags, \ 1.48 + (_state)->frag_buf_offs, \ 1.49 + (_state)->fplanes[(_pli)].nhfrags) 1.50 +/*For everything else the default vtable macros are fine.*/ 1.51 +# define OC_STATE_USE_VTABLE (1) 1.52 +# endif 1.53 + 1.54 +# include "../state.h" 1.55 +# include "armcpu.h" 1.56 + 1.57 +# if defined(OC_ARM_ASM) 1.58 +typedef void (*oc_loop_filter_frag_rows_arm_func)( 1.59 + unsigned char *_ref_frame_data,int _ystride,signed char _bv[256], 1.60 + const oc_fragment *_frags,ptrdiff_t _fragi0,ptrdiff_t _fragi0_end, 1.61 + ptrdiff_t _fragi_top,ptrdiff_t _fragi_bot, 1.62 + const ptrdiff_t *_frag_buf_offs,int _nhfrags); 1.63 + 1.64 +void oc_state_accel_init_arm(oc_theora_state *_state); 1.65 +void oc_frag_copy_list_arm(unsigned char *_dst_frame, 1.66 + const unsigned char *_src_frame,int _ystride, 1.67 + const ptrdiff_t *_fragis,ptrdiff_t _nfragis,const ptrdiff_t *_frag_buf_offs); 1.68 +void oc_frag_recon_intra_arm(unsigned char *_dst,int _ystride, 1.69 + const ogg_int16_t *_residue); 1.70 +void oc_frag_recon_inter_arm(unsigned char *_dst,const unsigned char *_src, 1.71 + int _ystride,const ogg_int16_t *_residue); 1.72 +void oc_frag_recon_inter2_arm(unsigned char *_dst,const unsigned char *_src1, 1.73 + const unsigned char *_src2,int _ystride,const ogg_int16_t *_residue); 1.74 +void oc_idct8x8_1_arm(ogg_int16_t _y[64],ogg_uint16_t _dc); 1.75 +void oc_idct8x8_arm(ogg_int16_t _y[64],ogg_int16_t _x[64],int _last_zzi); 1.76 +void oc_state_frag_recon_arm(const oc_theora_state *_state,ptrdiff_t _fragi, 1.77 + int _pli,ogg_int16_t _dct_coeffs[128],int _last_zzi,ogg_uint16_t _dc_quant); 1.78 +void oc_loop_filter_frag_rows_arm(unsigned char *_ref_frame_data, 1.79 + int _ystride,signed char *_bv,const oc_fragment *_frags,ptrdiff_t _fragi0, 1.80 + ptrdiff_t _fragi0_end,ptrdiff_t _fragi_top,ptrdiff_t _fragi_bot, 1.81 + const ptrdiff_t *_frag_buf_offs,int _nhfrags); 1.82 + 1.83 +# if defined(OC_ARM_ASM_EDSP) 1.84 +void oc_frag_copy_list_edsp(unsigned char *_dst_frame, 1.85 + const unsigned char *_src_frame,int _ystride, 1.86 + const ptrdiff_t *_fragis,ptrdiff_t _nfragis,const ptrdiff_t *_frag_buf_offs); 1.87 + 1.88 +# if defined(OC_ARM_ASM_MEDIA) 1.89 +void oc_frag_recon_intra_v6(unsigned char *_dst,int _ystride, 1.90 + const ogg_int16_t *_residue); 1.91 +void oc_frag_recon_inter_v6(unsigned char *_dst,const unsigned char *_src, 1.92 + int _ystride,const ogg_int16_t *_residue); 1.93 +void oc_frag_recon_inter2_v6(unsigned char *_dst,const unsigned char *_src1, 1.94 + const unsigned char *_src2,int _ystride,const ogg_int16_t *_residue); 1.95 +void oc_idct8x8_1_v6(ogg_int16_t _y[64],ogg_uint16_t _dc); 1.96 +void oc_idct8x8_v6(ogg_int16_t _y[64],ogg_int16_t _x[64],int _last_zzi); 1.97 +void oc_state_frag_recon_v6(const oc_theora_state *_state,ptrdiff_t _fragi, 1.98 + int _pli,ogg_int16_t _dct_coeffs[128],int _last_zzi,ogg_uint16_t _dc_quant); 1.99 +void oc_loop_filter_init_v6(signed char *_bv,int _flimit); 1.100 +void oc_loop_filter_frag_rows_v6(unsigned char *_ref_frame_data, 1.101 + int _ystride,signed char *_bv,const oc_fragment *_frags,ptrdiff_t _fragi0, 1.102 + ptrdiff_t _fragi0_end,ptrdiff_t _fragi_top,ptrdiff_t _fragi_bot, 1.103 + const ptrdiff_t *_frag_buf_offs,int _nhfrags); 1.104 + 1.105 +# if defined(OC_ARM_ASM_NEON) 1.106 +void oc_frag_copy_list_neon(unsigned char *_dst_frame, 1.107 + const unsigned char *_src_frame,int _ystride, 1.108 + const ptrdiff_t *_fragis,ptrdiff_t _nfragis,const ptrdiff_t *_frag_buf_offs); 1.109 +void oc_frag_recon_intra_neon(unsigned char *_dst,int _ystride, 1.110 + const ogg_int16_t *_residue); 1.111 +void oc_frag_recon_inter_neon(unsigned char *_dst,const unsigned char *_src, 1.112 + int _ystride,const ogg_int16_t *_residue); 1.113 +void oc_frag_recon_inter2_neon(unsigned char *_dst,const unsigned char *_src1, 1.114 + const unsigned char *_src2,int _ystride,const ogg_int16_t *_residue); 1.115 +void oc_idct8x8_1_neon(ogg_int16_t _y[64],ogg_uint16_t _dc); 1.116 +void oc_idct8x8_neon(ogg_int16_t _y[64],ogg_int16_t _x[64],int _last_zzi); 1.117 +void oc_state_frag_recon_neon(const oc_theora_state *_state,ptrdiff_t _fragi, 1.118 + int _pli,ogg_int16_t _dct_coeffs[128],int _last_zzi,ogg_uint16_t _dc_quant); 1.119 +void oc_loop_filter_init_neon(signed char *_bv,int _flimit); 1.120 +void oc_loop_filter_frag_rows_neon(unsigned char *_ref_frame_data, 1.121 + int _ystride,signed char *_bv,const oc_fragment *_frags,ptrdiff_t _fragi0, 1.122 + ptrdiff_t _fragi0_end,ptrdiff_t _fragi_top,ptrdiff_t _fragi_bot, 1.123 + const ptrdiff_t *_frag_buf_offs,int _nhfrags); 1.124 +# endif 1.125 +# endif 1.126 +# endif 1.127 +# endif 1.128 + 1.129 +#endif