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 16extern "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 27extern prototype_postproc_inplace(vp9_mbpost_proc_down_mmx); 28extern prototype_postproc(vp9_post_proc_down_and_across_mmx); 29extern 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 46extern prototype_postproc_inplace(vp9_mbpost_proc_down_xmm); 47extern prototype_postproc_inplace(vp9_mbpost_proc_across_ip_xmm); 48extern prototype_postproc(vp9_post_proc_down_and_across_xmm); 49extern 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