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