Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(351)

Side by Side Diff: source/libvpx/vp8/common/generic/systemdependent.c

Issue 7671004: Update libvpx snapshot to v0.9.7-p1 (Cayuga). (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp8/common/findnearmv.c ('k') | source/libvpx/vp8/common/loopfilter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 11
12 #include "vpx_ports/config.h" 12 #include "vpx_ports/config.h"
13 #include "vp8/common/g_common.h" 13 #include "vp8/common/g_common.h"
14 #include "vp8/common/subpixel.h" 14 #include "vp8/common/subpixel.h"
15 #include "vp8/common/loopfilter.h" 15 #include "vp8/common/loopfilter.h"
16 #include "vp8/common/recon.h" 16 #include "vp8/common/recon.h"
17 #include "vp8/common/idct.h" 17 #include "vp8/common/idct.h"
18 #include "vp8/common/onyxc_int.h" 18 #include "vp8/common/onyxc_int.h"
19 19
20 #if CONFIG_MULTITHREAD
21 #if HAVE_UNISTD_H
22 #include <unistd.h>
23 #elif defined(_WIN32)
24 #include <windows.h>
25 typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
26 #endif
27 #endif
28
20 extern void vp8_arch_x86_common_init(VP8_COMMON *ctx); 29 extern void vp8_arch_x86_common_init(VP8_COMMON *ctx);
21 extern void vp8_arch_arm_common_init(VP8_COMMON *ctx); 30 extern void vp8_arch_arm_common_init(VP8_COMMON *ctx);
22 31
32 #if CONFIG_MULTITHREAD
33 static int get_cpu_count()
34 {
35 int core_count = 16;
36
37 #if HAVE_UNISTD_H
38 #if defined(_SC_NPROCESSORS_ONLN)
39 core_count = sysconf(_SC_NPROCESSORS_ONLN);
40 #elif defined(_SC_NPROC_ONLN)
41 core_count = sysconf(_SC_NPROC_ONLN);
42 #endif
43 #elif defined(_WIN32)
44 {
45 PGNSI pGNSI;
46 SYSTEM_INFO sysinfo;
47
48 /* Call GetNativeSystemInfo if supported or
49 * GetSystemInfo otherwise. */
50
51 pGNSI = (PGNSI) GetProcAddress(
52 GetModuleHandle(TEXT("kernel32.dll")), "GetNativeSystemInfo");
53 if (pGNSI != NULL)
54 pGNSI(&sysinfo);
55 else
56 GetSystemInfo(&sysinfo);
57
58 core_count = sysinfo.dwNumberOfProcessors;
59 }
60 #else
61 /* other platforms */
62 #endif
63
64 return core_count > 0 ? core_count : 1;
65 }
66 #endif
67
23 void vp8_machine_specific_config(VP8_COMMON *ctx) 68 void vp8_machine_specific_config(VP8_COMMON *ctx)
24 { 69 {
25 #if CONFIG_RUNTIME_CPU_DETECT 70 #if CONFIG_RUNTIME_CPU_DETECT
26 VP8_COMMON_RTCD *rtcd = &ctx->rtcd; 71 VP8_COMMON_RTCD *rtcd = &ctx->rtcd;
27 72
28 rtcd->idct.idct1 = vp8_short_idct4x4llm_1_c; 73 rtcd->idct.idct1 = vp8_short_idct4x4llm_1_c;
29 rtcd->idct.idct16 = vp8_short_idct4x4llm_c; 74 rtcd->idct.idct16 = vp8_short_idct4x4llm_c;
30 rtcd->idct.idct1_scalar_add = vp8_dc_only_idct_add_c; 75 rtcd->idct.idct1_scalar_add = vp8_dc_only_idct_add_c;
31 rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_c; 76 rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_c;
32 rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_c; 77 rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_c;
33 78
34 rtcd->recon.copy16x16 = vp8_copy_mem16x16_c; 79 rtcd->recon.copy16x16 = vp8_copy_mem16x16_c;
35 rtcd->recon.copy8x8 = vp8_copy_mem8x8_c; 80 rtcd->recon.copy8x8 = vp8_copy_mem8x8_c;
36 rtcd->recon.copy8x4 = vp8_copy_mem8x4_c; 81 rtcd->recon.copy8x4 = vp8_copy_mem8x4_c;
37 rtcd->recon.recon = vp8_recon_b_c; 82 rtcd->recon.recon = vp8_recon_b_c;
38 rtcd->recon.recon2 = vp8_recon2b_c; 83 rtcd->recon.recon2 = vp8_recon2b_c;
39 rtcd->recon.recon4 = vp8_recon4b_c; 84 rtcd->recon.recon4 = vp8_recon4b_c;
40 rtcd->recon.recon_mb = vp8_recon_mb_c; 85 rtcd->recon.recon_mb = vp8_recon_mb_c;
41 rtcd->recon.recon_mby = vp8_recon_mby_c; 86 rtcd->recon.recon_mby = vp8_recon_mby_c;
42 rtcd->recon.build_intra_predictors_mby = 87 rtcd->recon.build_intra_predictors_mby =
43 vp8_build_intra_predictors_mby; 88 vp8_build_intra_predictors_mby;
44 rtcd->recon.build_intra_predictors_mby_s = 89 rtcd->recon.build_intra_predictors_mby_s =
45 vp8_build_intra_predictors_mby_s; 90 vp8_build_intra_predictors_mby_s;
91 rtcd->recon.build_intra_predictors_mbuv =
92 vp8_build_intra_predictors_mbuv;
93 rtcd->recon.build_intra_predictors_mbuv_s =
94 vp8_build_intra_predictors_mbuv_s;
95 rtcd->recon.intra4x4_predict =
96 vp8_intra4x4_predict;
46 97
47 rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_c; 98 rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_c;
48 rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_c; 99 rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_c;
49 rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_c; 100 rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_c;
50 rtcd->subpix.sixtap4x4 = vp8_sixtap_predict_c; 101 rtcd->subpix.sixtap4x4 = vp8_sixtap_predict_c;
51 rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_c; 102 rtcd->subpix.bilinear16x16 = vp8_bilinear_predict16x16_c;
52 rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_c; 103 rtcd->subpix.bilinear8x8 = vp8_bilinear_predict8x8_c;
53 rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_c; 104 rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_c;
54 rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_c; 105 rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_c;
55 106
56 rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_c; 107 rtcd->loopfilter.normal_mb_v = vp8_loop_filter_mbv_c;
57 rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_c; 108 rtcd->loopfilter.normal_b_v = vp8_loop_filter_bv_c;
58 rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_c; 109 rtcd->loopfilter.normal_mb_h = vp8_loop_filter_mbh_c;
59 rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_c; 110 rtcd->loopfilter.normal_b_h = vp8_loop_filter_bh_c;
60 rtcd->loopfilter.simple_mb_v = vp8_loop_filter_mbvs_c; 111 rtcd->loopfilter.simple_mb_v = vp8_loop_filter_simple_vertical_edge_c;
61 rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_c; 112 rtcd->loopfilter.simple_b_v = vp8_loop_filter_bvs_c;
62 rtcd->loopfilter.simple_mb_h = vp8_loop_filter_mbhs_c; 113 rtcd->loopfilter.simple_mb_h = vp8_loop_filter_simple_horizontal_edge_c;
63 rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_c; 114 rtcd->loopfilter.simple_b_h = vp8_loop_filter_bhs_c;
64 115
65 #if CONFIG_POSTPROC || (CONFIG_VP8_ENCODER && CONFIG_PSNR) 116 #if CONFIG_POSTPROC || (CONFIG_VP8_ENCODER && CONFIG_INTERNAL_STATS)
66 rtcd->postproc.down = vp8_mbpost_proc_down_c; 117 rtcd->postproc.down = vp8_mbpost_proc_down_c;
67 rtcd->postproc.across = vp8_mbpost_proc_across_ip_c; 118 rtcd->postproc.across = vp8_mbpost_proc_across_ip_c;
68 rtcd->postproc.downacross = vp8_post_proc_down_and_across_c; 119 rtcd->postproc.downacross = vp8_post_proc_down_and_across_c;
69 rtcd->postproc.addnoise = vp8_plane_add_noise_c; 120 rtcd->postproc.addnoise = vp8_plane_add_noise_c;
70 rtcd->postproc.blend_mb_inner = vp8_blend_mb_inner_c; 121 rtcd->postproc.blend_mb_inner = vp8_blend_mb_inner_c;
71 rtcd->postproc.blend_mb_outer = vp8_blend_mb_outer_c; 122 rtcd->postproc.blend_mb_outer = vp8_blend_mb_outer_c;
72 rtcd->postproc.blend_b = vp8_blend_b_c; 123 rtcd->postproc.blend_b = vp8_blend_b_c;
73 #endif 124 #endif
74 125
75 #endif 126 #endif
76 127
77 #if ARCH_X86 || ARCH_X86_64 128 #if ARCH_X86 || ARCH_X86_64
78 vp8_arch_x86_common_init(ctx); 129 vp8_arch_x86_common_init(ctx);
79 #endif 130 #endif
80 131
81 #if ARCH_ARM 132 #if ARCH_ARM
82 vp8_arch_arm_common_init(ctx); 133 vp8_arch_arm_common_init(ctx);
83 #endif 134 #endif
84 135
136 #if CONFIG_MULTITHREAD
137 ctx->processor_core_count = get_cpu_count();
138 #endif /* CONFIG_MULTITHREAD */
85 } 139 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/common/findnearmv.c ('k') | source/libvpx/vp8/common/loopfilter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698