/******************************************************************** * * * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * * * * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * * * ******************************************************************** function: last mod: $Id$ ********************************************************************/ /*MMX acceleration of complete fragment reconstruction algorithm. Originally written by Rudolf Marek.*/ #include <string.h> #include "x86int.h" #include "mmxloop.h" #if defined(OC_X86_ASM) void oc_state_frag_recon_mmx(const oc_theora_state *_state,ptrdiff_t _fragi, int _pli,ogg_int16_t _dct_coeffs[128],int _last_zzi,ogg_uint16_t _dc_quant){ … } /*We copy these entire function to inline the actual MMX routines so that we use only a single indirect call.*/ void oc_loop_filter_init_mmx(signed char _bv[256],int _flimit){ … } /*Apply the loop filter to a given set of fragment rows in the given plane. The filter may be run on the bottom edge, affecting pixels in the next row of fragments, so this row also needs to be available. _bv: The bounding values array. _refi: The index of the frame buffer to filter. _pli: The color plane to filter. _fragy0: The Y coordinate of the first fragment row to filter. _fragy_end: The Y coordinate of the fragment row to stop filtering at.*/ void oc_state_loop_filter_frag_rows_mmx(const oc_theora_state *_state, signed char _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end){ … } void oc_loop_filter_init_mmxext(signed char _bv[256],int _flimit){ … } /*Apply the loop filter to a given set of fragment rows in the given plane. The filter may be run on the bottom edge, affecting pixels in the next row of fragments, so this row also needs to be available. _bv: The bounding values array. _refi: The index of the frame buffer to filter. _pli: The color plane to filter. _fragy0: The Y coordinate of the first fragment row to filter. _fragy_end: The Y coordinate of the fragment row to stop filtering at.*/ void oc_state_loop_filter_frag_rows_mmxext(const oc_theora_state *_state, signed char _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end){ … } #endif