1 /* 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 12 #ifndef VP9_COMMON_X86_VP9_POSTPROC_X86_H_ 13 #define VP9_COMMON_X86_VP9_POSTPROC_X86_H_ 14 15 #ifdef __cplusplus 16 extern "C" { 17 #endif 18 19 /* Note: 20 * 21 * This platform is commonly built for runtime CPU detection. If you modify 22 * any of the function mappings present in this file, be sure to also update 23 * them in the function pointer initialization code 24 */ 25 26 #if HAVE_MMX 27 extern prototype_postproc_inplace(vp9_mbpost_proc_down_mmx); 28 extern prototype_postproc(vp9_post_proc_down_and_across_mmx); 29 extern prototype_postproc_addnoise(vp9_plane_add_noise_mmx); 30 31 #if !CONFIG_RUNTIME_CPU_DETECT 32 #undef vp9_postproc_down 33 #define vp9_postproc_down vp9_mbpost_proc_down_mmx 34 35 #undef vp9_postproc_downacross 36 #define vp9_postproc_downacross vp9_post_proc_down_and_across_mmx 37 38 #undef vp9_postproc_addnoise 39 #define vp9_postproc_addnoise vp9_plane_add_noise_mmx 40 41 #endif 42 #endif 43 44 45 #if HAVE_SSE2 46 extern prototype_postproc_inplace(vp9_mbpost_proc_down_xmm); 47 extern prototype_postproc_inplace(vp9_mbpost_proc_across_ip_xmm); 48 extern prototype_postproc(vp9_post_proc_down_and_across_xmm); 49 extern prototype_postproc_addnoise(vp9_plane_add_noise_wmt); 50 51 #if !CONFIG_RUNTIME_CPU_DETECT 52 #undef vp9_postproc_down 53 #define vp9_postproc_down vp9_mbpost_proc_down_xmm 54 55 #undef vp9_postproc_across 56 #define vp9_postproc_across vp9_mbpost_proc_across_ip_xmm 57 58 #undef vp9_postproc_downacross 59 #define vp9_postproc_downacross vp9_post_proc_down_and_across_xmm 60 61 #undef vp9_postproc_addnoise 62 #define vp9_postproc_addnoise vp9_plane_add_noise_wmt 63 64 65 #endif 66 #endif 67 68 #ifdef __cplusplus 69 } // extern "C" 70 #endif 71 72 #endif // VP9_COMMON_X86_VP9_POSTPROC_X86_H_ 73