SHARE
TWEET

Untitled

a guest May 24th, 2019 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. diff --git a/abseil-cpp/absl/base/internal/sysinfo.cc b/abseil-cpp/absl/base/internal/sysinfo.cc
  2. index 4dd3adda46e..950a2a37b06 100644
  3. --- a/abseil-cpp/absl/base/internal/sysinfo.cc
  4. +++ b/abseil-cpp/absl/base/internal/sysinfo.cc
  5. @@ -76,6 +76,7 @@ static int GetNumCPUs() {
  6.  #if defined(_WIN32)
  7.  
  8.  static double GetNominalCPUFrequency() {
  9. +#ifndef WINUWP
  10.    DWORD data;
  11.    DWORD data_size = sizeof(data);
  12.    #pragma comment(lib, "shlwapi.lib")  // For SHGetValue().
  13. @@ -85,6 +86,7 @@ static double GetNominalCPUFrequency() {
  14.                        "~MHz", nullptr, &data, &data_size))) {
  15.      return data * 1e6;  // Value is MHz.
  16.    }
  17. +#endif // WINUWP
  18.    return 1.0;
  19.  }
  20.  
  21. diff --git a/abseil-cpp/absl/debugging/internal/stacktrace_config.h b/abseil-cpp/absl/debugging/internal/stacktrace_config.h
  22. index d4e8480a8e2..c9ee82fe55d 100644
  23. --- a/abseil-cpp/absl/debugging/internal/stacktrace_config.h
  24. +++ b/abseil-cpp/absl/debugging/internal/stacktrace_config.h
  25. @@ -24,7 +24,7 @@
  26.  #if defined(ABSL_STACKTRACE_INL_HEADER)
  27.  #error ABSL_STACKTRACE_INL_HEADER cannot be directly set
  28.  
  29. -#elif defined(_WIN32)
  30. +#elif defined(_WIN32) && !defined(WINUWP)
  31.  #define ABSL_STACKTRACE_INL_HEADER \
  32.      "absl/debugging/internal/stacktrace_win32-inl.inc"
  33.  
  34. diff --git a/abseil-cpp/absl/debugging/symbolize.cc b/abseil-cpp/absl/debugging/symbolize.cc
  35. index 24e3a7f0a0e..43b71f7a864 100644
  36. --- a/abseil-cpp/absl/debugging/symbolize.cc
  37. +++ b/abseil-cpp/absl/debugging/symbolize.cc
  38. @@ -16,7 +16,7 @@
  39.  
  40.  #if defined(ABSL_INTERNAL_HAVE_ELF_SYMBOLIZE)
  41.  #include "absl/debugging/symbolize_elf.inc"
  42. -#elif defined(_WIN32) && defined(_DEBUG)
  43. +#elif defined(_WIN32) && defined(_DEBUG) && !defined(WINUWP)
  44.  // The Windows Symbolizer only works in debug mode. Note that _DEBUG
  45.  // is the macro that defines whether or not MS C-Runtime debug info is
  46.  // available. Note that the PDB files containing the debug info must
  47. diff --git a/boringssl/BUILD.gn b/boringssl/BUILD.gn
  48. index 051b3ed07fa..088d0f51ef9 100644
  49. --- a/boringssl/BUILD.gn
  50. +++ b/boringssl/BUILD.gn
  51. @@ -46,9 +46,10 @@ config("no_asm_config") {
  52.  all_sources = crypto_sources + ssl_sources
  53.  all_headers = crypto_headers + ssl_headers
  54.  
  55. -# Windows' assembly is built with NASM. The other platforms use the platform
  56. -# assembler. Exclude Windows ARM64 because NASM targets x86 and x64 only.
  57. -if (is_win && !is_msan && current_cpu != "arm64") {
  58. +# Windows' assembly is built with Yasm. The other platforms use the platform
  59. +# assembler.
  60. +if (is_win && !is_msan && (current_cpu != "arm") && (current_cpu != "arm64") &&
  61. +   (!((current_os == "winuwp") && (current_cpu == "x64")))) {
  62.    import("//third_party/nasm/nasm_assemble.gni")
  63.    nasm_assemble("boringssl_asm") {
  64.      if (current_cpu == "x64") {
  65. @@ -130,6 +131,10 @@ component("boringssl") {
  66.    configs -= [ "//build/config/compiler:chromium_code" ]
  67.    configs += [ "//build/config/compiler:no_chromium_code" ]
  68.  
  69. +  if (current_os == "winuwp") {
  70. +    deps += [ "//third_party/winuwp_compat:force_include_all" ]
  71. +  }
  72. +
  73.    if (is_nacl) {
  74.      deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
  75.    }
  76. @@ -225,6 +230,12 @@ if (build_with_chromium) {
  77.      configs -= [ "//build/config/compiler:chromium_code" ]
  78.      configs += [ "//build/config/compiler:no_chromium_code" ]
  79.  
  80. +    if (current_os == "winuwp") {
  81. +      deps += [ "//third_party/winuwp_compat:force_include_std" ]
  82. +      sources -= ["src/crypto/rand/windows.c"]
  83. +      sources += ["//third_party/winuwp_compat/boringssl/src/crypto/rand/windows.c"]
  84. +    }
  85. +
  86.      if (is_nacl) {
  87.        deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
  88.      }
  89. @@ -295,6 +306,12 @@ if (build_with_chromium) {
  90.      configs -= [ "//build/config/compiler:chromium_code" ]
  91.      configs += [ "//build/config/compiler:no_chromium_code" ]
  92.  
  93. +    if (current_os == "winuwp") {
  94. +      deps += [ "//third_party/winuwp_compat:force_include_std" ]
  95. +      sources -= ["src/crypto/rand/windows.c"]
  96. +      sources += ["//third_party/winuwp_compat/boringssl/src/crypto/rand/windows.c"]
  97. +    }
  98. +
  99.      if (is_nacl) {
  100.        deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
  101.      }
  102. diff --git a/expat/files/lib/xmlparse.c b/expat/files/lib/xmlparse.c
  103. index eaefb6f4763..bd355a6fd0e 100644
  104. --- a/expat/files/lib/xmlparse.c
  105. +++ b/expat/files/lib/xmlparse.c
  106. @@ -2079,6 +2079,8 @@ XML_GetBuffer(XML_Parser parser, int len)
  107.        }
  108.        parser->m_bufferLim = newBuf + bufferSize;
  109.  #ifdef XML_CONTEXT_BYTES
  110. +//Disable Declaration of 'keep' hides previous local declaration
  111. +//#pragma warning (disable: 4456)
  112.        if (parser->m_bufferPtr) {
  113.          int keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer);
  114.          if (keep > XML_CONTEXT_BYTES)
  115. @@ -4976,6 +4978,8 @@ doProlog(XML_Parser parser,
  116.        }
  117.        break;
  118.  #endif /* XML_DTD */
  119. +//Disable Declaration of 'temp' hides previous local declaration
  120. +#pragma warning (disable: 4456)
  121.      case XML_ROLE_GROUP_OPEN:
  122.        if (parser->m_prologState.level >= parser->m_groupSize) {
  123.          if (parser->m_groupSize) {
  124. diff --git a/jsoncpp/overrides/src/lib_json/json_reader.cpp b/jsoncpp/overrides/src/lib_json/json_reader.cpp
  125. index f8cfad70510..20ce24fdac8 100644
  126. --- a/jsoncpp/overrides/src/lib_json/json_reader.cpp
  127. +++ b/jsoncpp/overrides/src/lib_json/json_reader.cpp
  128. @@ -110,6 +110,11 @@ Reader::Reader( const Features &features )
  129.  }
  130.  
  131.  
  132. +Reader::~Reader()
  133. +{
  134. +}
  135. +
  136. +
  137.  bool
  138.  Reader::parse( const std::string &document,
  139.                 Value &root,
  140. diff --git a/libvpx/BUILD.gn b/libvpx/BUILD.gn
  141. index cabd7ee2b1a..8ac33b128d5 100644
  142. --- a/libvpx/BUILD.gn
  143. +++ b/libvpx/BUILD.gn
  144. @@ -48,6 +48,8 @@ if (is_nacl) {
  145.    } else if (is_posix || is_fuchsia) {
  146.      # Should cover linux, fuchsia, mac, and the ios simulator.
  147.      os_category = "linux"
  148. +  } else if (current_os == "winuwp") {
  149. +    os_category = "win"
  150.    } else {  # This should only match windows.
  151.      os_category = current_os
  152.    }
  153. @@ -128,6 +130,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  154.    source_set("libvpx_intrinsics_mmx") {
  155.      configs -= [ "//build/config/compiler:chromium_code" ]
  156.      configs += [ "//build/config/compiler:no_chromium_code" ]
  157. +    if (!is_debug && is_win) {
  158. +      configs -= [ "//build/config/compiler:default_optimization" ]
  159. +      configs += [ "//build/config/compiler:optimize_max" ]
  160. +    }
  161.      configs += [ ":libvpx_config" ]
  162.      if (!is_win) {
  163.        cflags = [ "-mmmx" ]
  164. @@ -142,6 +148,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  165.    source_set("libvpx_intrinsics_sse2") {
  166.      configs -= [ "//build/config/compiler:chromium_code" ]
  167.      configs += [ "//build/config/compiler:no_chromium_code" ]
  168. +    if (!is_debug && is_win) {
  169. +      configs -= [ "//build/config/compiler:default_optimization" ]
  170. +      configs += [ "//build/config/compiler:optimize_max" ]
  171. +    }
  172.      configs += [ ":libvpx_config" ]
  173.      if (!is_win || is_clang) {
  174.        cflags = [ "-msse2" ]
  175. @@ -156,6 +166,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  176.    source_set("libvpx_intrinsics_ssse3") {
  177.      configs -= [ "//build/config/compiler:chromium_code" ]
  178.      configs += [ "//build/config/compiler:no_chromium_code" ]
  179. +    if (!is_debug && is_win) {
  180. +      configs -= [ "//build/config/compiler:default_optimization" ]
  181. +      configs += [ "//build/config/compiler:optimize_max" ]
  182. +    }
  183.      configs += [ ":libvpx_config" ]
  184.      if (!is_win || is_clang) {
  185.        cflags = [ "-mssse3" ]
  186. @@ -170,6 +184,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  187.    source_set("libvpx_intrinsics_sse4_1") {
  188.      configs -= [ "//build/config/compiler:chromium_code" ]
  189.      configs += [ "//build/config/compiler:no_chromium_code" ]
  190. +    if (!is_debug && is_win) {
  191. +      configs -= [ "//build/config/compiler:default_optimization" ]
  192. +      configs += [ "//build/config/compiler:optimize_max" ]
  193. +    }
  194.      configs += [ ":libvpx_config" ]
  195.      if (!is_win || is_clang) {
  196.        cflags = [ "-msse4.1" ]
  197. @@ -184,6 +202,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  198.    source_set("libvpx_intrinsics_avx") {
  199.      configs -= [ "//build/config/compiler:chromium_code" ]
  200.      configs += [ "//build/config/compiler:no_chromium_code" ]
  201. +    if (!is_debug && is_win) {
  202. +      configs -= [ "//build/config/compiler:default_optimization" ]
  203. +      configs += [ "//build/config/compiler:optimize_max" ]
  204. +    }
  205.      configs += [ ":libvpx_config" ]
  206.      if (is_win) {
  207.        cflags = [ "/arch:AVX" ]
  208. @@ -200,6 +222,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  209.    source_set("libvpx_intrinsics_avx2") {
  210.      configs -= [ "//build/config/compiler:chromium_code" ]
  211.      configs += [ "//build/config/compiler:no_chromium_code" ]
  212. +    if (!is_debug && is_win) {
  213. +      configs -= [ "//build/config/compiler:default_optimization" ]
  214. +      configs += [ "//build/config/compiler:optimize_max" ]
  215. +    }
  216.      configs += [ ":libvpx_config" ]
  217.      if (is_win) {
  218.        cflags = [ "/arch:AVX2" ]
  219. @@ -216,6 +242,10 @@ if (current_cpu == "x86" || (current_cpu == "x64" && !is_msan)) {
  220.    source_set("libvpx_intrinsics_avx512") {
  221.      configs -= [ "//build/config/compiler:chromium_code" ]
  222.      configs += [ "//build/config/compiler:no_chromium_code" ]
  223. +    if (!is_debug && is_win) {
  224. +      configs -= [ "//build/config/compiler:default_optimization" ]
  225. +      configs += [ "//build/config/compiler:optimize_max" ]
  226. +    }
  227.      configs += [ ":libvpx_config" ]
  228.      if (is_win) {
  229.        # clang-cl does not accept this flag.
  230. @@ -275,7 +305,7 @@ if (current_cpu == "arm" && arm_assembly_sources != []) {
  231.            "//third_party/libvpx/source/libvpx/build/make/ads2gas_apple.pl"
  232.      } else {
  233.        ads2gas_script =
  234. -          "//third_party/libvpx/source/libvpx/build/make/ads2gas.pl"
  235. +          "//third_party/libvpx/source/libvpx/build/make/ads2armasm_ms.pl"
  236.      }
  237.      args = [
  238.        "-s",
  239. diff --git a/libvpx/armasm_ms.config b/libvpx/armasm_ms.config
  240. new file mode 100644
  241. index 00000000000..a0c4806d19c
  242. --- /dev/null
  243. +++ b/libvpx/armasm_ms.config
  244. @@ -0,0 +1 @@
  245. +-oldit
  246. diff --git a/libvpx/source/config/win/arm-neon/vp8_rtcd.h b/libvpx/source/config/win/arm-neon/vp8_rtcd.h
  247. new file mode 100644
  248. index 00000000000..e02f0e2b3f2
  249. --- /dev/null
  250. +++ b/libvpx/source/config/win/arm-neon/vp8_rtcd.h
  251. @@ -0,0 +1,219 @@
  252. +#ifndef VP8_RTCD_H_
  253. +#define VP8_RTCD_H_
  254. +
  255. +#ifdef RTCD_C
  256. +#define RTCD_EXTERN
  257. +#else
  258. +#define RTCD_EXTERN extern
  259. +#endif
  260. +
  261. +/*
  262. + * VP8
  263. + */
  264. +
  265. +struct blockd;
  266. +struct macroblockd;
  267. +struct loop_filter_info;
  268. +
  269. +/* Encoder forward decls */
  270. +struct block;
  271. +struct macroblock;
  272. +struct variance_vtable;
  273. +union int_mv;
  274. +struct yv12_buffer_config;
  275. +
  276. +#ifdef __cplusplus
  277. +extern "C" {
  278. +#endif
  279. +
  280. +void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  281. +void vp8_bilinear_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  282. +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_neon
  283. +
  284. +void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  285. +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c
  286. +
  287. +void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  288. +void vp8_bilinear_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  289. +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_neon
  290. +
  291. +void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  292. +void vp8_bilinear_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  293. +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_neon
  294. +
  295. +void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  296. +#define vp8_blend_b vp8_blend_b_c
  297. +
  298. +void vp8_blend_mb_inner_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  299. +#define vp8_blend_mb_inner vp8_blend_mb_inner_c
  300. +
  301. +void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  302. +#define vp8_blend_mb_outer vp8_blend_mb_outer_c
  303. +
  304. +int vp8_block_error_c(short *coeff, short *dqcoeff);
  305. +#define vp8_block_error vp8_block_error_c
  306. +
  307. +void vp8_clear_system_state_c();
  308. +#define vp8_clear_system_state vp8_clear_system_state_c
  309. +
  310. +void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  311. +void vp8_copy_mem16x16_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  312. +#define vp8_copy_mem16x16 vp8_copy_mem16x16_neon
  313. +
  314. +void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  315. +void vp8_copy_mem8x4_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  316. +#define vp8_copy_mem8x4 vp8_copy_mem8x4_neon
  317. +
  318. +void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  319. +void vp8_copy_mem8x8_neon(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  320. +#define vp8_copy_mem8x8 vp8_copy_mem8x8_neon
  321. +
  322. +void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
  323. +void vp8_dc_only_idct_add_neon(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
  324. +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_neon
  325. +
  326. +int vp8_denoiser_filter_c(unsigned char *mc_running_avg_y, int mc_avg_y_stride, unsigned char *running_avg_y, int avg_y_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  327. +int vp8_denoiser_filter_neon(unsigned char *mc_running_avg_y, int mc_avg_y_stride, unsigned char *running_avg_y, int avg_y_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  328. +#define vp8_denoiser_filter vp8_denoiser_filter_neon
  329. +
  330. +int vp8_denoiser_filter_uv_c(unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  331. +int vp8_denoiser_filter_uv_neon(unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  332. +#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_neon
  333. +
  334. +void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
  335. +void vp8_dequant_idct_add_neon(short *input, short *dq, unsigned char *output, int stride);
  336. +#define vp8_dequant_idct_add vp8_dequant_idct_add_neon
  337. +
  338. +void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
  339. +void vp8_dequant_idct_add_uv_block_neon(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
  340. +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_neon
  341. +
  342. +void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
  343. +void vp8_dequant_idct_add_y_block_neon(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
  344. +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_neon
  345. +
  346. +void vp8_dequantize_b_c(struct blockd*, short *dqc);
  347. +void vp8_dequantize_b_neon(struct blockd*, short *dqc);
  348. +#define vp8_dequantize_b vp8_dequantize_b_neon
  349. +
  350. +int vp8_diamond_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  351. +#define vp8_diamond_search_sad vp8_diamond_search_sad_c
  352. +
  353. +void vp8_fast_quantize_b_c(struct block *, struct blockd *);
  354. +void vp8_fast_quantize_b_neon(struct block *, struct blockd *);
  355. +#define vp8_fast_quantize_b vp8_fast_quantize_b_neon
  356. +
  357. +void vp8_filter_by_weight16x16_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  358. +#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
  359. +
  360. +void vp8_filter_by_weight4x4_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  361. +#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
  362. +
  363. +void vp8_filter_by_weight8x8_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  364. +#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
  365. +
  366. +int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  367. +#define vp8_full_search_sad vp8_full_search_sad_c
  368. +
  369. +void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  370. +void vp8_loop_filter_bh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  371. +#define vp8_loop_filter_bh vp8_loop_filter_bh_neon
  372. +
  373. +void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  374. +void vp8_loop_filter_bv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  375. +#define vp8_loop_filter_bv vp8_loop_filter_bv_neon
  376. +
  377. +void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  378. +void vp8_loop_filter_mbh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  379. +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_neon
  380. +
  381. +void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  382. +void vp8_loop_filter_mbv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  383. +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_neon
  384. +
  385. +void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  386. +void vp8_loop_filter_bhs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
  387. +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_neon
  388. +
  389. +void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  390. +void vp8_loop_filter_bvs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
  391. +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_neon
  392. +
  393. +void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  394. +void vp8_loop_filter_mbhs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
  395. +#define vp8_loop_filter_simple_mbh vp8_loop_filter_mbhs_neon
  396. +
  397. +void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  398. +void vp8_loop_filter_mbvs_neon(unsigned char *y, int ystride, const unsigned char *blimit);
  399. +#define vp8_loop_filter_simple_mbv vp8_loop_filter_mbvs_neon
  400. +
  401. +int vp8_mbblock_error_c(struct macroblock *mb, int dc);
  402. +#define vp8_mbblock_error vp8_mbblock_error_c
  403. +
  404. +int vp8_mbuverror_c(struct macroblock *mb);
  405. +#define vp8_mbuverror vp8_mbuverror_c
  406. +
  407. +int vp8_refining_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  408. +#define vp8_refining_search_sad vp8_refining_search_sad_c
  409. +
  410. +void vp8_regular_quantize_b_c(struct block *, struct blockd *);
  411. +#define vp8_regular_quantize_b vp8_regular_quantize_b_c
  412. +
  413. +void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
  414. +void vp8_short_fdct4x4_neon(short *input, short *output, int pitch);
  415. +#define vp8_short_fdct4x4 vp8_short_fdct4x4_neon
  416. +
  417. +void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
  418. +void vp8_short_fdct8x4_neon(short *input, short *output, int pitch);
  419. +#define vp8_short_fdct8x4 vp8_short_fdct8x4_neon
  420. +
  421. +void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
  422. +void vp8_short_idct4x4llm_neon(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
  423. +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_neon
  424. +
  425. +void vp8_short_inv_walsh4x4_c(short *input, short *output);
  426. +void vp8_short_inv_walsh4x4_neon(short *input, short *output);
  427. +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_neon
  428. +
  429. +void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
  430. +#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
  431. +
  432. +void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
  433. +void vp8_short_walsh4x4_neon(short *input, short *output, int pitch);
  434. +#define vp8_short_walsh4x4 vp8_short_walsh4x4_neon
  435. +
  436. +void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  437. +void vp8_sixtap_predict16x16_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  438. +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_neon
  439. +
  440. +void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  441. +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_c
  442. +
  443. +void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  444. +void vp8_sixtap_predict8x4_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  445. +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_neon
  446. +
  447. +void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  448. +void vp8_sixtap_predict8x8_neon(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  449. +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_neon
  450. +
  451. +void vp8_rtcd(void);
  452. +
  453. +#include "vpx_config.h"
  454. +
  455. +#ifdef RTCD_C
  456. +#include "vpx_ports/arm.h"
  457. +static void setup_rtcd_internal(void)
  458. +{
  459. +    int flags = arm_cpu_caps();
  460. +
  461. +    (void)flags;
  462. +
  463. +}
  464. +#endif
  465. +
  466. +#ifdef __cplusplus
  467. +}  // extern "C"
  468. +#endif
  469. +
  470. +#endif
  471. diff --git a/libvpx/source/config/win/arm-neon/vp9_rtcd.h b/libvpx/source/config/win/arm-neon/vp9_rtcd.h
  472. new file mode 100644
  473. index 00000000000..d6a189ce142
  474. --- /dev/null
  475. +++ b/libvpx/source/config/win/arm-neon/vp9_rtcd.h
  476. @@ -0,0 +1,171 @@
  477. +#ifndef VP9_RTCD_H_
  478. +#define VP9_RTCD_H_
  479. +
  480. +#ifdef RTCD_C
  481. +#define RTCD_EXTERN
  482. +#else
  483. +#define RTCD_EXTERN extern
  484. +#endif
  485. +
  486. +/*
  487. + * VP9
  488. + */
  489. +
  490. +#include "vpx/vpx_integer.h"
  491. +#include "vp9/common/vp9_common.h"
  492. +#include "vp9/common/vp9_enums.h"
  493. +#include "vp9/common/vp9_filter.h"
  494. +struct macroblockd;
  495. +
  496. +/* Encoder forward decls */
  497. +struct macroblock;
  498. +struct vp9_variance_vtable;
  499. +struct search_site_config;
  500. +struct mv;
  501. +union int_mv;
  502. +struct yv12_buffer_config;
  503. +
  504. +#ifdef __cplusplus
  505. +extern "C" {
  506. +#endif
  507. +
  508. +int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
  509. +#define vp9_block_error vp9_block_error_c
  510. +
  511. +int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
  512. +int64_t vp9_block_error_fp_neon(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
  513. +#define vp9_block_error_fp vp9_block_error_fp_neon
  514. +
  515. +int vp9_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BLOCK_SIZE bs, int motion_magnitude);
  516. +#define vp9_denoiser_filter vp9_denoiser_filter_c
  517. +
  518. +int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg,  struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
  519. +#define vp9_diamond_search_sad vp9_diamond_search_sad_c
  520. +
  521. +
  522. +void vp9_fdct8x8_quant_c(const int16_t* input,
  523. +                         int stride,
  524. +                         tran_low_t* coeff_ptr,
  525. +                         intptr_t n_coeffs,
  526. +                         int skip_block,
  527. +                         const int16_t* round_ptr,
  528. +                         const int16_t* quant_ptr,
  529. +                         tran_low_t* qcoeff_ptr,
  530. +                         tran_low_t* dqcoeff_ptr,
  531. +                         const int16_t* dequant_ptr,
  532. +                         uint16_t* eob_ptr,
  533. +                         const int16_t* scan,
  534. +                         const int16_t* iscan);
  535. +void vp9_fdct8x8_quant_neon(const int16_t* input,
  536. +                            int stride,
  537. +                            tran_low_t* coeff_ptr,
  538. +                            intptr_t n_coeffs,
  539. +                            int skip_block,
  540. +                            const int16_t* round_ptr,
  541. +                            const int16_t* quant_ptr,
  542. +                            tran_low_t* qcoeff_ptr,
  543. +                            tran_low_t* dqcoeff_ptr,
  544. +                            const int16_t* dequant_ptr,
  545. +                            uint16_t* eob_ptr,
  546. +                            const int16_t* scan,
  547. +                            const int16_t* iscan);
  548. +#define vp9_fdct8x8_quant vp9_fdct8x8_quant_neon
  549. +
  550. +void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  551. +#define vp9_fht16x16 vp9_fht16x16_c
  552. +
  553. +void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  554. +#define vp9_fht4x4 vp9_fht4x4_c
  555. +
  556. +void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  557. +#define vp9_fht8x8 vp9_fht8x8_c
  558. +
  559. +void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  560. +#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
  561. +
  562. +void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  563. +#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
  564. +
  565. +int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
  566. +#define vp9_full_search_sad vp9_full_search_sad_c
  567. +
  568. +void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
  569. +#define vp9_fwht4x4 vp9_fwht4x4_c
  570. +
  571. +void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
  572. +#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
  573. +
  574. +void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  575. +void vp9_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  576. +#define vp9_iht4x4_16_add vp9_iht4x4_16_add_neon
  577. +
  578. +void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  579. +void vp9_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  580. +#define vp9_iht8x8_64_add vp9_iht8x8_64_add_neon
  581. +
  582. +void vp9_quantize_fp_c(const tran_low_t* coeff_ptr,
  583. +                       intptr_t n_coeffs,
  584. +                       int skip_block,
  585. +                       const int16_t* round_ptr,
  586. +                       const int16_t* quant_ptr,
  587. +                       tran_low_t* qcoeff_ptr,
  588. +                       tran_low_t* dqcoeff_ptr,
  589. +                       const int16_t* dequant_ptr,
  590. +                       uint16_t* eob_ptr,
  591. +                       const int16_t* scan,
  592. +                       const int16_t* iscan);
  593. +void vp9_quantize_fp_neon(const tran_low_t* coeff_ptr,
  594. +                          intptr_t n_coeffs,
  595. +                          int skip_block,
  596. +                          const int16_t* round_ptr,
  597. +                          const int16_t* quant_ptr,
  598. +                          tran_low_t* qcoeff_ptr,
  599. +                          tran_low_t* dqcoeff_ptr,
  600. +                          const int16_t* dequant_ptr,
  601. +                          uint16_t* eob_ptr,
  602. +                          const int16_t* scan,
  603. +                          const int16_t* iscan);
  604. +#define vp9_quantize_fp vp9_quantize_fp_neon
  605. +
  606. +void vp9_quantize_fp_32x32_c(const tran_low_t* coeff_ptr,
  607. +                             intptr_t n_coeffs,
  608. +                             int skip_block,
  609. +                             const int16_t* round_ptr,
  610. +                             const int16_t* quant_ptr,
  611. +                             tran_low_t* qcoeff_ptr,
  612. +                             tran_low_t* dqcoeff_ptr,
  613. +                             const int16_t* dequant_ptr,
  614. +                             uint16_t* eob_ptr,
  615. +                             const int16_t* scan,
  616. +                             const int16_t* iscan);
  617. +#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
  618. +
  619. +void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config* src,
  620. +                                  struct yv12_buffer_config* dst,
  621. +                                  INTERP_FILTER filter_type,
  622. +                                  int phase_scaler);
  623. +#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c
  624. +
  625. +void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
  626. +#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
  627. +
  628. +void vp9_rtcd(void);
  629. +
  630. +#include "vpx_config.h"
  631. +
  632. +#ifdef RTCD_C
  633. +#include "vpx_ports/arm.h"
  634. +static void setup_rtcd_internal(void)
  635. +{
  636. +    int flags = arm_cpu_caps();
  637. +
  638. +    (void)flags;
  639. +
  640. +}
  641. +#endif
  642. +
  643. +#ifdef __cplusplus
  644. +}  // extern "C"
  645. +#endif
  646. +
  647. +#endif
  648. diff --git a/libvpx/source/config/win/arm-neon/vpx_config.asm b/libvpx/source/config/win/arm-neon/vpx_config.asm
  649. new file mode 100644
  650. index 00000000000..55ae70c6c95
  651. --- /dev/null
  652. +++ b/libvpx/source/config/win/arm-neon/vpx_config.asm
  653. @@ -0,0 +1,85 @@
  654. +ARCH_ARM * 1
  655. +ARCH_MIPS * 0
  656. +ARCH_X86 * 0
  657. +ARCH_X86_64 * 0
  658. +HAVE_NEON * 1
  659. +HAVE_NEON_ASM * 1
  660. +HAVE_MIPS32 * 0
  661. +HAVE_DSPR2 * 0
  662. +HAVE_MSA * 0
  663. +HAVE_MIPS64 * 0
  664. +HAVE_MMX * 0
  665. +HAVE_SSE * 0
  666. +HAVE_SSE2 * 0
  667. +HAVE_SSE3 * 0
  668. +HAVE_SSSE3 * 0
  669. +HAVE_SSE4_1 * 0
  670. +HAVE_AVX * 0
  671. +HAVE_AVX2 * 0
  672. +HAVE_VPX_PORTS * 1
  673. +HAVE_STDINT_H * 0
  674. +HAVE_PTHREAD_H * 0
  675. +HAVE_SYS_MMAN_H * 0
  676. +HAVE_UNISTD_H * 0
  677. +CONFIG_DEPENDENCY_TRACKING * 1
  678. +CONFIG_EXTERNAL_BUILD * 1
  679. +CONFIG_INSTALL_DOCS * 0
  680. +CONFIG_INSTALL_BINS * 1
  681. +CONFIG_INSTALL_LIBS * 1
  682. +CONFIG_INSTALL_SRCS * 0
  683. +CONFIG_DEBUG * 0
  684. +CONFIG_GPROF * 0
  685. +CONFIG_GCOV * 0
  686. +CONFIG_RVCT * 0
  687. +CONFIG_GCC * 0
  688. +CONFIG_MSVS * 1
  689. +CONFIG_PIC * 0
  690. +CONFIG_BIG_ENDIAN * 0
  691. +CONFIG_CODEC_SRCS * 0
  692. +CONFIG_DEBUG_LIBS * 0
  693. +CONFIG_DEQUANT_TOKENS * 0
  694. +CONFIG_DC_RECON * 0
  695. +CONFIG_RUNTIME_CPU_DETECT * 0
  696. +CONFIG_POSTPROC * 1
  697. +CONFIG_VP9_POSTPROC * 1
  698. +CONFIG_MULTITHREAD * 1
  699. +CONFIG_INTERNAL_STATS * 0
  700. +CONFIG_VP8_ENCODER * 1
  701. +CONFIG_VP8_DECODER * 1
  702. +CONFIG_VP9_ENCODER * 1
  703. +CONFIG_VP9_DECODER * 1
  704. +CONFIG_VP8 * 1
  705. +CONFIG_VP9 * 1
  706. +CONFIG_ENCODERS * 1
  707. +CONFIG_DECODERS * 1
  708. +CONFIG_STATIC_MSVCRT * 0
  709. +CONFIG_SPATIAL_RESAMPLING * 1
  710. +CONFIG_REALTIME_ONLY * 1
  711. +CONFIG_ONTHEFLY_BITPACKING * 0
  712. +CONFIG_ERROR_CONCEALMENT * 0
  713. +CONFIG_SHARED * 0
  714. +CONFIG_STATIC * 1
  715. +CONFIG_SMALL * 0
  716. +CONFIG_POSTPROC_VISUALIZER * 0
  717. +CONFIG_OS_SUPPORT * 1
  718. +CONFIG_UNIT_TESTS * 0
  719. +CONFIG_WEBM_IO * 1
  720. +CONFIG_LIBYUV * 1
  721. +CONFIG_DECODE_PERF_TESTS * 0
  722. +CONFIG_ENCODE_PERF_TESTS * 0
  723. +CONFIG_MULTI_RES_ENCODING * 1
  724. +CONFIG_TEMPORAL_DENOISING * 1
  725. +CONFIG_VP9_TEMPORAL_DENOISING * 1
  726. +CONFIG_COEFFICIENT_RANGE_CHECKING * 0
  727. +CONFIG_VP9_HIGHBITDEPTH * 0
  728. +CONFIG_BETTER_HW_COMPATIBILITY * 0
  729. +CONFIG_EXPERIMENTAL * 0
  730. +CONFIG_SIZE_LIMIT * 1
  731. +CONFIG_SPATIAL_SVC * 0
  732. +CONFIG_FP_MB_STATS * 0
  733. +CONFIG_EMULATE_HARDWARE * 0
  734. +CONFIG_MISC_FIXES * 0
  735. +DECODE_WIDTH_LIMIT * 16384
  736. +DECODE_HEIGHT_LIMIT * 16384
  737. +
  738. +  END
  739. \ No newline at end of file
  740. diff --git a/libvpx/source/config/win/arm-neon/vpx_config.c b/libvpx/source/config/win/arm-neon/vpx_config.c
  741. new file mode 100644
  742. index 00000000000..b6f33eef6dd
  743. --- /dev/null
  744. +++ b/libvpx/source/config/win/arm-neon/vpx_config.c
  745. @@ -0,0 +1,10 @@
  746. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  747. +/*  */
  748. +/* Use of this source code is governed by a BSD-style license */
  749. +/* that can be found in the LICENSE file in the root of the source */
  750. +/* tree. An additional intellectual property rights grant can be found */
  751. +/* in the file PATENTS.  All contributing project authors may */
  752. +/* be found in the AUTHORS file in the root of the source tree. */
  753. +#include "vpx/vpx_codec.h"
  754. +static const char* const cfg = "--target=armv6-win-vs12 --enable-realtime-only --enable-external-build --enable-postproc --disable-install-srcs --enable-multi-res-encoding --enable-temporal-denoising --disable-unit-tests --disable-install-docs --disable-examples --enable-vp9-temporal-denoising";
  755. +const char *vpx_codec_build_config(void) {return cfg;}
  756. diff --git a/libvpx/source/config/win/arm-neon/vpx_config.h b/libvpx/source/config/win/arm-neon/vpx_config.h
  757. new file mode 100644
  758. index 00000000000..403b32bdf2c
  759. --- /dev/null
  760. +++ b/libvpx/source/config/win/arm-neon/vpx_config.h
  761. @@ -0,0 +1,97 @@
  762. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  763. +/*  */
  764. +/* Use of this source code is governed by a BSD-style license */
  765. +/* that can be found in the LICENSE file in the root of the source */
  766. +/* tree. An additional intellectual property rights grant can be found */
  767. +/* in the file PATENTS.  All contributing project authors may */
  768. +/* be found in the AUTHORS file in the root of the source tree. */
  769. +/* This file automatically generated by configure. Do not edit! */
  770. +#ifndef VPX_CONFIG_H
  771. +#define VPX_CONFIG_H
  772. +#define RESTRICT    
  773. +#define INLINE      __forceinline
  774. +#define ARCH_ARM 1
  775. +#define ARCH_MIPS 0
  776. +#define ARCH_X86 0
  777. +#define ARCH_X86_64 0
  778. +#define HAVE_NEON 1
  779. +#define HAVE_NEON_ASM 1
  780. +#define HAVE_MIPS32 0
  781. +#define HAVE_DSPR2 0
  782. +#define HAVE_MSA 0
  783. +#define HAVE_MIPS64 0
  784. +#define HAVE_MMX 0
  785. +#define HAVE_SSE 0
  786. +#define HAVE_SSE2 0
  787. +#define HAVE_SSE3 0
  788. +#define HAVE_SSSE3 0
  789. +#define HAVE_SSE4_1 0
  790. +#define HAVE_AVX 0
  791. +#define HAVE_AVX2 0
  792. +#define HAVE_ALTIVEC 0
  793. +#define HAVE_VPX_PORTS 1
  794. +#define HAVE_STDINT_H 0
  795. +#define HAVE_PTHREAD_H 0
  796. +#define HAVE_SYS_MMAN_H 0
  797. +#define HAVE_UNISTD_H 0
  798. +#define CONFIG_DEPENDENCY_TRACKING 1
  799. +#define CONFIG_EXTERNAL_BUILD 1
  800. +#define CONFIG_INSTALL_DOCS 0
  801. +#define CONFIG_INSTALL_BINS 1
  802. +#define CONFIG_INSTALL_LIBS 1
  803. +#define CONFIG_INSTALL_SRCS 0
  804. +#define CONFIG_DEBUG 0
  805. +#define CONFIG_GPROF 0
  806. +#define CONFIG_GCOV 0
  807. +#define CONFIG_RVCT 0
  808. +#define CONFIG_GCC 0
  809. +#define CONFIG_MSVS 1
  810. +#define CONFIG_PIC 0
  811. +#define CONFIG_BIG_ENDIAN 0
  812. +#define CONFIG_CODEC_SRCS 0
  813. +#define CONFIG_DEBUG_LIBS 0
  814. +#define CONFIG_DEQUANT_TOKENS 0
  815. +#define CONFIG_DC_RECON 0
  816. +#define CONFIG_RUNTIME_CPU_DETECT 0
  817. +#define CONFIG_POSTPROC 1
  818. +#define CONFIG_VP9_POSTPROC 1
  819. +#define CONFIG_MULTITHREAD 1
  820. +#define CONFIG_INTERNAL_STATS 0
  821. +#define CONFIG_VP8_ENCODER 1
  822. +#define CONFIG_VP8_DECODER 1
  823. +#define CONFIG_VP9_ENCODER 1
  824. +#define CONFIG_VP9_DECODER 1
  825. +#define CONFIG_VP8 1
  826. +#define CONFIG_VP9 1
  827. +#define CONFIG_ENCODERS 1
  828. +#define CONFIG_DECODERS 1
  829. +#define CONFIG_STATIC_MSVCRT 0
  830. +#define CONFIG_SPATIAL_RESAMPLING 1
  831. +#define CONFIG_REALTIME_ONLY 1
  832. +#define CONFIG_ONTHEFLY_BITPACKING 0
  833. +#define CONFIG_ERROR_CONCEALMENT 0
  834. +#define CONFIG_SHARED 0
  835. +#define CONFIG_STATIC 1
  836. +#define CONFIG_SMALL 0
  837. +#define CONFIG_POSTPROC_VISUALIZER 0
  838. +#define CONFIG_OS_SUPPORT 1
  839. +#define CONFIG_UNIT_TESTS 0
  840. +#define CONFIG_WEBM_IO 1
  841. +#define CONFIG_LIBYUV 1
  842. +#define CONFIG_DECODE_PERF_TESTS 0
  843. +#define CONFIG_ENCODE_PERF_TESTS 0
  844. +#define CONFIG_MULTI_RES_ENCODING 1
  845. +#define CONFIG_TEMPORAL_DENOISING 1
  846. +#define CONFIG_VP9_TEMPORAL_DENOISING 1
  847. +#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
  848. +#define CONFIG_VP9_HIGHBITDEPTH 0
  849. +#define CONFIG_BETTER_HW_COMPATIBILITY 0
  850. +#define CONFIG_EXPERIMENTAL 0
  851. +#define CONFIG_SIZE_LIMIT 1
  852. +#define CONFIG_SPATIAL_SVC 0
  853. +#define CONFIG_FP_MB_STATS 0
  854. +#define CONFIG_EMULATE_HARDWARE 0
  855. +#define CONFIG_MISC_FIXES 0
  856. +#define DECODE_WIDTH_LIMIT 16384
  857. +#define DECODE_HEIGHT_LIMIT 16384
  858. +#endif /* VPX_CONFIG_H */
  859. diff --git a/libvpx/source/config/win/arm-neon/vpx_dsp_rtcd.h b/libvpx/source/config/win/arm-neon/vpx_dsp_rtcd.h
  860. new file mode 100644
  861. index 00000000000..aefca1e88a1
  862. --- /dev/null
  863. +++ b/libvpx/source/config/win/arm-neon/vpx_dsp_rtcd.h
  864. @@ -0,0 +1,891 @@
  865. +#ifndef VPX_DSP_RTCD_H_
  866. +#define VPX_DSP_RTCD_H_
  867. +
  868. +#ifdef RTCD_C
  869. +#define RTCD_EXTERN
  870. +#else
  871. +#define RTCD_EXTERN extern
  872. +#endif
  873. +
  874. +/*
  875. + * DSP
  876. + */
  877. +
  878. +#include "vpx/vpx_integer.h"
  879. +#include "vpx_dsp/vpx_dsp_common.h"
  880. +#include "vpx_dsp/vpx_filter.h"
  881. +
  882. +#ifdef __cplusplus
  883. +extern "C" {
  884. +#endif
  885. +
  886. +unsigned int vpx_avg_4x4_c(const uint8_t *, int p);
  887. +unsigned int vpx_avg_4x4_neon(const uint8_t *, int p);
  888. +#define vpx_avg_4x4 vpx_avg_4x4_neon
  889. +
  890. +unsigned int vpx_avg_8x8_c(const uint8_t *, int p);
  891. +unsigned int vpx_avg_8x8_neon(const uint8_t *, int p);
  892. +#define vpx_avg_8x8 vpx_avg_8x8_neon
  893. +
  894. +void vpx_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
  895. +#define vpx_comp_avg_pred vpx_comp_avg_pred_c
  896. +
  897. +void vpx_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  898. +void vpx_convolve8_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  899. +#define vpx_convolve8 vpx_convolve8_neon
  900. +
  901. +void vpx_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  902. +void vpx_convolve8_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  903. +#define vpx_convolve8_avg vpx_convolve8_avg_neon
  904. +
  905. +void vpx_convolve8_avg_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  906. +void vpx_convolve8_avg_horiz_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  907. +#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_neon
  908. +
  909. +void vpx_convolve8_avg_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  910. +void vpx_convolve8_avg_vert_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  911. +#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_neon
  912. +
  913. +void vpx_convolve8_horiz_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  914. +void vpx_convolve8_horiz_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  915. +#define vpx_convolve8_horiz vpx_convolve8_horiz_neon
  916. +
  917. +void vpx_convolve8_vert_c(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  918. +void vpx_convolve8_vert_neon(const uint8_t* src, ptrdiff_t src_stride, uint8_t* dst, ptrdiff_t dst_stride, const InterpKernel* filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  919. +#define vpx_convolve8_vert vpx_convolve8_vert_neon
  920. +
  921. +void vpx_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  922. +void vpx_convolve_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  923. +#define vpx_convolve_avg vpx_convolve_avg_neon
  924. +
  925. +void vpx_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  926. +void vpx_convolve_copy_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  927. +#define vpx_convolve_copy vpx_convolve_copy_neon
  928. +
  929. +void vpx_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  930. +#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
  931. +
  932. +void vpx_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  933. +#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
  934. +
  935. +void vpx_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  936. +#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
  937. +
  938. +void vpx_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  939. +#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
  940. +
  941. +void vpx_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  942. +#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
  943. +
  944. +void vpx_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  945. +#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
  946. +
  947. +void vpx_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  948. +void vpx_d135_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  949. +#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_neon
  950. +
  951. +void vpx_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  952. +#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
  953. +
  954. +void vpx_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  955. +#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
  956. +
  957. +void vpx_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  958. +#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
  959. +
  960. +void vpx_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  961. +#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
  962. +
  963. +void vpx_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  964. +#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
  965. +
  966. +void vpx_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  967. +#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
  968. +
  969. +void vpx_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  970. +#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
  971. +
  972. +void vpx_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  973. +#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
  974. +
  975. +void vpx_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  976. +#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
  977. +
  978. +void vpx_d207e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  979. +#define vpx_d207e_predictor_16x16 vpx_d207e_predictor_16x16_c
  980. +
  981. +void vpx_d207e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  982. +#define vpx_d207e_predictor_32x32 vpx_d207e_predictor_32x32_c
  983. +
  984. +void vpx_d207e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  985. +#define vpx_d207e_predictor_4x4 vpx_d207e_predictor_4x4_c
  986. +
  987. +void vpx_d207e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  988. +#define vpx_d207e_predictor_8x8 vpx_d207e_predictor_8x8_c
  989. +
  990. +void vpx_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  991. +void vpx_d45_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  992. +#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_neon
  993. +
  994. +void vpx_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  995. +#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
  996. +
  997. +void vpx_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  998. +void vpx_d45_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  999. +#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_neon
  1000. +
  1001. +void vpx_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1002. +void vpx_d45_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1003. +#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_neon
  1004. +
  1005. +void vpx_d45e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1006. +#define vpx_d45e_predictor_16x16 vpx_d45e_predictor_16x16_c
  1007. +
  1008. +void vpx_d45e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1009. +#define vpx_d45e_predictor_32x32 vpx_d45e_predictor_32x32_c
  1010. +
  1011. +void vpx_d45e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1012. +#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
  1013. +
  1014. +void vpx_d45e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1015. +#define vpx_d45e_predictor_8x8 vpx_d45e_predictor_8x8_c
  1016. +
  1017. +void vpx_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1018. +#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
  1019. +
  1020. +void vpx_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1021. +#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
  1022. +
  1023. +void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1024. +#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
  1025. +
  1026. +void vpx_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1027. +#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
  1028. +
  1029. +void vpx_d63e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1030. +#define vpx_d63e_predictor_16x16 vpx_d63e_predictor_16x16_c
  1031. +
  1032. +void vpx_d63e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1033. +#define vpx_d63e_predictor_32x32 vpx_d63e_predictor_32x32_c
  1034. +
  1035. +void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1036. +#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
  1037. +
  1038. +void vpx_d63e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1039. +#define vpx_d63e_predictor_8x8 vpx_d63e_predictor_8x8_c
  1040. +
  1041. +void vpx_d63f_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1042. +#define vpx_d63f_predictor_4x4 vpx_d63f_predictor_4x4_c
  1043. +
  1044. +void vpx_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1045. +void vpx_dc_128_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1046. +#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_neon
  1047. +
  1048. +void vpx_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1049. +void vpx_dc_128_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1050. +#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_neon
  1051. +
  1052. +void vpx_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1053. +void vpx_dc_128_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1054. +#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_neon
  1055. +
  1056. +void vpx_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1057. +void vpx_dc_128_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1058. +#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_neon
  1059. +
  1060. +void vpx_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1061. +void vpx_dc_left_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1062. +#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_neon
  1063. +
  1064. +void vpx_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1065. +void vpx_dc_left_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1066. +#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_neon
  1067. +
  1068. +void vpx_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1069. +void vpx_dc_left_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1070. +#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_neon
  1071. +
  1072. +void vpx_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1073. +void vpx_dc_left_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1074. +#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_neon
  1075. +
  1076. +void vpx_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1077. +void vpx_dc_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1078. +#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_neon
  1079. +
  1080. +void vpx_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1081. +void vpx_dc_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1082. +#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_neon
  1083. +
  1084. +void vpx_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1085. +void vpx_dc_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1086. +#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_neon
  1087. +
  1088. +void vpx_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1089. +void vpx_dc_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1090. +#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_neon
  1091. +
  1092. +void vpx_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1093. +void vpx_dc_top_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1094. +#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_neon
  1095. +
  1096. +void vpx_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1097. +void vpx_dc_top_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1098. +#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_neon
  1099. +
  1100. +void vpx_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1101. +void vpx_dc_top_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1102. +#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_neon
  1103. +
  1104. +void vpx_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1105. +void vpx_dc_top_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1106. +#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_neon
  1107. +
  1108. +void vpx_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
  1109. +#define vpx_fdct16x16 vpx_fdct16x16_c
  1110. +
  1111. +void vpx_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
  1112. +#define vpx_fdct16x16_1 vpx_fdct16x16_1_c
  1113. +
  1114. +void vpx_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
  1115. +#define vpx_fdct32x32 vpx_fdct32x32_c
  1116. +
  1117. +void vpx_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
  1118. +#define vpx_fdct32x32_1 vpx_fdct32x32_1_c
  1119. +
  1120. +void vpx_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
  1121. +#define vpx_fdct32x32_rd vpx_fdct32x32_rd_c
  1122. +
  1123. +void vpx_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
  1124. +#define vpx_fdct4x4 vpx_fdct4x4_c
  1125. +
  1126. +void vpx_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
  1127. +#define vpx_fdct4x4_1 vpx_fdct4x4_1_c
  1128. +
  1129. +void vpx_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
  1130. +void vpx_fdct8x8_neon(const int16_t *input, tran_low_t *output, int stride);
  1131. +#define vpx_fdct8x8 vpx_fdct8x8_neon
  1132. +
  1133. +void vpx_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
  1134. +void vpx_fdct8x8_1_neon(const int16_t *input, tran_low_t *output, int stride);
  1135. +#define vpx_fdct8x8_1 vpx_fdct8x8_1_neon
  1136. +
  1137. +void vpx_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  1138. +void vpx_get16x16var_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  1139. +#define vpx_get16x16var vpx_get16x16var_neon
  1140. +
  1141. +unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
  1142. +unsigned int vpx_get4x4sse_cs_neon(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
  1143. +#define vpx_get4x4sse_cs vpx_get4x4sse_cs_neon
  1144. +
  1145. +void vpx_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  1146. +void vpx_get8x8var_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  1147. +#define vpx_get8x8var vpx_get8x8var_neon
  1148. +
  1149. +unsigned int vpx_get_mb_ss_c(const int16_t *);
  1150. +#define vpx_get_mb_ss vpx_get_mb_ss_c
  1151. +
  1152. +void vpx_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1153. +void vpx_h_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1154. +#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_neon
  1155. +
  1156. +void vpx_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1157. +void vpx_h_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1158. +#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_neon
  1159. +
  1160. +void vpx_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1161. +void vpx_h_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1162. +#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_neon
  1163. +
  1164. +void vpx_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1165. +void vpx_h_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1166. +#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_neon
  1167. +
  1168. +void vpx_hadamard_16x16_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  1169. +void vpx_hadamard_16x16_neon(const int16_t *src_diff, int src_stride, int16_t *coeff);
  1170. +#define vpx_hadamard_16x16 vpx_hadamard_16x16_neon
  1171. +
  1172. +void vpx_hadamard_32x32_c(const int16_t* src_diff,
  1173. +                          ptrdiff_t src_stride,
  1174. +                          tran_low_t* coeff);
  1175. +#define vpx_hadamard_32x32 vpx_hadamard_32x32_c
  1176. +
  1177. +void vpx_hadamard_8x8_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  1178. +void vpx_hadamard_8x8_neon(const int16_t *src_diff, int src_stride, int16_t *coeff);
  1179. +#define vpx_hadamard_8x8 vpx_hadamard_8x8_neon
  1180. +
  1181. +void vpx_he_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1182. +#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
  1183. +
  1184. +void vpx_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1185. +void vpx_idct16x16_10_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1186. +#define vpx_idct16x16_10_add vpx_idct16x16_10_add_neon
  1187. +
  1188. +void vpx_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1189. +void vpx_idct16x16_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1190. +#define vpx_idct16x16_1_add vpx_idct16x16_1_add_neon
  1191. +
  1192. +void vpx_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1193. +void vpx_idct16x16_256_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1194. +#define vpx_idct16x16_256_add vpx_idct16x16_256_add_neon
  1195. +
  1196. +void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int dest_stride);
  1197. +void vpx_idct16x16_38_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1198. +#define vpx_idct16x16_38_add vpx_idct16x16_38_add_neon
  1199. +
  1200. +void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1201. +void vpx_idct32x32_1024_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1202. +#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_neon
  1203. +
  1204. +void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1205. +void vpx_idct32x32_1024_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1206. +#define vpx_idct32x32_135_add vpx_idct32x32_1024_add_neon
  1207. +
  1208. +void vpx_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1209. +void vpx_idct32x32_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1210. +#define vpx_idct32x32_1_add vpx_idct32x32_1_add_neon
  1211. +
  1212. +void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1213. +void vpx_idct32x32_1024_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1214. +#define vpx_idct32x32_34_add vpx_idct32x32_1024_add_neon
  1215. +
  1216. +void vpx_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1217. +void vpx_idct4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1218. +#define vpx_idct4x4_16_add vpx_idct4x4_16_add_neon
  1219. +
  1220. +void vpx_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1221. +void vpx_idct4x4_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1222. +#define vpx_idct4x4_1_add vpx_idct4x4_1_add_neon
  1223. +
  1224. +void vpx_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1225. +void vpx_idct8x8_12_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1226. +#define vpx_idct8x8_12_add vpx_idct8x8_12_add_neon
  1227. +
  1228. +void vpx_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1229. +void vpx_idct8x8_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1230. +#define vpx_idct8x8_1_add vpx_idct8x8_1_add_neon
  1231. +
  1232. +void vpx_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1233. +void vpx_idct8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1234. +#define vpx_idct8x8_64_add vpx_idct8x8_64_add_neon
  1235. +
  1236. +int16_t vpx_int_pro_col_c(const uint8_t *ref, const int width);
  1237. +int16_t vpx_int_pro_col_neon(const uint8_t *ref, const int width);
  1238. +#define vpx_int_pro_col vpx_int_pro_col_neon
  1239. +
  1240. +void vpx_int_pro_row_c(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
  1241. +void vpx_int_pro_row_neon(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
  1242. +#define vpx_int_pro_row vpx_int_pro_row_neon
  1243. +
  1244. +void vpx_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1245. +#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
  1246. +
  1247. +void vpx_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  1248. +#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
  1249. +
  1250. +void vpx_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1251. +void vpx_lpf_horizontal_16_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1252. +#define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_neon
  1253. +
  1254. +void vpx_lpf_horizontal_16_dual_c(uint8_t* s,
  1255. +                                  int pitch,
  1256. +                                  const uint8_t* blimit,
  1257. +                                  const uint8_t* limit,
  1258. +                                  const uint8_t* thresh);
  1259. +void vpx_lpf_horizontal_16_dual_neon(uint8_t* s,
  1260. +                                     int pitch,
  1261. +                                     const uint8_t* blimit,
  1262. +                                     const uint8_t* limit,
  1263. +                                     const uint8_t* thresh);
  1264. +#define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_neon
  1265. +
  1266. +void vpx_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1267. +void vpx_lpf_horizontal_4_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1268. +#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_neon
  1269. +
  1270. +void vpx_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1271. +void vpx_lpf_horizontal_4_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1272. +#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_neon
  1273. +
  1274. +void vpx_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1275. +void vpx_lpf_horizontal_8_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1276. +#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_neon
  1277. +
  1278. +void vpx_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1279. +void vpx_lpf_horizontal_8_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1280. +#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_neon
  1281. +
  1282. +void vpx_lpf_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1283. +void vpx_lpf_horizontal_edge_16_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1284. +#define vpx_lpf_horizontal_edge_16 vpx_lpf_horizontal_edge_16_neon
  1285. +
  1286. +void vpx_lpf_horizontal_edge_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1287. +void vpx_lpf_horizontal_edge_8_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1288. +#define vpx_lpf_horizontal_edge_8 vpx_lpf_horizontal_edge_8_neon
  1289. +
  1290. +void vpx_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1291. +void vpx_lpf_vertical_16_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1292. +#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_neon
  1293. +
  1294. +void vpx_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1295. +void vpx_lpf_vertical_16_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1296. +#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_neon
  1297. +
  1298. +void vpx_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1299. +void vpx_lpf_vertical_4_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1300. +#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_neon
  1301. +
  1302. +void vpx_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1303. +void vpx_lpf_vertical_4_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1304. +#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_neon
  1305. +
  1306. +void vpx_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1307. +void vpx_lpf_vertical_8_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  1308. +#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_neon
  1309. +
  1310. +void vpx_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1311. +void vpx_lpf_vertical_8_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  1312. +#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_neon
  1313. +
  1314. +void vpx_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  1315. +#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_c
  1316. +
  1317. +void vpx_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  1318. +#define vpx_mbpost_proc_down vpx_mbpost_proc_down_c
  1319. +
  1320. +void vpx_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
  1321. +void vpx_minmax_8x8_neon(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
  1322. +#define vpx_minmax_8x8 vpx_minmax_8x8_neon
  1323. +
  1324. +unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  1325. +unsigned int vpx_mse16x16_neon(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  1326. +#define vpx_mse16x16 vpx_mse16x16_neon
  1327. +
  1328. +unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  1329. +#define vpx_mse16x8 vpx_mse16x8_c
  1330. +
  1331. +unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  1332. +#define vpx_mse8x16 vpx_mse8x16_c
  1333. +
  1334. +unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  1335. +#define vpx_mse8x8 vpx_mse8x8_c
  1336. +
  1337. +void vpx_plane_add_noise_c(uint8_t *start, const int8_t *noise, int blackclamp, int whiteclamp, int width, int height, int pitch);
  1338. +#define vpx_plane_add_noise vpx_plane_add_noise_c
  1339. +
  1340. +void vpx_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
  1341. +#define vpx_post_proc_down_and_across_mb_row vpx_post_proc_down_and_across_mb_row_c
  1342. +
  1343. +void vpx_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  1344. +#define vpx_quantize_b vpx_quantize_b_c
  1345. +
  1346. +void vpx_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  1347. +#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_c
  1348. +
  1349. +unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1350. +unsigned int vpx_sad16x16_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1351. +#define vpx_sad16x16 vpx_sad16x16_neon
  1352. +
  1353. +unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1354. +#define vpx_sad16x16_avg vpx_sad16x16_avg_c
  1355. +
  1356. +void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1357. +#define vpx_sad16x16x3 vpx_sad16x16x3_c
  1358. +
  1359. +void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1360. +void vpx_sad16x16x4d_neon(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1361. +#define vpx_sad16x16x4d vpx_sad16x16x4d_neon
  1362. +
  1363. +void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1364. +#define vpx_sad16x16x8 vpx_sad16x16x8_c
  1365. +
  1366. +unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1367. +#define vpx_sad16x32 vpx_sad16x32_c
  1368. +
  1369. +unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1370. +#define vpx_sad16x32_avg vpx_sad16x32_avg_c
  1371. +
  1372. +void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1373. +#define vpx_sad16x32x4d vpx_sad16x32x4d_c
  1374. +
  1375. +unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1376. +unsigned int vpx_sad16x8_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1377. +#define vpx_sad16x8 vpx_sad16x8_neon
  1378. +
  1379. +unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1380. +#define vpx_sad16x8_avg vpx_sad16x8_avg_c
  1381. +
  1382. +void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1383. +#define vpx_sad16x8x3 vpx_sad16x8x3_c
  1384. +
  1385. +void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1386. +#define vpx_sad16x8x4d vpx_sad16x8x4d_c
  1387. +
  1388. +void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1389. +#define vpx_sad16x8x8 vpx_sad16x8x8_c
  1390. +
  1391. +unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1392. +#define vpx_sad32x16 vpx_sad32x16_c
  1393. +
  1394. +unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1395. +#define vpx_sad32x16_avg vpx_sad32x16_avg_c
  1396. +
  1397. +void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1398. +#define vpx_sad32x16x4d vpx_sad32x16x4d_c
  1399. +
  1400. +unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1401. +unsigned int vpx_sad32x32_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1402. +#define vpx_sad32x32 vpx_sad32x32_neon
  1403. +
  1404. +unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1405. +#define vpx_sad32x32_avg vpx_sad32x32_avg_c
  1406. +
  1407. +void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1408. +#define vpx_sad32x32x3 vpx_sad32x32x3_c
  1409. +
  1410. +void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1411. +void vpx_sad32x32x4d_neon(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1412. +#define vpx_sad32x32x4d vpx_sad32x32x4d_neon
  1413. +
  1414. +void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1415. +#define vpx_sad32x32x8 vpx_sad32x32x8_c
  1416. +
  1417. +unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1418. +#define vpx_sad32x64 vpx_sad32x64_c
  1419. +
  1420. +unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1421. +#define vpx_sad32x64_avg vpx_sad32x64_avg_c
  1422. +
  1423. +void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1424. +#define vpx_sad32x64x4d vpx_sad32x64x4d_c
  1425. +
  1426. +unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1427. +unsigned int vpx_sad4x4_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1428. +#define vpx_sad4x4 vpx_sad4x4_neon
  1429. +
  1430. +unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1431. +#define vpx_sad4x4_avg vpx_sad4x4_avg_c
  1432. +
  1433. +void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1434. +#define vpx_sad4x4x3 vpx_sad4x4x3_c
  1435. +
  1436. +void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1437. +#define vpx_sad4x4x4d vpx_sad4x4x4d_c
  1438. +
  1439. +void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1440. +#define vpx_sad4x4x8 vpx_sad4x4x8_c
  1441. +
  1442. +unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1443. +#define vpx_sad4x8 vpx_sad4x8_c
  1444. +
  1445. +unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1446. +#define vpx_sad4x8_avg vpx_sad4x8_avg_c
  1447. +
  1448. +void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1449. +#define vpx_sad4x8x4d vpx_sad4x8x4d_c
  1450. +
  1451. +void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1452. +#define vpx_sad4x8x8 vpx_sad4x8x8_c
  1453. +
  1454. +unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1455. +#define vpx_sad64x32 vpx_sad64x32_c
  1456. +
  1457. +unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1458. +#define vpx_sad64x32_avg vpx_sad64x32_avg_c
  1459. +
  1460. +void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1461. +#define vpx_sad64x32x4d vpx_sad64x32x4d_c
  1462. +
  1463. +unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1464. +unsigned int vpx_sad64x64_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1465. +#define vpx_sad64x64 vpx_sad64x64_neon
  1466. +
  1467. +unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1468. +#define vpx_sad64x64_avg vpx_sad64x64_avg_c
  1469. +
  1470. +void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1471. +#define vpx_sad64x64x3 vpx_sad64x64x3_c
  1472. +
  1473. +void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1474. +void vpx_sad64x64x4d_neon(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1475. +#define vpx_sad64x64x4d vpx_sad64x64x4d_neon
  1476. +
  1477. +void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1478. +#define vpx_sad64x64x8 vpx_sad64x64x8_c
  1479. +
  1480. +unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1481. +unsigned int vpx_sad8x16_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1482. +#define vpx_sad8x16 vpx_sad8x16_neon
  1483. +
  1484. +unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1485. +#define vpx_sad8x16_avg vpx_sad8x16_avg_c
  1486. +
  1487. +void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1488. +#define vpx_sad8x16x3 vpx_sad8x16x3_c
  1489. +
  1490. +void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1491. +#define vpx_sad8x16x4d vpx_sad8x16x4d_c
  1492. +
  1493. +void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1494. +#define vpx_sad8x16x8 vpx_sad8x16x8_c
  1495. +
  1496. +unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1497. +#define vpx_sad8x4 vpx_sad8x4_c
  1498. +
  1499. +unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1500. +#define vpx_sad8x4_avg vpx_sad8x4_avg_c
  1501. +
  1502. +void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1503. +#define vpx_sad8x4x4d vpx_sad8x4x4d_c
  1504. +
  1505. +void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1506. +#define vpx_sad8x4x8 vpx_sad8x4x8_c
  1507. +
  1508. +unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1509. +unsigned int vpx_sad8x8_neon(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  1510. +#define vpx_sad8x8 vpx_sad8x8_neon
  1511. +
  1512. +unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  1513. +#define vpx_sad8x8_avg vpx_sad8x8_avg_c
  1514. +
  1515. +void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1516. +#define vpx_sad8x8x3 vpx_sad8x8x3_c
  1517. +
  1518. +void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  1519. +#define vpx_sad8x8x4d vpx_sad8x8x4d_c
  1520. +
  1521. +void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  1522. +#define vpx_sad8x8x8 vpx_sad8x8x8_c
  1523. +
  1524. +int vpx_satd_c(const int16_t *coeff, int length);
  1525. +int vpx_satd_neon(const int16_t *coeff, int length);
  1526. +#define vpx_satd vpx_satd_neon
  1527. +
  1528. +//void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1529. +void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1530. +#define vpx_scaled_2d vpx_scaled_2d_c
  1531. +
  1532. +//void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1533. +void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1534. +#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
  1535. +
  1536. +//void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1537. +void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1538. +#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
  1539. +
  1540. +//void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1541. +void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1542. +#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
  1543. +
  1544. +//void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1545. +void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1546. +#define vpx_scaled_horiz vpx_scaled_horiz_c
  1547. +
  1548. +//void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  1549. +void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
  1550. +#define vpx_scaled_vert vpx_scaled_vert_c
  1551. +
  1552. +uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1553. +#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
  1554. +
  1555. +uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1556. +#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
  1557. +
  1558. +uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1559. +#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
  1560. +
  1561. +uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1562. +#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
  1563. +
  1564. +uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1565. +#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
  1566. +
  1567. +uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1568. +#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
  1569. +
  1570. +uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1571. +#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
  1572. +
  1573. +uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1574. +#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
  1575. +
  1576. +uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1577. +#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
  1578. +
  1579. +uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1580. +#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_c
  1581. +
  1582. +uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1583. +#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
  1584. +
  1585. +uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1586. +#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
  1587. +
  1588. +uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  1589. +#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
  1590. +
  1591. +uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1592. +uint32_t vpx_sub_pixel_variance16x16_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1593. +#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_neon
  1594. +
  1595. +uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1596. +#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
  1597. +
  1598. +uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1599. +#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
  1600. +
  1601. +uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1602. +#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
  1603. +
  1604. +uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1605. +uint32_t vpx_sub_pixel_variance32x32_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1606. +#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_neon
  1607. +
  1608. +uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1609. +#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
  1610. +
  1611. +uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1612. +#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
  1613. +
  1614. +uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1615. +#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
  1616. +
  1617. +uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1618. +#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
  1619. +
  1620. +uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1621. +uint32_t vpx_sub_pixel_variance64x64_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1622. +#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_neon
  1623. +
  1624. +uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1625. +#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
  1626. +
  1627. +uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1628. +#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
  1629. +
  1630. +uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1631. +uint32_t vpx_sub_pixel_variance8x8_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  1632. +#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_neon
  1633. +
  1634. +void vpx_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
  1635. +void vpx_subtract_block_neon(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
  1636. +#define vpx_subtract_block vpx_subtract_block_neon
  1637. +
  1638. +uint64_t vpx_sum_squares_2d_i16_c(const int16_t *src, int stride, int size);
  1639. +#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
  1640. +
  1641. +void vpx_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1642. +void vpx_tm_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1643. +#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_neon
  1644. +
  1645. +void vpx_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1646. +void vpx_tm_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1647. +#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_neon
  1648. +
  1649. +void vpx_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1650. +void vpx_tm_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1651. +#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_neon
  1652. +
  1653. +void vpx_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1654. +void vpx_tm_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1655. +#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_neon
  1656. +
  1657. +void vpx_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1658. +void vpx_v_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1659. +#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_neon
  1660. +
  1661. +void vpx_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1662. +void vpx_v_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1663. +#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_neon
  1664. +
  1665. +void vpx_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1666. +void vpx_v_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1667. +#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_neon
  1668. +
  1669. +void vpx_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1670. +void vpx_v_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1671. +#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_neon
  1672. +
  1673. +unsigned int vpx_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1674. +unsigned int vpx_variance16x16_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1675. +#define vpx_variance16x16 vpx_variance16x16_neon
  1676. +
  1677. +unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1678. +#define vpx_variance16x32 vpx_variance16x32_c
  1679. +
  1680. +unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1681. +unsigned int vpx_variance16x8_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1682. +#define vpx_variance16x8 vpx_variance16x8_neon
  1683. +
  1684. +unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1685. +#define vpx_variance32x16 vpx_variance32x16_c
  1686. +
  1687. +unsigned int vpx_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1688. +unsigned int vpx_variance32x32_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1689. +#define vpx_variance32x32 vpx_variance32x32_neon
  1690. +
  1691. +unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1692. +unsigned int vpx_variance32x64_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1693. +#define vpx_variance32x64 vpx_variance32x64_neon
  1694. +
  1695. +unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1696. +#define vpx_variance4x4 vpx_variance4x4_c
  1697. +
  1698. +unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1699. +#define vpx_variance4x8 vpx_variance4x8_c
  1700. +
  1701. +unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1702. +unsigned int vpx_variance64x32_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1703. +#define vpx_variance64x32 vpx_variance64x32_neon
  1704. +
  1705. +unsigned int vpx_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1706. +unsigned int vpx_variance64x64_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1707. +#define vpx_variance64x64 vpx_variance64x64_neon
  1708. +
  1709. +unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1710. +unsigned int vpx_variance8x16_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1711. +#define vpx_variance8x16 vpx_variance8x16_neon
  1712. +
  1713. +unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1714. +#define vpx_variance8x4 vpx_variance8x4_c
  1715. +
  1716. +unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1717. +unsigned int vpx_variance8x8_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  1718. +#define vpx_variance8x8 vpx_variance8x8_neon
  1719. +
  1720. +uint32_t vpx_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  1721. +#define vpx_variance_halfpixvar16x16_h vpx_variance_halfpixvar16x16_h_c
  1722. +
  1723. +uint32_t vpx_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  1724. +#define vpx_variance_halfpixvar16x16_hv vpx_variance_halfpixvar16x16_hv_c
  1725. +
  1726. +uint32_t vpx_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  1727. +#define vpx_variance_halfpixvar16x16_v vpx_variance_halfpixvar16x16_v_c
  1728. +
  1729. +void vpx_ve_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  1730. +#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
  1731. +
  1732. +int vpx_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
  1733. +int vpx_vector_var_neon(const int16_t *ref, const int16_t *src, const int bwl);
  1734. +#define vpx_vector_var vpx_vector_var_neon
  1735. +
  1736. +void vpx_dsp_rtcd(void);
  1737. +
  1738. +#include "vpx_config.h"
  1739. +
  1740. +#ifdef RTCD_C
  1741. +#include "vpx_ports/arm.h"
  1742. +static void setup_rtcd_internal(void)
  1743. +{
  1744. +    int flags = arm_cpu_caps();
  1745. +
  1746. +    (void)flags;
  1747. +
  1748. +}
  1749. +#endif
  1750. +
  1751. +#ifdef __cplusplus
  1752. +}  // extern "C"
  1753. +#endif
  1754. +
  1755. +#endif
  1756. diff --git a/libvpx/source/config/win/arm-neon/vpx_scale_rtcd.h b/libvpx/source/config/win/arm-neon/vpx_scale_rtcd.h
  1757. new file mode 100644
  1758. index 00000000000..7dd8ee39fda
  1759. --- /dev/null
  1760. +++ b/libvpx/source/config/win/arm-neon/vpx_scale_rtcd.h
  1761. @@ -0,0 +1,75 @@
  1762. +#ifndef VPX_SCALE_RTCD_H_
  1763. +#define VPX_SCALE_RTCD_H_
  1764. +
  1765. +#ifdef RTCD_C
  1766. +#define RTCD_EXTERN
  1767. +#else
  1768. +#define RTCD_EXTERN extern
  1769. +#endif
  1770. +
  1771. +struct yv12_buffer_config;
  1772. +
  1773. +#ifdef __cplusplus
  1774. +extern "C" {
  1775. +#endif
  1776. +
  1777. +void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  1778. +#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
  1779. +
  1780. +void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  1781. +#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
  1782. +
  1783. +void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  1784. +#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
  1785. +
  1786. +void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  1787. +#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
  1788. +
  1789. +void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  1790. +#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
  1791. +
  1792. +void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  1793. +#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
  1794. +
  1795. +void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  1796. +#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
  1797. +
  1798. +void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  1799. +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
  1800. +
  1801. +void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  1802. +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
  1803. +
  1804. +void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  1805. +#define vpx_extend_frame_borders vpx_extend_frame_borders_c
  1806. +
  1807. +void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
  1808. +#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
  1809. +
  1810. +void vpx_yv12_copy_frame_c(const struct yv12_buffer_config* src_ybc,
  1811. +                           struct yv12_buffer_config* dst_ybc);
  1812. +#define vpx_yv12_copy_frame vpx_yv12_copy_frame_c
  1813. +
  1814. +void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  1815. +#define vpx_yv12_copy_y vpx_yv12_copy_y_c
  1816. +
  1817. +void vpx_scale_rtcd(void);
  1818. +
  1819. +#include "vpx_config.h"
  1820. +
  1821. +#ifdef RTCD_C
  1822. +#include "vpx_ports/arm.h"
  1823. +static void setup_rtcd_internal(void)
  1824. +{
  1825. +    int flags = arm_cpu_caps();
  1826. +
  1827. +    (void)flags;
  1828. +
  1829. +}
  1830. +#endif
  1831. +
  1832. +#ifdef __cplusplus
  1833. +}  // extern "C"
  1834. +#endif
  1835. +
  1836. +#endif
  1837. diff --git a/libvpx/source/config/win/arm/vp8_rtcd.h b/libvpx/source/config/win/arm/vp8_rtcd.h
  1838. new file mode 100644
  1839. index 00000000000..ca692f7eae6
  1840. --- /dev/null
  1841. +++ b/libvpx/source/config/win/arm/vp8_rtcd.h
  1842. @@ -0,0 +1,189 @@
  1843. +#ifndef VP8_RTCD_H_
  1844. +#define VP8_RTCD_H_
  1845. +
  1846. +#ifdef RTCD_C
  1847. +#define RTCD_EXTERN
  1848. +#else
  1849. +#define RTCD_EXTERN extern
  1850. +#endif
  1851. +
  1852. +/*
  1853. + * VP8
  1854. + */
  1855. +
  1856. +struct blockd;
  1857. +struct macroblockd;
  1858. +struct loop_filter_info;
  1859. +
  1860. +/* Encoder forward decls */
  1861. +struct block;
  1862. +struct macroblock;
  1863. +struct variance_vtable;
  1864. +union int_mv;
  1865. +struct yv12_buffer_config;
  1866. +
  1867. +#ifdef __cplusplus
  1868. +extern "C" {
  1869. +#endif
  1870. +
  1871. +void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  1872. +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_c
  1873. +
  1874. +void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  1875. +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c
  1876. +
  1877. +void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  1878. +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_c
  1879. +
  1880. +void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  1881. +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_c
  1882. +
  1883. +void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  1884. +#define vp8_blend_b vp8_blend_b_c
  1885. +
  1886. +void vp8_blend_mb_inner_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  1887. +#define vp8_blend_mb_inner vp8_blend_mb_inner_c
  1888. +
  1889. +void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  1890. +#define vp8_blend_mb_outer vp8_blend_mb_outer_c
  1891. +
  1892. +int vp8_block_error_c(short *coeff, short *dqcoeff);
  1893. +#define vp8_block_error vp8_block_error_c
  1894. +
  1895. +void vp8_clear_system_state_c();
  1896. +#define vp8_clear_system_state vp8_clear_system_state_c
  1897. +
  1898. +void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  1899. +#define vp8_copy_mem16x16 vp8_copy_mem16x16_c
  1900. +
  1901. +void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  1902. +#define vp8_copy_mem8x4 vp8_copy_mem8x4_c
  1903. +
  1904. +void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  1905. +#define vp8_copy_mem8x8 vp8_copy_mem8x8_c
  1906. +
  1907. +void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
  1908. +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_c
  1909. +
  1910. +int vp8_denoiser_filter_c(unsigned char *mc_running_avg_y, int mc_avg_y_stride, unsigned char *running_avg_y, int avg_y_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  1911. +#define vp8_denoiser_filter vp8_denoiser_filter_c
  1912. +
  1913. +int vp8_denoiser_filter_uv_c(unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  1914. +#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_c
  1915. +
  1916. +void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
  1917. +#define vp8_dequant_idct_add vp8_dequant_idct_add_c
  1918. +
  1919. +void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
  1920. +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_c
  1921. +
  1922. +void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
  1923. +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_c
  1924. +
  1925. +void vp8_dequantize_b_c(struct blockd*, short *dqc);
  1926. +#define vp8_dequantize_b vp8_dequantize_b_c
  1927. +
  1928. +int vp8_diamond_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  1929. +#define vp8_diamond_search_sad vp8_diamond_search_sad_c
  1930. +
  1931. +void vp8_fast_quantize_b_c(struct block *, struct blockd *);
  1932. +#define vp8_fast_quantize_b vp8_fast_quantize_b_c
  1933. +
  1934. +void vp8_filter_by_weight16x16_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  1935. +#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
  1936. +
  1937. +void vp8_filter_by_weight4x4_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  1938. +#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
  1939. +
  1940. +void vp8_filter_by_weight8x8_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  1941. +#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
  1942. +
  1943. +int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  1944. +#define vp8_full_search_sad vp8_full_search_sad_c
  1945. +
  1946. +void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  1947. +#define vp8_loop_filter_bh vp8_loop_filter_bh_c
  1948. +
  1949. +void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  1950. +#define vp8_loop_filter_bv vp8_loop_filter_bv_c
  1951. +
  1952. +void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  1953. +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_c
  1954. +
  1955. +void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  1956. +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_c
  1957. +
  1958. +void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  1959. +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c
  1960. +
  1961. +void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  1962. +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c
  1963. +
  1964. +void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  1965. +#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c
  1966. +
  1967. +void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  1968. +#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c
  1969. +
  1970. +int vp8_mbblock_error_c(struct macroblock *mb, int dc);
  1971. +#define vp8_mbblock_error vp8_mbblock_error_c
  1972. +
  1973. +int vp8_mbuverror_c(struct macroblock *mb);
  1974. +#define vp8_mbuverror vp8_mbuverror_c
  1975. +
  1976. +int vp8_refining_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  1977. +#define vp8_refining_search_sad vp8_refining_search_sad_c
  1978. +
  1979. +void vp8_regular_quantize_b_c(struct block *, struct blockd *);
  1980. +#define vp8_regular_quantize_b vp8_regular_quantize_b_c
  1981. +
  1982. +void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
  1983. +#define vp8_short_fdct4x4 vp8_short_fdct4x4_c
  1984. +
  1985. +void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
  1986. +#define vp8_short_fdct8x4 vp8_short_fdct8x4_c
  1987. +
  1988. +void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
  1989. +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_c
  1990. +
  1991. +void vp8_short_inv_walsh4x4_c(short *input, short *output);
  1992. +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_c
  1993. +
  1994. +void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
  1995. +#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
  1996. +
  1997. +void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
  1998. +#define vp8_short_walsh4x4 vp8_short_walsh4x4_c
  1999. +
  2000. +void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  2001. +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_c
  2002. +
  2003. +void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  2004. +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_c
  2005. +
  2006. +void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  2007. +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_c
  2008. +
  2009. +void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  2010. +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_c
  2011. +
  2012. +void vp8_rtcd(void);
  2013. +
  2014. +#include "vpx_config.h"
  2015. +
  2016. +#ifdef RTCD_C
  2017. +#include "vpx_ports/arm.h"
  2018. +static void setup_rtcd_internal(void)
  2019. +{
  2020. +    int flags = arm_cpu_caps();
  2021. +
  2022. +    (void)flags;
  2023. +
  2024. +}
  2025. +#endif
  2026. +
  2027. +#ifdef __cplusplus
  2028. +}  // extern "C"
  2029. +#endif
  2030. +
  2031. +#endif
  2032. diff --git a/libvpx/source/config/win/arm/vp9_rtcd.h b/libvpx/source/config/win/arm/vp9_rtcd.h
  2033. new file mode 100644
  2034. index 00000000000..7c8a3798ca5
  2035. --- /dev/null
  2036. +++ b/libvpx/source/config/win/arm/vp9_rtcd.h
  2037. @@ -0,0 +1,121 @@
  2038. +#ifndef VP9_RTCD_H_
  2039. +#define VP9_RTCD_H_
  2040. +
  2041. +#ifdef RTCD_C
  2042. +#define RTCD_EXTERN
  2043. +#else
  2044. +#define RTCD_EXTERN extern
  2045. +#endif
  2046. +
  2047. +/*
  2048. + * VP9
  2049. + */
  2050. +
  2051. +#include "vpx/vpx_integer.h"
  2052. +#include "vp9/common/vp9_common.h"
  2053. +#include "vp9/common/vp9_enums.h"
  2054. +
  2055. +struct macroblockd;
  2056. +
  2057. +/* Encoder forward decls */
  2058. +struct macroblock;
  2059. +struct vp9_variance_vtable;
  2060. +struct search_site_config;
  2061. +struct mv;
  2062. +union int_mv;
  2063. +struct yv12_buffer_config;
  2064. +
  2065. +#ifdef __cplusplus
  2066. +extern "C" {
  2067. +#endif
  2068. +
  2069. +int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
  2070. +#define vp9_block_error vp9_block_error_c
  2071. +
  2072. +int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
  2073. +#define vp9_block_error_fp vp9_block_error_fp_c
  2074. +
  2075. +int vp9_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BLOCK_SIZE bs, int motion_magnitude);
  2076. +#define vp9_denoiser_filter vp9_denoiser_filter_c
  2077. +
  2078. +int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg,  struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
  2079. +#define vp9_diamond_search_sad vp9_diamond_search_sad_c
  2080. +
  2081. +
  2082. +void vp9_fdct8x8_quant_c(const int16_t* input,
  2083. +                         int stride,
  2084. +                         tran_low_t* coeff_ptr,
  2085. +                         intptr_t n_coeffs,
  2086. +                         int skip_block,
  2087. +                         const int16_t* round_ptr,
  2088. +                         const int16_t* quant_ptr,
  2089. +                         tran_low_t* qcoeff_ptr,
  2090. +                         tran_low_t* dqcoeff_ptr,
  2091. +                         const int16_t* dequant_ptr,
  2092. +                         uint16_t* eob_ptr,
  2093. +                         const int16_t* scan,
  2094. +                         const int16_t* iscan);
  2095. +#define vp9_fdct8x8_quant vp9_fdct8x8_quant_c
  2096. +
  2097. +void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  2098. +#define vp9_fht16x16 vp9_fht16x16_c
  2099. +
  2100. +void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  2101. +#define vp9_fht4x4 vp9_fht4x4_c
  2102. +
  2103. +void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  2104. +#define vp9_fht8x8 vp9_fht8x8_c
  2105. +
  2106. +void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  2107. +#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
  2108. +
  2109. +void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  2110. +#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
  2111. +
  2112. +int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
  2113. +#define vp9_full_search_sad vp9_full_search_sad_c
  2114. +
  2115. +void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
  2116. +#define vp9_fwht4x4 vp9_fwht4x4_c
  2117. +
  2118. +void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
  2119. +#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
  2120. +
  2121. +void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  2122. +#define vp9_iht4x4_16_add vp9_iht4x4_16_add_c
  2123. +
  2124. +void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  2125. +#define vp9_iht8x8_64_add vp9_iht8x8_64_add_c
  2126. +
  2127. +void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  2128. +#define vp9_quantize_fp vp9_quantize_fp_c
  2129. +
  2130. +void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  2131. +#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
  2132. +
  2133. +void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
  2134. +#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c
  2135. +
  2136. +void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
  2137. +#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
  2138. +
  2139. +void vp9_rtcd(void);
  2140. +
  2141. +#include "vpx_config.h"
  2142. +
  2143. +#ifdef RTCD_C
  2144. +#include "vpx_ports/arm.h"
  2145. +static void setup_rtcd_internal(void)
  2146. +{
  2147. +    int flags = arm_cpu_caps();
  2148. +
  2149. +    (void)flags;
  2150. +
  2151. +}
  2152. +#endif
  2153. +
  2154. +#ifdef __cplusplus
  2155. +}  // extern "C"
  2156. +#endif
  2157. +
  2158. +#endif
  2159. diff --git a/libvpx/source/config/win/arm/vpx_config.asm b/libvpx/source/config/win/arm/vpx_config.asm
  2160. new file mode 100644
  2161. index 00000000000..b2eee3b72b6
  2162. --- /dev/null
  2163. +++ b/libvpx/source/config/win/arm/vpx_config.asm
  2164. @@ -0,0 +1,83 @@
  2165. +ARCH_ARM * 1
  2166. +ARCH_MIPS * 0
  2167. +ARCH_X86 * 0
  2168. +ARCH_X86_64 * 0
  2169. +HAVE_NEON * 0
  2170. +HAVE_NEON_ASM * 0
  2171. +HAVE_MIPS32 * 0
  2172. +HAVE_DSPR2 * 0
  2173. +HAVE_MSA * 0
  2174. +HAVE_MIPS64 * 0
  2175. +HAVE_MMX * 0
  2176. +HAVE_SSE * 0
  2177. +HAVE_SSE2 * 0
  2178. +HAVE_SSE3 * 0
  2179. +HAVE_SSSE3 * 0
  2180. +HAVE_SSE4_1 * 0
  2181. +HAVE_AVX * 0
  2182. +HAVE_AVX2 * 0
  2183. +HAVE_VPX_PORTS * 1
  2184. +HAVE_STDINT_H * 0
  2185. +HAVE_PTHREAD_H * 0
  2186. +HAVE_SYS_MMAN_H * 0
  2187. +HAVE_UNISTD_H * 0
  2188. +CONFIG_DEPENDENCY_TRACKING * 1
  2189. +CONFIG_EXTERNAL_BUILD * 1
  2190. +CONFIG_INSTALL_DOCS * 0
  2191. +CONFIG_INSTALL_BINS * 1
  2192. +CONFIG_INSTALL_LIBS * 1
  2193. +CONFIG_INSTALL_SRCS * 0
  2194. +CONFIG_DEBUG * 0
  2195. +CONFIG_GPROF * 0
  2196. +CONFIG_GCOV * 0
  2197. +CONFIG_RVCT * 0
  2198. +CONFIG_GCC * 0
  2199. +CONFIG_MSVS * 1
  2200. +CONFIG_PIC * 0
  2201. +CONFIG_BIG_ENDIAN * 0
  2202. +CONFIG_CODEC_SRCS * 0
  2203. +CONFIG_DEBUG_LIBS * 0
  2204. +CONFIG_DEQUANT_TOKENS * 0
  2205. +CONFIG_DC_RECON * 0
  2206. +CONFIG_RUNTIME_CPU_DETECT * 0
  2207. +CONFIG_POSTPROC *1
  2208. +CONFIG_VP9_POSTPROC * 0
  2209. +CONFIG_MULTITHREAD * 1
  2210. +CONFIG_INTERNAL_STATS * 0
  2211. +CONFIG_VP8_ENCODER * 1
  2212. +CONFIG_VP8_DECODER * 1
  2213. +CONFIG_VP9_ENCODER * 1
  2214. +CONFIG_VP9_DECODER * 1
  2215. +CONFIG_VP8 * 1
  2216. +CONFIG_VP9 * 1
  2217. +CONFIG_ENCODERS * 1
  2218. +CONFIG_DECODERS * 1
  2219. +CONFIG_STATIC_MSVCRT * 0
  2220. +CONFIG_SPATIAL_RESAMPLING * 1
  2221. +CONFIG_REALTIME_ONLY * 1
  2222. +CONFIG_ONTHEFLY_BITPACKING * 0
  2223. +CONFIG_ERROR_CONCEALMENT * 0
  2224. +CONFIG_SHARED * 0
  2225. +CONFIG_STATIC * 1
  2226. +CONFIG_SMALL * 0
  2227. +CONFIG_POSTPROC_VISUALIZER * 0
  2228. +CONFIG_OS_SUPPORT * 1
  2229. +CONFIG_UNIT_TESTS * 0
  2230. +CONFIG_WEBM_IO * 1
  2231. +CONFIG_LIBYUV * 1
  2232. +CONFIG_DECODE_PERF_TESTS * 0
  2233. +CONFIG_ENCODE_PERF_TESTS * 0
  2234. +CONFIG_MULTI_RES_ENCODING * 1
  2235. +CONFIG_TEMPORAL_DENOISING * 1
  2236. +CONFIG_VP9_TEMPORAL_DENOISING * 1
  2237. +CONFIG_COEFFICIENT_RANGE_CHECKING * 0
  2238. +CONFIG_VP9_HIGHBITDEPTH * 0
  2239. +CONFIG_BETTER_HW_COMPATIBILITY * 0
  2240. +CONFIG_EXPERIMENTAL * 0
  2241. +CONFIG_SIZE_LIMIT * 1
  2242. +CONFIG_SPATIAL_SVC * 0
  2243. +CONFIG_FP_MB_STATS * 0
  2244. +CONFIG_EMULATE_HARDWARE * 0
  2245. +CONFIG_MISC_FIXES * 0
  2246. +DECODE_WIDTH_LIMIT * 16384
  2247. +DECODE_HEIGHT_LIMIT * 16384
  2248. diff --git a/libvpx/source/config/win/arm/vpx_config.c b/libvpx/source/config/win/arm/vpx_config.c
  2249. new file mode 100644
  2250. index 00000000000..e9008dfac37
  2251. --- /dev/null
  2252. +++ b/libvpx/source/config/win/arm/vpx_config.c
  2253. @@ -0,0 +1,10 @@
  2254. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  2255. +/*  */
  2256. +/* Use of this source code is governed by a BSD-style license */
  2257. +/* that can be found in the LICENSE file in the root of the source */
  2258. +/* tree. An additional intellectual property rights grant can be found */
  2259. +/* in the file PATENTS.  All contributing project authors may */
  2260. +/* be found in the AUTHORS file in the root of the source tree. */
  2261. +#include "vpx/vpx_codec.h"
  2262. +static const char* const cfg = "--target=armv7-win-vs12 --enable-realtime-only --disable-neon --enable-external-build --enable-postproc --disable-install-srcs --enable-multi-res-encoding --enable-temporal-denoising --disable-unit-tests --disable-install-docs --disable-examples --enable-vp9-temporal-denoising";
  2263. +const char *vpx_codec_build_config(void) {return cfg;}
  2264. diff --git a/libvpx/source/config/win/arm/vpx_config.h b/libvpx/source/config/win/arm/vpx_config.h
  2265. new file mode 100644
  2266. index 00000000000..46e038f38e9
  2267. --- /dev/null
  2268. +++ b/libvpx/source/config/win/arm/vpx_config.h
  2269. @@ -0,0 +1,96 @@
  2270. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  2271. +/*  */
  2272. +/* Use of this source code is governed by a BSD-style license */
  2273. +/* that can be found in the LICENSE file in the root of the source */
  2274. +/* tree. An additional intellectual property rights grant can be found */
  2275. +/* in the file PATENTS.  All contributing project authors may */
  2276. +/* be found in the AUTHORS file in the root of the source tree. */
  2277. +/* This file automatically generated by configure. Do not edit! */
  2278. +#ifndef VPX_CONFIG_H
  2279. +#define VPX_CONFIG_H
  2280. +#define RESTRICT    
  2281. +#define INLINE      __forceinline
  2282. +#define ARCH_ARM 1
  2283. +#define ARCH_MIPS 0
  2284. +#define ARCH_X86 0
  2285. +#define ARCH_X86_64 0
  2286. +#define HAVE_NEON 0
  2287. +#define HAVE_NEON_ASM 0
  2288. +#define HAVE_MIPS32 0
  2289. +#define HAVE_DSPR2 0
  2290. +#define HAVE_MSA 0
  2291. +#define HAVE_MIPS64 0
  2292. +#define HAVE_MMX 0
  2293. +#define HAVE_SSE 0
  2294. +#define HAVE_SSE2 0
  2295. +#define HAVE_SSE3 0
  2296. +#define HAVE_SSSE3 0
  2297. +#define HAVE_SSE4_1 0
  2298. +#define HAVE_AVX 0
  2299. +#define HAVE_AVX2 0
  2300. +#define HAVE_VPX_PORTS 1
  2301. +#define HAVE_STDINT_H 0
  2302. +#define HAVE_PTHREAD_H 0
  2303. +#define HAVE_SYS_MMAN_H 0
  2304. +#define HAVE_UNISTD_H 0
  2305. +#define CONFIG_DEPENDENCY_TRACKING 1
  2306. +#define CONFIG_EXTERNAL_BUILD 1
  2307. +#define CONFIG_INSTALL_DOCS 0
  2308. +#define CONFIG_INSTALL_BINS 1
  2309. +#define CONFIG_INSTALL_LIBS 1
  2310. +#define CONFIG_INSTALL_SRCS 0
  2311. +#define CONFIG_DEBUG 0
  2312. +#define CONFIG_GPROF 0
  2313. +#define CONFIG_GCOV 0
  2314. +#define CONFIG_RVCT 0
  2315. +#define CONFIG_GCC 0
  2316. +#define CONFIG_MSVS 1
  2317. +#define CONFIG_PIC 0
  2318. +#define CONFIG_BIG_ENDIAN 0
  2319. +#define CONFIG_CODEC_SRCS 0
  2320. +#define CONFIG_DEBUG_LIBS 0
  2321. +#define CONFIG_DEQUANT_TOKENS 0
  2322. +#define CONFIG_DC_RECON 0
  2323. +#define CONFIG_RUNTIME_CPU_DETECT 0
  2324. +#define CONFIG_POSTPROC 1
  2325. +#define CONFIG_VP9_POSTPROC 1
  2326. +#define CONFIG_MULTITHREAD 1
  2327. +#define CONFIG_INTERNAL_STATS 0
  2328. +#define CONFIG_VP8_ENCODER 1
  2329. +#define CONFIG_VP8_DECODER 1
  2330. +#define CONFIG_VP9_ENCODER 1
  2331. +#define CONFIG_VP9_DECODER 1
  2332. +#define CONFIG_VP8 1
  2333. +#define CONFIG_VP9 1
  2334. +#define CONFIG_ENCODERS 1
  2335. +#define CONFIG_DECODERS 1
  2336. +#define CONFIG_STATIC_MSVCRT 0
  2337. +#define CONFIG_SPATIAL_RESAMPLING 1
  2338. +#define CONFIG_REALTIME_ONLY 1
  2339. +#define CONFIG_ONTHEFLY_BITPACKING 0
  2340. +#define CONFIG_ERROR_CONCEALMENT 0
  2341. +#define CONFIG_SHARED 0
  2342. +#define CONFIG_STATIC 1
  2343. +#define CONFIG_SMALL 0
  2344. +#define CONFIG_POSTPROC_VISUALIZER 0
  2345. +#define CONFIG_OS_SUPPORT 1
  2346. +#define CONFIG_UNIT_TESTS 0
  2347. +#define CONFIG_WEBM_IO 1
  2348. +#define CONFIG_LIBYUV 1
  2349. +#define CONFIG_DECODE_PERF_TESTS 0
  2350. +#define CONFIG_ENCODE_PERF_TESTS 0
  2351. +#define CONFIG_MULTI_RES_ENCODING 1
  2352. +#define CONFIG_TEMPORAL_DENOISING 1
  2353. +#define CONFIG_VP9_TEMPORAL_DENOISING 1
  2354. +#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
  2355. +#define CONFIG_VP9_HIGHBITDEPTH 0
  2356. +#define CONFIG_BETTER_HW_COMPATIBILITY 0
  2357. +#define CONFIG_EXPERIMENTAL 0
  2358. +#define CONFIG_SIZE_LIMIT 1
  2359. +#define CONFIG_SPATIAL_SVC 0
  2360. +#define CONFIG_FP_MB_STATS 0
  2361. +#define CONFIG_EMULATE_HARDWARE 0
  2362. +#define CONFIG_MISC_FIXES 0
  2363. +#define DECODE_WIDTH_LIMIT 16384
  2364. +#define DECODE_HEIGHT_LIMIT 16384
  2365. +#endif /* VPX_CONFIG_H */
  2366. diff --git a/libvpx/source/config/win/arm/vpx_dsp_rtcd.h b/libvpx/source/config/win/arm/vpx_dsp_rtcd.h
  2367. new file mode 100644
  2368. index 00000000000..5b626df70d7
  2369. --- /dev/null
  2370. +++ b/libvpx/source/config/win/arm/vpx_dsp_rtcd.h
  2371. @@ -0,0 +1,761 @@
  2372. +#ifndef VPX_DSP_RTCD_H_
  2373. +#define VPX_DSP_RTCD_H_
  2374. +
  2375. +#ifdef RTCD_C
  2376. +#define RTCD_EXTERN
  2377. +#else
  2378. +#define RTCD_EXTERN extern
  2379. +#endif
  2380. +
  2381. +/*
  2382. + * DSP
  2383. + */
  2384. +
  2385. +#include "vpx/vpx_integer.h"
  2386. +#include "vpx_dsp/vpx_dsp_common.h"
  2387. +
  2388. +
  2389. +#ifdef __cplusplus
  2390. +extern "C" {
  2391. +#endif
  2392. +
  2393. +unsigned int vpx_avg_4x4_c(const uint8_t *, int p);
  2394. +#define vpx_avg_4x4 vpx_avg_4x4_c
  2395. +
  2396. +unsigned int vpx_avg_8x8_c(const uint8_t *, int p);
  2397. +#define vpx_avg_8x8 vpx_avg_8x8_c
  2398. +
  2399. +void vpx_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
  2400. +#define vpx_comp_avg_pred vpx_comp_avg_pred_c
  2401. +
  2402. +void vpx_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2403. +#define vpx_convolve8 vpx_convolve8_c
  2404. +
  2405. +void vpx_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2406. +#define vpx_convolve8_avg vpx_convolve8_avg_c
  2407. +
  2408. +void vpx_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2409. +#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_c
  2410. +
  2411. +void vpx_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2412. +#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_c
  2413. +
  2414. +void vpx_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2415. +#define vpx_convolve8_horiz vpx_convolve8_horiz_c
  2416. +
  2417. +void vpx_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2418. +#define vpx_convolve8_vert vpx_convolve8_vert_c
  2419. +
  2420. +void vpx_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2421. +#define vpx_convolve_avg vpx_convolve_avg_c
  2422. +
  2423. +void vpx_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2424. +#define vpx_convolve_copy vpx_convolve_copy_c
  2425. +
  2426. +void vpx_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2427. +#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
  2428. +
  2429. +void vpx_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2430. +#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
  2431. +
  2432. +void vpx_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2433. +#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
  2434. +
  2435. +void vpx_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2436. +#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
  2437. +
  2438. +void vpx_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2439. +#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
  2440. +
  2441. +void vpx_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2442. +#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
  2443. +
  2444. +void vpx_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2445. +#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_c
  2446. +
  2447. +void vpx_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2448. +#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
  2449. +
  2450. +void vpx_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2451. +#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
  2452. +
  2453. +void vpx_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2454. +#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
  2455. +
  2456. +void vpx_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2457. +#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
  2458. +
  2459. +void vpx_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2460. +#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
  2461. +
  2462. +void vpx_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2463. +#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
  2464. +
  2465. +void vpx_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2466. +#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
  2467. +
  2468. +void vpx_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2469. +#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
  2470. +
  2471. +void vpx_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2472. +#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
  2473. +
  2474. +void vpx_d207e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2475. +#define vpx_d207e_predictor_16x16 vpx_d207e_predictor_16x16_c
  2476. +
  2477. +void vpx_d207e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2478. +#define vpx_d207e_predictor_32x32 vpx_d207e_predictor_32x32_c
  2479. +
  2480. +void vpx_d207e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2481. +#define vpx_d207e_predictor_4x4 vpx_d207e_predictor_4x4_c
  2482. +
  2483. +void vpx_d207e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2484. +#define vpx_d207e_predictor_8x8 vpx_d207e_predictor_8x8_c
  2485. +
  2486. +void vpx_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2487. +#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_c
  2488. +
  2489. +void vpx_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2490. +#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
  2491. +
  2492. +void vpx_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2493. +#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_c
  2494. +
  2495. +void vpx_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2496. +#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_c
  2497. +
  2498. +void vpx_d45e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2499. +#define vpx_d45e_predictor_16x16 vpx_d45e_predictor_16x16_c
  2500. +
  2501. +void vpx_d45e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2502. +#define vpx_d45e_predictor_32x32 vpx_d45e_predictor_32x32_c
  2503. +
  2504. +void vpx_d45e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2505. +#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
  2506. +
  2507. +void vpx_d45e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2508. +#define vpx_d45e_predictor_8x8 vpx_d45e_predictor_8x8_c
  2509. +
  2510. +void vpx_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2511. +#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
  2512. +
  2513. +void vpx_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2514. +#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
  2515. +
  2516. +void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2517. +#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
  2518. +
  2519. +void vpx_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2520. +#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
  2521. +
  2522. +void vpx_d63e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2523. +#define vpx_d63e_predictor_16x16 vpx_d63e_predictor_16x16_c
  2524. +
  2525. +void vpx_d63e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2526. +#define vpx_d63e_predictor_32x32 vpx_d63e_predictor_32x32_c
  2527. +
  2528. +void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2529. +#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
  2530. +
  2531. +void vpx_d63e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2532. +#define vpx_d63e_predictor_8x8 vpx_d63e_predictor_8x8_c
  2533. +
  2534. +void vpx_d63f_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2535. +#define vpx_d63f_predictor_4x4 vpx_d63f_predictor_4x4_c
  2536. +
  2537. +void vpx_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2538. +#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_c
  2539. +
  2540. +void vpx_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2541. +#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_c
  2542. +
  2543. +void vpx_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2544. +#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_c
  2545. +
  2546. +void vpx_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2547. +#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_c
  2548. +
  2549. +void vpx_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2550. +#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_c
  2551. +
  2552. +void vpx_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2553. +#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_c
  2554. +
  2555. +void vpx_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2556. +#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_c
  2557. +
  2558. +void vpx_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2559. +#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_c
  2560. +
  2561. +void vpx_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2562. +#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_c
  2563. +
  2564. +void vpx_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2565. +#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_c
  2566. +
  2567. +void vpx_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2568. +#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_c
  2569. +
  2570. +void vpx_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2571. +#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_c
  2572. +
  2573. +void vpx_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2574. +#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_c
  2575. +
  2576. +void vpx_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2577. +#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_c
  2578. +
  2579. +void vpx_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2580. +#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_c
  2581. +
  2582. +void vpx_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2583. +#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_c
  2584. +
  2585. +void vpx_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
  2586. +#define vpx_fdct16x16 vpx_fdct16x16_c
  2587. +
  2588. +void vpx_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
  2589. +#define vpx_fdct16x16_1 vpx_fdct16x16_1_c
  2590. +
  2591. +void vpx_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
  2592. +#define vpx_fdct32x32 vpx_fdct32x32_c
  2593. +
  2594. +void vpx_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
  2595. +#define vpx_fdct32x32_1 vpx_fdct32x32_1_c
  2596. +
  2597. +void vpx_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
  2598. +#define vpx_fdct32x32_rd vpx_fdct32x32_rd_c
  2599. +
  2600. +void vpx_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
  2601. +#define vpx_fdct4x4 vpx_fdct4x4_c
  2602. +
  2603. +void vpx_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
  2604. +#define vpx_fdct4x4_1 vpx_fdct4x4_1_c
  2605. +
  2606. +void vpx_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
  2607. +#define vpx_fdct8x8 vpx_fdct8x8_c
  2608. +
  2609. +void vpx_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
  2610. +#define vpx_fdct8x8_1 vpx_fdct8x8_1_c
  2611. +
  2612. +void vpx_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  2613. +#define vpx_get16x16var vpx_get16x16var_c
  2614. +
  2615. +unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
  2616. +#define vpx_get4x4sse_cs vpx_get4x4sse_cs_c
  2617. +
  2618. +void vpx_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  2619. +#define vpx_get8x8var vpx_get8x8var_c
  2620. +
  2621. +unsigned int vpx_get_mb_ss_c(const int16_t *);
  2622. +#define vpx_get_mb_ss vpx_get_mb_ss_c
  2623. +
  2624. +void vpx_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2625. +#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_c
  2626. +
  2627. +void vpx_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2628. +#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_c
  2629. +
  2630. +void vpx_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2631. +#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_c
  2632. +
  2633. +void vpx_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2634. +#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_c
  2635. +
  2636. +void vpx_hadamard_16x16_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  2637. +#define vpx_hadamard_16x16 vpx_hadamard_16x16_c
  2638. +
  2639. +void vpx_hadamard_8x8_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  2640. +#define vpx_hadamard_8x8 vpx_hadamard_8x8_c
  2641. +
  2642. +void vpx_he_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  2643. +#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
  2644. +
  2645. +void vpx_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2646. +#define vpx_idct16x16_10_add vpx_idct16x16_10_add_c
  2647. +
  2648. +void vpx_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2649. +#define vpx_idct16x16_1_add vpx_idct16x16_1_add_c
  2650. +
  2651. +void vpx_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2652. +#define vpx_idct16x16_256_add vpx_idct16x16_256_add_c
  2653. +
  2654. +void vpx_idct16x16_38_add_c(const tran_low_t* input, uint8_t* dest, int dest_stride);
  2655. +#define vpx_idct16x16_38_add vpx_idct16x16_38_add_c
  2656. +
  2657. +void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2658. +#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_c
  2659. +
  2660. +void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2661. +#define vpx_idct32x32_135_add vpx_idct32x32_135_add_c
  2662. +
  2663. +void vpx_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2664. +#define vpx_idct32x32_1_add vpx_idct32x32_1_add_c
  2665. +
  2666. +void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2667. +#define vpx_idct32x32_34_add vpx_idct32x32_34_add_c
  2668. +
  2669. +void vpx_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2670. +#define vpx_idct4x4_16_add vpx_idct4x4_16_add_c
  2671. +
  2672. +void vpx_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2673. +#define vpx_idct4x4_1_add vpx_idct4x4_1_add_c
  2674. +
  2675. +void vpx_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2676. +#define vpx_idct8x8_12_add vpx_idct8x8_12_add_c
  2677. +
  2678. +void vpx_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2679. +#define vpx_idct8x8_1_add vpx_idct8x8_1_add_c
  2680. +
  2681. +void vpx_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2682. +#define vpx_idct8x8_64_add vpx_idct8x8_64_add_c
  2683. +
  2684. +int16_t vpx_int_pro_col_c(const uint8_t *ref, const int width);
  2685. +#define vpx_int_pro_col vpx_int_pro_col_c
  2686. +
  2687. +void vpx_int_pro_row_c(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
  2688. +#define vpx_int_pro_row vpx_int_pro_row_c
  2689. +
  2690. +void vpx_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2691. +#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
  2692. +
  2693. +void vpx_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  2694. +#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
  2695. +
  2696. +void vpx_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2697. +#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_c
  2698. +
  2699. +void vpx_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  2700. +#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_c
  2701. +
  2702. +void vpx_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2703. +#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_c
  2704. +
  2705. +void vpx_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  2706. +#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_c
  2707. +
  2708. +void vpx_lpf_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2709. +#define vpx_lpf_horizontal_edge_16 vpx_lpf_horizontal_edge_16_c
  2710. +
  2711. +void vpx_lpf_horizontal_edge_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2712. +#define vpx_lpf_horizontal_edge_8 vpx_lpf_horizontal_edge_8_c
  2713. +
  2714. +void vpx_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2715. +#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_c
  2716. +
  2717. +void vpx_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2718. +#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_c
  2719. +
  2720. +void vpx_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2721. +#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_c
  2722. +
  2723. +void vpx_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  2724. +#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_c
  2725. +
  2726. +void vpx_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  2727. +#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_c
  2728. +
  2729. +void vpx_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  2730. +#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_c
  2731. +
  2732. +void vpx_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  2733. +#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_c
  2734. +
  2735. +void vpx_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  2736. +#define vpx_mbpost_proc_down vpx_mbpost_proc_down_c
  2737. +
  2738. +void vpx_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
  2739. +#define vpx_minmax_8x8 vpx_minmax_8x8_c
  2740. +
  2741. +unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  2742. +#define vpx_mse16x16 vpx_mse16x16_c
  2743. +
  2744. +unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  2745. +#define vpx_mse16x8 vpx_mse16x8_c
  2746. +
  2747. +unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  2748. +#define vpx_mse8x16 vpx_mse8x16_c
  2749. +
  2750. +unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  2751. +#define vpx_mse8x8 vpx_mse8x8_c
  2752. +
  2753. +void vpx_plane_add_noise_c(uint8_t *start, const int8_t *noise, int blackclamp, int whiteclamp, int width, int height, int pitch);
  2754. +#define vpx_plane_add_noise vpx_plane_add_noise_c
  2755. +
  2756. +void vpx_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
  2757. +#define vpx_post_proc_down_and_across_mb_row vpx_post_proc_down_and_across_mb_row_c
  2758. +
  2759. +void vpx_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  2760. +#define vpx_quantize_b vpx_quantize_b_c
  2761. +
  2762. +void vpx_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  2763. +#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_c
  2764. +
  2765. +unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2766. +#define vpx_sad16x16 vpx_sad16x16_c
  2767. +
  2768. +unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2769. +#define vpx_sad16x16_avg vpx_sad16x16_avg_c
  2770. +
  2771. +void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2772. +#define vpx_sad16x16x3 vpx_sad16x16x3_c
  2773. +
  2774. +void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2775. +#define vpx_sad16x16x4d vpx_sad16x16x4d_c
  2776. +
  2777. +void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2778. +#define vpx_sad16x16x8 vpx_sad16x16x8_c
  2779. +
  2780. +unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2781. +#define vpx_sad16x32 vpx_sad16x32_c
  2782. +
  2783. +unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2784. +#define vpx_sad16x32_avg vpx_sad16x32_avg_c
  2785. +
  2786. +void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2787. +#define vpx_sad16x32x4d vpx_sad16x32x4d_c
  2788. +
  2789. +unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2790. +#define vpx_sad16x8 vpx_sad16x8_c
  2791. +
  2792. +unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2793. +#define vpx_sad16x8_avg vpx_sad16x8_avg_c
  2794. +
  2795. +void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2796. +#define vpx_sad16x8x3 vpx_sad16x8x3_c
  2797. +
  2798. +void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2799. +#define vpx_sad16x8x4d vpx_sad16x8x4d_c
  2800. +
  2801. +void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2802. +#define vpx_sad16x8x8 vpx_sad16x8x8_c
  2803. +
  2804. +unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2805. +#define vpx_sad32x16 vpx_sad32x16_c
  2806. +
  2807. +unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2808. +#define vpx_sad32x16_avg vpx_sad32x16_avg_c
  2809. +
  2810. +void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2811. +#define vpx_sad32x16x4d vpx_sad32x16x4d_c
  2812. +
  2813. +unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2814. +#define vpx_sad32x32 vpx_sad32x32_c
  2815. +
  2816. +unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2817. +#define vpx_sad32x32_avg vpx_sad32x32_avg_c
  2818. +
  2819. +void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2820. +#define vpx_sad32x32x3 vpx_sad32x32x3_c
  2821. +
  2822. +void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2823. +#define vpx_sad32x32x4d vpx_sad32x32x4d_c
  2824. +
  2825. +void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2826. +#define vpx_sad32x32x8 vpx_sad32x32x8_c
  2827. +
  2828. +unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2829. +#define vpx_sad32x64 vpx_sad32x64_c
  2830. +
  2831. +unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2832. +#define vpx_sad32x64_avg vpx_sad32x64_avg_c
  2833. +
  2834. +void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2835. +#define vpx_sad32x64x4d vpx_sad32x64x4d_c
  2836. +
  2837. +unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2838. +#define vpx_sad4x4 vpx_sad4x4_c
  2839. +
  2840. +unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2841. +#define vpx_sad4x4_avg vpx_sad4x4_avg_c
  2842. +
  2843. +void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2844. +#define vpx_sad4x4x3 vpx_sad4x4x3_c
  2845. +
  2846. +void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2847. +#define vpx_sad4x4x4d vpx_sad4x4x4d_c
  2848. +
  2849. +void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2850. +#define vpx_sad4x4x8 vpx_sad4x4x8_c
  2851. +
  2852. +unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2853. +#define vpx_sad4x8 vpx_sad4x8_c
  2854. +
  2855. +unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2856. +#define vpx_sad4x8_avg vpx_sad4x8_avg_c
  2857. +
  2858. +void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2859. +#define vpx_sad4x8x4d vpx_sad4x8x4d_c
  2860. +
  2861. +void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2862. +#define vpx_sad4x8x8 vpx_sad4x8x8_c
  2863. +
  2864. +unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2865. +#define vpx_sad64x32 vpx_sad64x32_c
  2866. +
  2867. +unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2868. +#define vpx_sad64x32_avg vpx_sad64x32_avg_c
  2869. +
  2870. +void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2871. +#define vpx_sad64x32x4d vpx_sad64x32x4d_c
  2872. +
  2873. +unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2874. +#define vpx_sad64x64 vpx_sad64x64_c
  2875. +
  2876. +unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2877. +#define vpx_sad64x64_avg vpx_sad64x64_avg_c
  2878. +
  2879. +void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2880. +#define vpx_sad64x64x3 vpx_sad64x64x3_c
  2881. +
  2882. +void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2883. +#define vpx_sad64x64x4d vpx_sad64x64x4d_c
  2884. +
  2885. +void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2886. +#define vpx_sad64x64x8 vpx_sad64x64x8_c
  2887. +
  2888. +unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2889. +#define vpx_sad8x16 vpx_sad8x16_c
  2890. +
  2891. +unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2892. +#define vpx_sad8x16_avg vpx_sad8x16_avg_c
  2893. +
  2894. +void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2895. +#define vpx_sad8x16x3 vpx_sad8x16x3_c
  2896. +
  2897. +void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2898. +#define vpx_sad8x16x4d vpx_sad8x16x4d_c
  2899. +
  2900. +void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2901. +#define vpx_sad8x16x8 vpx_sad8x16x8_c
  2902. +
  2903. +unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2904. +#define vpx_sad8x4 vpx_sad8x4_c
  2905. +
  2906. +unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2907. +#define vpx_sad8x4_avg vpx_sad8x4_avg_c
  2908. +
  2909. +void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2910. +#define vpx_sad8x4x4d vpx_sad8x4x4d_c
  2911. +
  2912. +void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2913. +#define vpx_sad8x4x8 vpx_sad8x4x8_c
  2914. +
  2915. +unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  2916. +#define vpx_sad8x8 vpx_sad8x8_c
  2917. +
  2918. +unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  2919. +#define vpx_sad8x8_avg vpx_sad8x8_avg_c
  2920. +
  2921. +void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2922. +#define vpx_sad8x8x3 vpx_sad8x8x3_c
  2923. +
  2924. +void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  2925. +#define vpx_sad8x8x4d vpx_sad8x8x4d_c
  2926. +
  2927. +void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  2928. +#define vpx_sad8x8x8 vpx_sad8x8x8_c
  2929. +
  2930. +int vpx_satd_c(const int16_t *coeff, int length);
  2931. +#define vpx_satd vpx_satd_c
  2932. +
  2933. +void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2934. +#define vpx_scaled_2d vpx_scaled_2d_c
  2935. +
  2936. +void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2937. +#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
  2938. +
  2939. +void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2940. +#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
  2941. +
  2942. +void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2943. +#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
  2944. +
  2945. +void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2946. +#define vpx_scaled_horiz vpx_scaled_horiz_c
  2947. +
  2948. +void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  2949. +#define vpx_scaled_vert vpx_scaled_vert_c
  2950. +
  2951. +uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2952. +#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
  2953. +
  2954. +uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2955. +#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
  2956. +
  2957. +uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2958. +#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
  2959. +
  2960. +uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2961. +#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
  2962. +
  2963. +uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2964. +#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
  2965. +
  2966. +uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2967. +#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
  2968. +
  2969. +uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2970. +#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
  2971. +
  2972. +uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2973. +#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
  2974. +
  2975. +uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2976. +#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
  2977. +
  2978. +uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2979. +#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_c
  2980. +
  2981. +uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2982. +#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
  2983. +
  2984. +uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2985. +#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
  2986. +
  2987. +uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  2988. +#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
  2989. +
  2990. +uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  2991. +#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_c
  2992. +
  2993. +uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  2994. +#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
  2995. +
  2996. +uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  2997. +#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
  2998. +
  2999. +uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3000. +#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
  3001. +
  3002. +uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3003. +#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_c
  3004. +
  3005. +uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3006. +#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
  3007. +
  3008. +uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3009. +#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
  3010. +
  3011. +uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3012. +#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
  3013. +
  3014. +uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3015. +#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
  3016. +
  3017. +uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3018. +#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_c
  3019. +
  3020. +uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3021. +#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
  3022. +
  3023. +uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3024. +#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
  3025. +
  3026. +uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  3027. +#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_c
  3028. +
  3029. +void vpx_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
  3030. +#define vpx_subtract_block vpx_subtract_block_c
  3031. +
  3032. +uint64_t vpx_sum_squares_2d_i16_c(const int16_t *src, int stride, int size);
  3033. +#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
  3034. +
  3035. +void vpx_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3036. +#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_c
  3037. +
  3038. +void vpx_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3039. +#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_c
  3040. +
  3041. +void vpx_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3042. +#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_c
  3043. +
  3044. +void vpx_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3045. +#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_c
  3046. +
  3047. +void vpx_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3048. +#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_c
  3049. +
  3050. +void vpx_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3051. +#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_c
  3052. +
  3053. +void vpx_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3054. +#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_c
  3055. +
  3056. +void vpx_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3057. +#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_c
  3058. +
  3059. +unsigned int vpx_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3060. +#define vpx_variance16x16 vpx_variance16x16_c
  3061. +
  3062. +unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3063. +#define vpx_variance16x32 vpx_variance16x32_c
  3064. +
  3065. +unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3066. +#define vpx_variance16x8 vpx_variance16x8_c
  3067. +
  3068. +unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3069. +#define vpx_variance32x16 vpx_variance32x16_c
  3070. +
  3071. +unsigned int vpx_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3072. +#define vpx_variance32x32 vpx_variance32x32_c
  3073. +
  3074. +unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3075. +#define vpx_variance32x64 vpx_variance32x64_c
  3076. +
  3077. +unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3078. +#define vpx_variance4x4 vpx_variance4x4_c
  3079. +
  3080. +unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3081. +#define vpx_variance4x8 vpx_variance4x8_c
  3082. +
  3083. +unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3084. +#define vpx_variance64x32 vpx_variance64x32_c
  3085. +
  3086. +unsigned int vpx_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3087. +#define vpx_variance64x64 vpx_variance64x64_c
  3088. +
  3089. +unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3090. +#define vpx_variance8x16 vpx_variance8x16_c
  3091. +
  3092. +unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3093. +#define vpx_variance8x4 vpx_variance8x4_c
  3094. +
  3095. +unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  3096. +#define vpx_variance8x8 vpx_variance8x8_c
  3097. +
  3098. +uint32_t vpx_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  3099. +#define vpx_variance_halfpixvar16x16_h vpx_variance_halfpixvar16x16_h_c
  3100. +
  3101. +uint32_t vpx_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  3102. +#define vpx_variance_halfpixvar16x16_hv vpx_variance_halfpixvar16x16_hv_c
  3103. +
  3104. +uint32_t vpx_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  3105. +#define vpx_variance_halfpixvar16x16_v vpx_variance_halfpixvar16x16_v_c
  3106. +
  3107. +void vpx_ve_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3108. +#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
  3109. +
  3110. +int vpx_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
  3111. +#define vpx_vector_var vpx_vector_var_c
  3112. +
  3113. +void vpx_dsp_rtcd(void);
  3114. +
  3115. +#include "vpx_config.h"
  3116. +
  3117. +#ifdef RTCD_C
  3118. +#include "vpx_ports/arm.h"
  3119. +static void setup_rtcd_internal(void)
  3120. +{
  3121. +    int flags = arm_cpu_caps();
  3122. +
  3123. +    (void)flags;
  3124. +
  3125. +}
  3126. +#endif
  3127. +
  3128. +#ifdef __cplusplus
  3129. +}  // extern "C"
  3130. +#endif
  3131. +
  3132. +#endif
  3133. diff --git a/libvpx/source/config/win/arm/vpx_scale_rtcd.h b/libvpx/source/config/win/arm/vpx_scale_rtcd.h
  3134. new file mode 100644
  3135. index 00000000000..a1564b7ad6c
  3136. --- /dev/null
  3137. +++ b/libvpx/source/config/win/arm/vpx_scale_rtcd.h
  3138. @@ -0,0 +1,71 @@
  3139. +#ifndef VPX_SCALE_RTCD_H_
  3140. +#define VPX_SCALE_RTCD_H_
  3141. +
  3142. +#ifdef RTCD_C
  3143. +#define RTCD_EXTERN
  3144. +#else
  3145. +#define RTCD_EXTERN extern
  3146. +#endif
  3147. +
  3148. +struct yv12_buffer_config;
  3149. +
  3150. +#ifdef __cplusplus
  3151. +extern "C" {
  3152. +#endif
  3153. +
  3154. +void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  3155. +#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
  3156. +
  3157. +void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  3158. +#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
  3159. +
  3160. +void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  3161. +#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
  3162. +
  3163. +void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  3164. +#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
  3165. +
  3166. +void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  3167. +#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
  3168. +
  3169. +void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  3170. +#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
  3171. +
  3172. +void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  3173. +#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
  3174. +
  3175. +void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  3176. +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
  3177. +
  3178. +void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  3179. +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
  3180. +
  3181. +void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  3182. +#define vpx_extend_frame_borders vpx_extend_frame_borders_c
  3183. +
  3184. +void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
  3185. +#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
  3186. +
  3187. +void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  3188. +#define vpx_yv12_copy_y vpx_yv12_copy_y_c
  3189. +
  3190. +void vpx_scale_rtcd(void);
  3191. +
  3192. +#include "vpx_config.h"
  3193. +
  3194. +#ifdef RTCD_C
  3195. +#include "vpx_ports/arm.h"
  3196. +static void setup_rtcd_internal(void)
  3197. +{
  3198. +    int flags = arm_cpu_caps();
  3199. +
  3200. +    (void)flags;
  3201. +
  3202. +}
  3203. +#endif
  3204. +
  3205. +#ifdef __cplusplus
  3206. +}  // extern "C"
  3207. +#endif
  3208. +
  3209. +#endif
  3210. diff --git a/libvpx/source/config/win/generic/vp8_rtcd.h b/libvpx/source/config/win/generic/vp8_rtcd.h
  3211. new file mode 100644
  3212. index 00000000000..e8188351382
  3213. --- /dev/null
  3214. +++ b/libvpx/source/config/win/generic/vp8_rtcd.h
  3215. @@ -0,0 +1,313 @@
  3216. +#ifndef VP8_RTCD_H_
  3217. +#define VP8_RTCD_H_
  3218. +
  3219. +#ifdef RTCD_C
  3220. +#define RTCD_EXTERN
  3221. +#else
  3222. +#define RTCD_EXTERN extern
  3223. +#endif
  3224. +
  3225. +/*
  3226. + * VP8
  3227. + */
  3228. +
  3229. +struct blockd;
  3230. +struct macroblockd;
  3231. +struct loop_filter_info;
  3232. +
  3233. +/* Encoder forward decls */
  3234. +struct block;
  3235. +struct macroblock;
  3236. +struct variance_vtable;
  3237. +union int_mv;
  3238. +struct yv12_buffer_config;
  3239. +
  3240. +#ifdef __cplusplus
  3241. +extern "C" {
  3242. +#endif
  3243. +
  3244. +void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3245. +#define vp8_bilinear_predict16x16 vp8_bilinear_predict16x16_c
  3246. +
  3247. +void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3248. +#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_c
  3249. +
  3250. +void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3251. +#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_c
  3252. +
  3253. +void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3254. +#define vp8_bilinear_predict8x8 vp8_bilinear_predict8x8_c
  3255. +
  3256. +void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  3257. +#define vp8_blend_b vp8_blend_b_c
  3258. +
  3259. +void vp8_blend_mb_inner_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  3260. +#define vp8_blend_mb_inner vp8_blend_mb_inner_c
  3261. +
  3262. +void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
  3263. +#define vp8_blend_mb_outer vp8_blend_mb_outer_c
  3264. +
  3265. +int vp8_block_error_c(short *coeff, short *dqcoeff);
  3266. +#define vp8_block_error vp8_block_error_c
  3267. +
  3268. +void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row,  unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
  3269. +#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
  3270. +
  3271. +void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
  3272. +#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
  3273. +
  3274. +void vp8_clear_system_state_c();
  3275. +#define vp8_clear_system_state vp8_clear_system_state_c
  3276. +
  3277. +void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  3278. +#define vp8_copy_mem16x16 vp8_copy_mem16x16_c
  3279. +
  3280. +void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  3281. +#define vp8_copy_mem8x4 vp8_copy_mem8x4_c
  3282. +
  3283. +void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
  3284. +#define vp8_copy_mem8x8 vp8_copy_mem8x8_c
  3285. +
  3286. +void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
  3287. +#define vp8_dc_only_idct_add vp8_dc_only_idct_add_c
  3288. +
  3289. +int vp8_denoiser_filter_c(unsigned char *mc_running_avg_y, int mc_avg_y_stride, unsigned char *running_avg_y, int avg_y_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  3290. +#define vp8_denoiser_filter vp8_denoiser_filter_c
  3291. +
  3292. +int vp8_denoiser_filter_uv_c(unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
  3293. +#define vp8_denoiser_filter_uv vp8_denoiser_filter_uv_c
  3294. +
  3295. +void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
  3296. +#define vp8_dequant_idct_add vp8_dequant_idct_add_c
  3297. +
  3298. +void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
  3299. +#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_c
  3300. +
  3301. +void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
  3302. +#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_c
  3303. +
  3304. +void vp8_dequantize_b_c(struct blockd*, short *dqc);
  3305. +#define vp8_dequantize_b vp8_dequantize_b_c
  3306. +
  3307. +int vp8_diamond_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, union int_mv *best_mv, int search_param, int sad_per_bit, int *num00, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  3308. +#define vp8_diamond_search_sad vp8_diamond_search_sad_c
  3309. +
  3310. +void vp8_fast_quantize_b_c(struct block *, struct blockd *);
  3311. +#define vp8_fast_quantize_b vp8_fast_quantize_b_c
  3312. +
  3313. +void vp8_filter_by_weight16x16_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  3314. +#define vp8_filter_by_weight16x16 vp8_filter_by_weight16x16_c
  3315. +
  3316. +void vp8_filter_by_weight4x4_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  3317. +#define vp8_filter_by_weight4x4 vp8_filter_by_weight4x4_c
  3318. +
  3319. +void vp8_filter_by_weight8x8_c(unsigned char *src, int src_stride, unsigned char *dst, int dst_stride, int src_weight);
  3320. +#define vp8_filter_by_weight8x8 vp8_filter_by_weight8x8_c
  3321. +
  3322. +int vp8_full_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  3323. +#define vp8_full_search_sad vp8_full_search_sad_c
  3324. +
  3325. +unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
  3326. +#define vp8_get4x4sse_cs vp8_get4x4sse_cs_c
  3327. +
  3328. +unsigned int vp8_get_mb_ss_c(const short *);
  3329. +#define vp8_get_mb_ss vp8_get_mb_ss_c
  3330. +
  3331. +void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
  3332. +#define vp8_intra4x4_predict vp8_intra4x4_predict_c
  3333. +
  3334. +void vp8_loop_filter_bh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  3335. +#define vp8_loop_filter_bh vp8_loop_filter_bh_c
  3336. +
  3337. +void vp8_loop_filter_bv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  3338. +#define vp8_loop_filter_bv vp8_loop_filter_bv_c
  3339. +
  3340. +void vp8_loop_filter_mbh_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  3341. +#define vp8_loop_filter_mbh vp8_loop_filter_mbh_c
  3342. +
  3343. +void vp8_loop_filter_mbv_c(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
  3344. +#define vp8_loop_filter_mbv vp8_loop_filter_mbv_c
  3345. +
  3346. +void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  3347. +#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_c
  3348. +
  3349. +void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
  3350. +#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_c
  3351. +
  3352. +void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  3353. +#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_c
  3354. +
  3355. +void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
  3356. +#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_c
  3357. +
  3358. +int vp8_mbblock_error_c(struct macroblock *mb, int dc);
  3359. +#define vp8_mbblock_error vp8_mbblock_error_c
  3360. +
  3361. +int vp8_mbuverror_c(struct macroblock *mb);
  3362. +#define vp8_mbuverror vp8_mbuverror_c
  3363. +
  3364. +unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3365. +#define vp8_mse16x16 vp8_mse16x16_c
  3366. +
  3367. +int vp8_refining_search_sad_c(struct macroblock *x, struct block *b, struct blockd *d, union int_mv *ref_mv, int sad_per_bit, int distance, struct variance_vtable *fn_ptr, int *mvcost[2], union int_mv *center_mv);
  3368. +#define vp8_refining_search_sad vp8_refining_search_sad_c
  3369. +
  3370. +void vp8_regular_quantize_b_c(struct block *, struct blockd *);
  3371. +#define vp8_regular_quantize_b vp8_regular_quantize_b_c
  3372. +
  3373. +unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
  3374. +#define vp8_sad16x16 vp8_sad16x16_c
  3375. +
  3376. +void vp8_sad16x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3377. +#define vp8_sad16x16x3 vp8_sad16x16x3_c
  3378. +
  3379. +void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3380. +#define vp8_sad16x16x4d vp8_sad16x16x4d_c
  3381. +
  3382. +void vp8_sad16x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
  3383. +#define vp8_sad16x16x8 vp8_sad16x16x8_c
  3384. +
  3385. +unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
  3386. +#define vp8_sad16x8 vp8_sad16x8_c
  3387. +
  3388. +void vp8_sad16x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3389. +#define vp8_sad16x8x3 vp8_sad16x8x3_c
  3390. +
  3391. +void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3392. +#define vp8_sad16x8x4d vp8_sad16x8x4d_c
  3393. +
  3394. +void vp8_sad16x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
  3395. +#define vp8_sad16x8x8 vp8_sad16x8x8_c
  3396. +
  3397. +unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
  3398. +#define vp8_sad4x4 vp8_sad4x4_c
  3399. +
  3400. +void vp8_sad4x4x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3401. +#define vp8_sad4x4x3 vp8_sad4x4x3_c
  3402. +
  3403. +void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3404. +#define vp8_sad4x4x4d vp8_sad4x4x4d_c
  3405. +
  3406. +void vp8_sad4x4x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
  3407. +#define vp8_sad4x4x8 vp8_sad4x4x8_c
  3408. +
  3409. +unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
  3410. +#define vp8_sad8x16 vp8_sad8x16_c
  3411. +
  3412. +void vp8_sad8x16x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3413. +#define vp8_sad8x16x3 vp8_sad8x16x3_c
  3414. +
  3415. +void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3416. +#define vp8_sad8x16x4d vp8_sad8x16x4d_c
  3417. +
  3418. +void vp8_sad8x16x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
  3419. +#define vp8_sad8x16x8 vp8_sad8x16x8_c
  3420. +
  3421. +unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int max_sad);
  3422. +#define vp8_sad8x8 vp8_sad8x8_c
  3423. +
  3424. +void vp8_sad8x8x3_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3425. +#define vp8_sad8x8x3 vp8_sad8x8x3_c
  3426. +
  3427. +void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int src_stride, const unsigned char * const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3428. +#define vp8_sad8x8x4d vp8_sad8x8x4d_c
  3429. +
  3430. +void vp8_sad8x8x8_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned short *sad_array);
  3431. +#define vp8_sad8x8x8 vp8_sad8x8x8_c
  3432. +
  3433. +void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
  3434. +#define vp8_short_fdct4x4 vp8_short_fdct4x4_c
  3435. +
  3436. +void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
  3437. +#define vp8_short_fdct8x4 vp8_short_fdct8x4_c
  3438. +
  3439. +void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
  3440. +#define vp8_short_idct4x4llm vp8_short_idct4x4llm_c
  3441. +
  3442. +void vp8_short_inv_walsh4x4_c(short *input, short *output);
  3443. +#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_c
  3444. +
  3445. +void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
  3446. +#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
  3447. +
  3448. +void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
  3449. +#define vp8_short_walsh4x4 vp8_short_walsh4x4_c
  3450. +
  3451. +void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3452. +#define vp8_sixtap_predict16x16 vp8_sixtap_predict16x16_c
  3453. +
  3454. +void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3455. +#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_c
  3456. +
  3457. +void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3458. +#define vp8_sixtap_predict8x4 vp8_sixtap_predict8x4_c
  3459. +
  3460. +void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
  3461. +#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_c
  3462. +
  3463. +unsigned int vp8_sub_pixel_mse16x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3464. +#define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_c
  3465. +
  3466. +unsigned int vp8_sub_pixel_variance16x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3467. +#define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_c
  3468. +
  3469. +unsigned int vp8_sub_pixel_variance16x8_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3470. +#define vp8_sub_pixel_variance16x8 vp8_sub_pixel_variance16x8_c
  3471. +
  3472. +unsigned int vp8_sub_pixel_variance4x4_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3473. +#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c
  3474. +
  3475. +unsigned int vp8_sub_pixel_variance8x16_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3476. +#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c
  3477. +
  3478. +unsigned int vp8_sub_pixel_variance8x8_c(const unsigned char  *src_ptr, int  source_stride, int  xoffset, int  yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
  3479. +#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_c
  3480. +
  3481. +void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
  3482. +#define vp8_subtract_b vp8_subtract_b_c
  3483. +
  3484. +void vp8_subtract_mbuv_c(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
  3485. +#define vp8_subtract_mbuv vp8_subtract_mbuv_c
  3486. +
  3487. +void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
  3488. +#define vp8_subtract_mby vp8_subtract_mby_c
  3489. +
  3490. +unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3491. +#define vp8_variance16x16 vp8_variance16x16_c
  3492. +
  3493. +unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3494. +#define vp8_variance16x8 vp8_variance16x8_c
  3495. +
  3496. +unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3497. +#define vp8_variance4x4 vp8_variance4x4_c
  3498. +
  3499. +unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3500. +#define vp8_variance8x16 vp8_variance8x16_c
  3501. +
  3502. +unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3503. +#define vp8_variance8x8 vp8_variance8x8_c
  3504. +
  3505. +unsigned int vp8_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3506. +#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_c
  3507. +
  3508. +unsigned int vp8_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3509. +#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_c
  3510. +
  3511. +unsigned int vp8_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, unsigned int *sse);
  3512. +#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_c
  3513. +
  3514. +void vp8_rtcd(void);
  3515. +
  3516. +#include "vpx_config.h"
  3517. +
  3518. +#ifdef RTCD_C
  3519. +static void setup_rtcd_internal(void)
  3520. +{
  3521. +}
  3522. +#endif
  3523. +
  3524. +#ifdef __cplusplus
  3525. +}  // extern "C"
  3526. +#endif
  3527. +
  3528. +#endif
  3529. diff --git a/libvpx/source/config/win/generic/vp9_rtcd.h b/libvpx/source/config/win/generic/vp9_rtcd.h
  3530. new file mode 100644
  3531. index 00000000000..70dde47c70e
  3532. --- /dev/null
  3533. +++ b/libvpx/source/config/win/generic/vp9_rtcd.h
  3534. @@ -0,0 +1,706 @@
  3535. +#ifndef VP9_RTCD_H_
  3536. +#define VP9_RTCD_H_
  3537. +
  3538. +#ifdef RTCD_C
  3539. +#define RTCD_EXTERN
  3540. +#else
  3541. +#define RTCD_EXTERN extern
  3542. +#endif
  3543. +
  3544. +/*
  3545. + * VP9
  3546. + */
  3547. +
  3548. +#include "vpx/vpx_integer.h"
  3549. +#include "vp9/common/vp9_common.h"
  3550. +#include "vp9/common/vp9_enums.h"
  3551. +
  3552. +struct macroblockd;
  3553. +
  3554. +/* Encoder forward decls */
  3555. +struct macroblock;
  3556. +struct vp9_variance_vtable;
  3557. +struct search_site_config;
  3558. +struct mv;
  3559. +union int_mv;
  3560. +struct yv12_buffer_config;
  3561. +
  3562. +#ifdef __cplusplus
  3563. +extern "C" {
  3564. +#endif
  3565. +
  3566. +unsigned int vp9_avg_4x4_c(const uint8_t *, int p);
  3567. +#define vp9_avg_4x4 vp9_avg_4x4_c
  3568. +
  3569. +unsigned int vp9_avg_8x8_c(const uint8_t *, int p);
  3570. +#define vp9_avg_8x8 vp9_avg_8x8_c
  3571. +
  3572. +int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
  3573. +#define vp9_block_error vp9_block_error_c
  3574. +
  3575. +void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3576. +#define vp9_convolve8 vp9_convolve8_c
  3577. +
  3578. +void vp9_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3579. +#define vp9_convolve8_avg vp9_convolve8_avg_c
  3580. +
  3581. +void vp9_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3582. +#define vp9_convolve8_avg_horiz vp9_convolve8_avg_horiz_c
  3583. +
  3584. +void vp9_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3585. +#define vp9_convolve8_avg_vert vp9_convolve8_avg_vert_c
  3586. +
  3587. +void vp9_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3588. +#define vp9_convolve8_horiz vp9_convolve8_horiz_c
  3589. +
  3590. +void vp9_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3591. +#define vp9_convolve8_vert vp9_convolve8_vert_c
  3592. +
  3593. +void vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3594. +#define vp9_convolve_avg vp9_convolve_avg_c
  3595. +
  3596. +void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  3597. +#define vp9_convolve_copy vp9_convolve_copy_c
  3598. +
  3599. +void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3600. +#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
  3601. +
  3602. +void vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3603. +#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c
  3604. +
  3605. +void vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3606. +#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c
  3607. +
  3608. +void vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3609. +#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c
  3610. +
  3611. +void vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3612. +#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c
  3613. +
  3614. +void vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3615. +#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c
  3616. +
  3617. +void vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3618. +#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c
  3619. +
  3620. +void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3621. +#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
  3622. +
  3623. +void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3624. +#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
  3625. +
  3626. +void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3627. +#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
  3628. +
  3629. +void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3630. +#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
  3631. +
  3632. +void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3633. +#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
  3634. +
  3635. +void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3636. +#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
  3637. +
  3638. +void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3639. +#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
  3640. +
  3641. +void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3642. +#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
  3643. +
  3644. +void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3645. +#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
  3646. +
  3647. +void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3648. +#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
  3649. +
  3650. +void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3651. +#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
  3652. +
  3653. +void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3654. +#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
  3655. +
  3656. +void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3657. +#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
  3658. +
  3659. +void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3660. +#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
  3661. +
  3662. +void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3663. +#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
  3664. +
  3665. +void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3666. +#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
  3667. +
  3668. +void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3669. +#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
  3670. +
  3671. +void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3672. +#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
  3673. +
  3674. +void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3675. +#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
  3676. +
  3677. +void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3678. +#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
  3679. +
  3680. +void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3681. +#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
  3682. +
  3683. +void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3684. +#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
  3685. +
  3686. +void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3687. +#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
  3688. +
  3689. +void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3690. +#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
  3691. +
  3692. +void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3693. +#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
  3694. +
  3695. +void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3696. +#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
  3697. +
  3698. +void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3699. +#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
  3700. +
  3701. +void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3702. +#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
  3703. +
  3704. +void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3705. +#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
  3706. +
  3707. +void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3708. +#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
  3709. +
  3710. +void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3711. +#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
  3712. +
  3713. +void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3714. +#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
  3715. +
  3716. +void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3717. +#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
  3718. +
  3719. +int vp9_denoiser_filter_c(const uint8_t *sig, int sig_stride, const uint8_t *mc_avg, int mc_avg_stride, uint8_t *avg, int avg_stride, int increase_denoising, BLOCK_SIZE bs, int motion_magnitude);
  3720. +#define vp9_denoiser_filter vp9_denoiser_filter_c
  3721. +
  3722. +int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg,  struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
  3723. +#define vp9_diamond_search_sad vp9_diamond_search_sad_c
  3724. +
  3725. +void vp9_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
  3726. +#define vp9_fdct16x16 vp9_fdct16x16_c
  3727. +
  3728. +void vp9_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
  3729. +#define vp9_fdct16x16_1 vp9_fdct16x16_1_c
  3730. +
  3731. +void vp9_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
  3732. +#define vp9_fdct32x32 vp9_fdct32x32_c
  3733. +
  3734. +void vp9_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
  3735. +#define vp9_fdct32x32_1 vp9_fdct32x32_1_c
  3736. +
  3737. +void vp9_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
  3738. +#define vp9_fdct32x32_rd vp9_fdct32x32_rd_c
  3739. +
  3740. +void vp9_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
  3741. +#define vp9_fdct4x4 vp9_fdct4x4_c
  3742. +
  3743. +void vp9_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
  3744. +#define vp9_fdct4x4_1 vp9_fdct4x4_1_c
  3745. +
  3746. +void vp9_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
  3747. +#define vp9_fdct8x8 vp9_fdct8x8_c
  3748. +
  3749. +void vp9_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
  3750. +#define vp9_fdct8x8_1 vp9_fdct8x8_1_c
  3751. +
  3752. +void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  3753. +#define vp9_fdct8x8_quant vp9_fdct8x8_quant_c
  3754. +
  3755. +void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  3756. +#define vp9_fht16x16 vp9_fht16x16_c
  3757. +
  3758. +void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  3759. +#define vp9_fht4x4 vp9_fht4x4_c
  3760. +
  3761. +void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
  3762. +#define vp9_fht8x8 vp9_fht8x8_c
  3763. +
  3764. +void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  3765. +#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_c
  3766. +
  3767. +void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
  3768. +#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_c
  3769. +
  3770. +int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
  3771. +#define vp9_full_range_search vp9_full_range_search_c
  3772. +
  3773. +int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
  3774. +#define vp9_full_search_sad vp9_full_search_sad_c
  3775. +
  3776. +void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
  3777. +#define vp9_fwht4x4 vp9_fwht4x4_c
  3778. +
  3779. +void vp9_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  3780. +#define vp9_get16x16var vp9_get16x16var_c
  3781. +
  3782. +void vp9_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  3783. +#define vp9_get8x8var vp9_get8x8var_c
  3784. +
  3785. +unsigned int vp9_get_mb_ss_c(const int16_t *);
  3786. +#define vp9_get_mb_ss vp9_get_mb_ss_c
  3787. +
  3788. +void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3789. +#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c
  3790. +
  3791. +void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3792. +#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c
  3793. +
  3794. +void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3795. +#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c
  3796. +
  3797. +void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  3798. +#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c
  3799. +
  3800. +void vp9_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3801. +#define vp9_idct16x16_10_add vp9_idct16x16_10_add_c
  3802. +
  3803. +void vp9_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3804. +#define vp9_idct16x16_1_add vp9_idct16x16_1_add_c
  3805. +
  3806. +void vp9_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3807. +#define vp9_idct16x16_256_add vp9_idct16x16_256_add_c
  3808. +
  3809. +void vp9_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3810. +#define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_c
  3811. +
  3812. +void vp9_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3813. +#define vp9_idct32x32_1_add vp9_idct32x32_1_add_c
  3814. +
  3815. +void vp9_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3816. +#define vp9_idct32x32_34_add vp9_idct32x32_34_add_c
  3817. +
  3818. +void vp9_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3819. +#define vp9_idct4x4_16_add vp9_idct4x4_16_add_c
  3820. +
  3821. +void vp9_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3822. +#define vp9_idct4x4_1_add vp9_idct4x4_1_add_c
  3823. +
  3824. +void vp9_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3825. +#define vp9_idct8x8_12_add vp9_idct8x8_12_add_c
  3826. +
  3827. +void vp9_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3828. +#define vp9_idct8x8_1_add vp9_idct8x8_1_add_c
  3829. +
  3830. +void vp9_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3831. +#define vp9_idct8x8_64_add vp9_idct8x8_64_add_c
  3832. +
  3833. +void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
  3834. +#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
  3835. +
  3836. +void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  3837. +#define vp9_iht4x4_16_add vp9_iht4x4_16_add_c
  3838. +
  3839. +void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
  3840. +#define vp9_iht8x8_64_add vp9_iht8x8_64_add_c
  3841. +
  3842. +int16_t vp9_int_pro_col_c(uint8_t const *ref, const int width);
  3843. +#define vp9_int_pro_col vp9_int_pro_col_c
  3844. +
  3845. +void vp9_int_pro_row_c(int16_t *hbuf, uint8_t const *ref, const int ref_stride, const int height);
  3846. +#define vp9_int_pro_row vp9_int_pro_row_c
  3847. +
  3848. +void vp9_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3849. +#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c
  3850. +
  3851. +void vp9_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  3852. +#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c
  3853. +
  3854. +void vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
  3855. +#define vp9_lpf_horizontal_16 vp9_lpf_horizontal_16_c
  3856. +
  3857. +void vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
  3858. +#define vp9_lpf_horizontal_4 vp9_lpf_horizontal_4_c
  3859. +
  3860. +void vp9_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  3861. +#define vp9_lpf_horizontal_4_dual vp9_lpf_horizontal_4_dual_c
  3862. +
  3863. +void vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
  3864. +#define vp9_lpf_horizontal_8 vp9_lpf_horizontal_8_c
  3865. +
  3866. +void vp9_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  3867. +#define vp9_lpf_horizontal_8_dual vp9_lpf_horizontal_8_dual_c
  3868. +
  3869. +void vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  3870. +#define vp9_lpf_vertical_16 vp9_lpf_vertical_16_c
  3871. +
  3872. +void vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  3873. +#define vp9_lpf_vertical_16_dual vp9_lpf_vertical_16_dual_c
  3874. +
  3875. +void vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
  3876. +#define vp9_lpf_vertical_4 vp9_lpf_vertical_4_c
  3877. +
  3878. +void vp9_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  3879. +#define vp9_lpf_vertical_4_dual vp9_lpf_vertical_4_dual_c
  3880. +
  3881. +void vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
  3882. +#define vp9_lpf_vertical_8 vp9_lpf_vertical_8_c
  3883. +
  3884. +void vp9_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  3885. +#define vp9_lpf_vertical_8_dual vp9_lpf_vertical_8_dual_c
  3886. +
  3887. +unsigned int vp9_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  3888. +#define vp9_mse16x16 vp9_mse16x16_c
  3889. +
  3890. +unsigned int vp9_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  3891. +#define vp9_mse16x8 vp9_mse16x8_c
  3892. +
  3893. +unsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  3894. +#define vp9_mse8x16 vp9_mse8x16_c
  3895. +
  3896. +unsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  3897. +#define vp9_mse8x8 vp9_mse8x8_c
  3898. +
  3899. +void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  3900. +#define vp9_quantize_b vp9_quantize_b_c
  3901. +
  3902. +void vp9_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  3903. +#define vp9_quantize_b_32x32 vp9_quantize_b_32x32_c
  3904. +
  3905. +void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  3906. +#define vp9_quantize_fp vp9_quantize_fp_c
  3907. +
  3908. +void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  3909. +#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
  3910. +
  3911. +unsigned int vp9_sad16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  3912. +#define vp9_sad16x16 vp9_sad16x16_c
  3913. +
  3914. +unsigned int vp9_sad16x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  3915. +#define vp9_sad16x16_avg vp9_sad16x16_avg_c
  3916. +
  3917. +void vp9_sad16x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3918. +#define vp9_sad16x16x3 vp9_sad16x16x3_c
  3919. +
  3920. +void vp9_sad16x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3921. +#define vp9_sad16x16x4d vp9_sad16x16x4d_c
  3922. +
  3923. +void vp9_sad16x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  3924. +#define vp9_sad16x16x8 vp9_sad16x16x8_c
  3925. +
  3926. +unsigned int vp9_sad16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  3927. +#define vp9_sad16x32 vp9_sad16x32_c
  3928. +
  3929. +unsigned int vp9_sad16x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  3930. +#define vp9_sad16x32_avg vp9_sad16x32_avg_c
  3931. +
  3932. +void vp9_sad16x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3933. +#define vp9_sad16x32x4d vp9_sad16x32x4d_c
  3934. +
  3935. +unsigned int vp9_sad16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  3936. +#define vp9_sad16x8 vp9_sad16x8_c
  3937. +
  3938. +unsigned int vp9_sad16x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  3939. +#define vp9_sad16x8_avg vp9_sad16x8_avg_c
  3940. +
  3941. +void vp9_sad16x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3942. +#define vp9_sad16x8x3 vp9_sad16x8x3_c
  3943. +
  3944. +void vp9_sad16x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3945. +#define vp9_sad16x8x4d vp9_sad16x8x4d_c
  3946. +
  3947. +void vp9_sad16x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  3948. +#define vp9_sad16x8x8 vp9_sad16x8x8_c
  3949. +
  3950. +unsigned int vp9_sad32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  3951. +#define vp9_sad32x16 vp9_sad32x16_c
  3952. +
  3953. +unsigned int vp9_sad32x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  3954. +#define vp9_sad32x16_avg vp9_sad32x16_avg_c
  3955. +
  3956. +void vp9_sad32x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3957. +#define vp9_sad32x16x4d vp9_sad32x16x4d_c
  3958. +
  3959. +unsigned int vp9_sad32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  3960. +#define vp9_sad32x32 vp9_sad32x32_c
  3961. +
  3962. +unsigned int vp9_sad32x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  3963. +#define vp9_sad32x32_avg vp9_sad32x32_avg_c
  3964. +
  3965. +void vp9_sad32x32x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3966. +#define vp9_sad32x32x3 vp9_sad32x32x3_c
  3967. +
  3968. +void vp9_sad32x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3969. +#define vp9_sad32x32x4d vp9_sad32x32x4d_c
  3970. +
  3971. +void vp9_sad32x32x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  3972. +#define vp9_sad32x32x8 vp9_sad32x32x8_c
  3973. +
  3974. +unsigned int vp9_sad32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  3975. +#define vp9_sad32x64 vp9_sad32x64_c
  3976. +
  3977. +unsigned int vp9_sad32x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  3978. +#define vp9_sad32x64_avg vp9_sad32x64_avg_c
  3979. +
  3980. +void vp9_sad32x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3981. +#define vp9_sad32x64x4d vp9_sad32x64x4d_c
  3982. +
  3983. +unsigned int vp9_sad4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  3984. +#define vp9_sad4x4 vp9_sad4x4_c
  3985. +
  3986. +unsigned int vp9_sad4x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  3987. +#define vp9_sad4x4_avg vp9_sad4x4_avg_c
  3988. +
  3989. +void vp9_sad4x4x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  3990. +#define vp9_sad4x4x3 vp9_sad4x4x3_c
  3991. +
  3992. +void vp9_sad4x4x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  3993. +#define vp9_sad4x4x4d vp9_sad4x4x4d_c
  3994. +
  3995. +void vp9_sad4x4x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  3996. +#define vp9_sad4x4x8 vp9_sad4x4x8_c
  3997. +
  3998. +unsigned int vp9_sad4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  3999. +#define vp9_sad4x8 vp9_sad4x8_c
  4000. +
  4001. +unsigned int vp9_sad4x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4002. +#define vp9_sad4x8_avg vp9_sad4x8_avg_c
  4003. +
  4004. +void vp9_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
  4005. +#define vp9_sad4x8x4d vp9_sad4x8x4d_c
  4006. +
  4007. +void vp9_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4008. +#define vp9_sad4x8x8 vp9_sad4x8x8_c
  4009. +
  4010. +unsigned int vp9_sad64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  4011. +#define vp9_sad64x32 vp9_sad64x32_c
  4012. +
  4013. +unsigned int vp9_sad64x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4014. +#define vp9_sad64x32_avg vp9_sad64x32_avg_c
  4015. +
  4016. +void vp9_sad64x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  4017. +#define vp9_sad64x32x4d vp9_sad64x32x4d_c
  4018. +
  4019. +unsigned int vp9_sad64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  4020. +#define vp9_sad64x64 vp9_sad64x64_c
  4021. +
  4022. +unsigned int vp9_sad64x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  4023. +#define vp9_sad64x64_avg vp9_sad64x64_avg_c
  4024. +
  4025. +void vp9_sad64x64x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  4026. +#define vp9_sad64x64x3 vp9_sad64x64x3_c
  4027. +
  4028. +void vp9_sad64x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  4029. +#define vp9_sad64x64x4d vp9_sad64x64x4d_c
  4030. +
  4031. +void vp9_sad64x64x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  4032. +#define vp9_sad64x64x8 vp9_sad64x64x8_c
  4033. +
  4034. +unsigned int vp9_sad8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  4035. +#define vp9_sad8x16 vp9_sad8x16_c
  4036. +
  4037. +unsigned int vp9_sad8x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  4038. +#define vp9_sad8x16_avg vp9_sad8x16_avg_c
  4039. +
  4040. +void vp9_sad8x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  4041. +#define vp9_sad8x16x3 vp9_sad8x16x3_c
  4042. +
  4043. +void vp9_sad8x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  4044. +#define vp9_sad8x16x4d vp9_sad8x16x4d_c
  4045. +
  4046. +void vp9_sad8x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  4047. +#define vp9_sad8x16x8 vp9_sad8x16x8_c
  4048. +
  4049. +unsigned int vp9_sad8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
  4050. +#define vp9_sad8x4 vp9_sad8x4_c
  4051. +
  4052. +unsigned int vp9_sad8x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4053. +#define vp9_sad8x4_avg vp9_sad8x4_avg_c
  4054. +
  4055. +void vp9_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
  4056. +#define vp9_sad8x4x4d vp9_sad8x4x4d_c
  4057. +
  4058. +void vp9_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4059. +#define vp9_sad8x4x8 vp9_sad8x4x8_c
  4060. +
  4061. +unsigned int vp9_sad8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
  4062. +#define vp9_sad8x8 vp9_sad8x8_c
  4063. +
  4064. +unsigned int vp9_sad8x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
  4065. +#define vp9_sad8x8_avg vp9_sad8x8_avg_c
  4066. +
  4067. +void vp9_sad8x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
  4068. +#define vp9_sad8x8x3 vp9_sad8x8x3_c
  4069. +
  4070. +void vp9_sad8x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
  4071. +#define vp9_sad8x8x4d vp9_sad8x8x4d_c
  4072. +
  4073. +void vp9_sad8x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
  4074. +#define vp9_sad8x8x8 vp9_sad8x8x8_c
  4075. +
  4076. +unsigned int vp9_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4077. +#define vp9_sub_pixel_avg_variance16x16 vp9_sub_pixel_avg_variance16x16_c
  4078. +
  4079. +unsigned int vp9_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4080. +#define vp9_sub_pixel_avg_variance16x32 vp9_sub_pixel_avg_variance16x32_c
  4081. +
  4082. +unsigned int vp9_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4083. +#define vp9_sub_pixel_avg_variance16x8 vp9_sub_pixel_avg_variance16x8_c
  4084. +
  4085. +unsigned int vp9_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4086. +#define vp9_sub_pixel_avg_variance32x16 vp9_sub_pixel_avg_variance32x16_c
  4087. +
  4088. +unsigned int vp9_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4089. +#define vp9_sub_pixel_avg_variance32x32 vp9_sub_pixel_avg_variance32x32_c
  4090. +
  4091. +unsigned int vp9_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4092. +#define vp9_sub_pixel_avg_variance32x64 vp9_sub_pixel_avg_variance32x64_c
  4093. +
  4094. +unsigned int vp9_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4095. +#define vp9_sub_pixel_avg_variance4x4 vp9_sub_pixel_avg_variance4x4_c
  4096. +
  4097. +unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4098. +#define vp9_sub_pixel_avg_variance4x8 vp9_sub_pixel_avg_variance4x8_c
  4099. +
  4100. +unsigned int vp9_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4101. +#define vp9_sub_pixel_avg_variance64x32 vp9_sub_pixel_avg_variance64x32_c
  4102. +
  4103. +unsigned int vp9_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4104. +#define vp9_sub_pixel_avg_variance64x64 vp9_sub_pixel_avg_variance64x64_c
  4105. +
  4106. +unsigned int vp9_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4107. +#define vp9_sub_pixel_avg_variance8x16 vp9_sub_pixel_avg_variance8x16_c
  4108. +
  4109. +unsigned int vp9_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4110. +#define vp9_sub_pixel_avg_variance8x4 vp9_sub_pixel_avg_variance8x4_c
  4111. +
  4112. +unsigned int vp9_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
  4113. +#define vp9_sub_pixel_avg_variance8x8 vp9_sub_pixel_avg_variance8x8_c
  4114. +
  4115. +unsigned int vp9_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4116. +#define vp9_sub_pixel_variance16x16 vp9_sub_pixel_variance16x16_c
  4117. +
  4118. +unsigned int vp9_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4119. +#define vp9_sub_pixel_variance16x32 vp9_sub_pixel_variance16x32_c
  4120. +
  4121. +unsigned int vp9_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4122. +#define vp9_sub_pixel_variance16x8 vp9_sub_pixel_variance16x8_c
  4123. +
  4124. +unsigned int vp9_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4125. +#define vp9_sub_pixel_variance32x16 vp9_sub_pixel_variance32x16_c
  4126. +
  4127. +unsigned int vp9_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4128. +#define vp9_sub_pixel_variance32x32 vp9_sub_pixel_variance32x32_c
  4129. +
  4130. +unsigned int vp9_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4131. +#define vp9_sub_pixel_variance32x64 vp9_sub_pixel_variance32x64_c
  4132. +
  4133. +unsigned int vp9_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4134. +#define vp9_sub_pixel_variance4x4 vp9_sub_pixel_variance4x4_c
  4135. +
  4136. +unsigned int vp9_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4137. +#define vp9_sub_pixel_variance4x8 vp9_sub_pixel_variance4x8_c
  4138. +
  4139. +unsigned int vp9_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4140. +#define vp9_sub_pixel_variance64x32 vp9_sub_pixel_variance64x32_c
  4141. +
  4142. +unsigned int vp9_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4143. +#define vp9_sub_pixel_variance64x64 vp9_sub_pixel_variance64x64_c
  4144. +
  4145. +unsigned int vp9_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4146. +#define vp9_sub_pixel_variance8x16 vp9_sub_pixel_variance8x16_c
  4147. +
  4148. +unsigned int vp9_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4149. +#define vp9_sub_pixel_variance8x4 vp9_sub_pixel_variance8x4_c
  4150. +
  4151. +unsigned int vp9_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4152. +#define vp9_sub_pixel_variance8x8 vp9_sub_pixel_variance8x8_c
  4153. +
  4154. +void vp9_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
  4155. +#define vp9_subtract_block vp9_subtract_block_c
  4156. +
  4157. +void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
  4158. +#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
  4159. +
  4160. +void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4161. +#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c
  4162. +
  4163. +void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4164. +#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c
  4165. +
  4166. +void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4167. +#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c
  4168. +
  4169. +void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4170. +#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c
  4171. +
  4172. +void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4173. +#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c
  4174. +
  4175. +void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4176. +#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c
  4177. +
  4178. +void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4179. +#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c
  4180. +
  4181. +void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4182. +#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c
  4183. +
  4184. +unsigned int vp9_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4185. +#define vp9_variance16x16 vp9_variance16x16_c
  4186. +
  4187. +unsigned int vp9_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4188. +#define vp9_variance16x32 vp9_variance16x32_c
  4189. +
  4190. +unsigned int vp9_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4191. +#define vp9_variance16x8 vp9_variance16x8_c
  4192. +
  4193. +unsigned int vp9_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4194. +#define vp9_variance32x16 vp9_variance32x16_c
  4195. +
  4196. +unsigned int vp9_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4197. +#define vp9_variance32x32 vp9_variance32x32_c
  4198. +
  4199. +unsigned int vp9_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4200. +#define vp9_variance32x64 vp9_variance32x64_c
  4201. +
  4202. +unsigned int vp9_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4203. +#define vp9_variance4x4 vp9_variance4x4_c
  4204. +
  4205. +unsigned int vp9_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4206. +#define vp9_variance4x8 vp9_variance4x8_c
  4207. +
  4208. +unsigned int vp9_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4209. +#define vp9_variance64x32 vp9_variance64x32_c
  4210. +
  4211. +unsigned int vp9_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4212. +#define vp9_variance64x64 vp9_variance64x64_c
  4213. +
  4214. +unsigned int vp9_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4215. +#define vp9_variance8x16 vp9_variance8x16_c
  4216. +
  4217. +unsigned int vp9_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4218. +#define vp9_variance8x4 vp9_variance8x4_c
  4219. +
  4220. +unsigned int vp9_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  4221. +#define vp9_variance8x8 vp9_variance8x8_c
  4222. +
  4223. +int vp9_vector_var_c(int16_t const *ref, int16_t const *src, const int bwl);
  4224. +#define vp9_vector_var vp9_vector_var_c
  4225. +
  4226. +void vp9_rtcd(void);
  4227. +
  4228. +#include "vpx_config.h"
  4229. +
  4230. +#ifdef RTCD_C
  4231. +static void setup_rtcd_internal(void)
  4232. +{
  4233. +}
  4234. +#endif
  4235. +
  4236. +#ifdef __cplusplus
  4237. +}  // extern "C"
  4238. +#endif
  4239. +
  4240. +#endif
  4241. diff --git a/libvpx/source/config/win/generic/vpx_config.asm b/libvpx/source/config/win/generic/vpx_config.asm
  4242. new file mode 100644
  4243. index 00000000000..762234bedaf
  4244. --- /dev/null
  4245. +++ b/libvpx/source/config/win/generic/vpx_config.asm
  4246. @@ -0,0 +1,86 @@
  4247. +%define ARCH_ARM 0
  4248. +%define ARCH_MIPS 0
  4249. +%define ARCH_X86 0
  4250. +%define ARCH_X86_64 0
  4251. +%define ARCH_PPC32 0
  4252. +%define ARCH_PPC64 0
  4253. +%define HAVE_NEON 0
  4254. +%define HAVE_NEON_ASM 0
  4255. +%define HAVE_MIPS32 0
  4256. +%define HAVE_DSPR2 0
  4257. +%define HAVE_MIPS64 0
  4258. +%define HAVE_MMX 0
  4259. +%define HAVE_SSE 0
  4260. +%define HAVE_SSE2 0
  4261. +%define HAVE_SSE3 0
  4262. +%define HAVE_SSSE3 0
  4263. +%define HAVE_SSE4_1 0
  4264. +%define HAVE_AVX 0
  4265. +%define HAVE_AVX2 0
  4266. +%define HAVE_ALTIVEC 0
  4267. +%define HAVE_VPX_PORTS 1
  4268. +%define HAVE_STDINT_H 0
  4269. +%define HAVE_ALT_TREE_LAYOUT 0
  4270. +%define HAVE_PTHREAD_H 0
  4271. +%define HAVE_SYS_MMAN_H 0
  4272. +%define HAVE_UNISTD_H 0
  4273. +%define CONFIG_DEPENDENCY_TRACKING 1
  4274. +%define CONFIG_EXTERNAL_BUILD 1
  4275. +%define CONFIG_INSTALL_DOCS 0
  4276. +%define CONFIG_INSTALL_BINS 1
  4277. +%define CONFIG_INSTALL_LIBS 1
  4278. +%define CONFIG_INSTALL_SRCS 0
  4279. +%define CONFIG_DEBUG 0
  4280. +%define CONFIG_GPROF 0
  4281. +%define CONFIG_GCOV 0
  4282. +%define CONFIG_RVCT 0
  4283. +%define CONFIG_GCC 0
  4284. +%define CONFIG_MSVS 1
  4285. +%define CONFIG_PIC 0
  4286. +%define CONFIG_BIG_ENDIAN 0
  4287. +%define CONFIG_CODEC_SRCS 0
  4288. +%define CONFIG_DEBUG_LIBS 0
  4289. +%define CONFIG_FAST_UNALIGNED 1
  4290. +%define CONFIG_MEM_MANAGER 0
  4291. +%define CONFIG_MEM_TRACKER 0
  4292. +%define CONFIG_MEM_CHECKS 0
  4293. +%define CONFIG_DEQUANT_TOKENS 0
  4294. +%define CONFIG_DC_RECON 0
  4295. +%define CONFIG_RUNTIME_CPU_DETECT 0
  4296. +%define CONFIG_POSTPROC 1
  4297. +%define CONFIG_VP9_POSTPROC 1
  4298. +%define CONFIG_MULTITHREAD 1
  4299. +%define CONFIG_INTERNAL_STATS 0
  4300. +%define CONFIG_VP8_ENCODER 1
  4301. +%define CONFIG_VP8_DECODER 1
  4302. +%define CONFIG_VP9_ENCODER 1
  4303. +%define CONFIG_VP9_DECODER 1
  4304. +%define CONFIG_VP8 1
  4305. +%define CONFIG_VP9 1
  4306. +%define CONFIG_ENCODERS 1
  4307. +%define CONFIG_DECODERS 1
  4308. +%define CONFIG_STATIC_MSVCRT 0
  4309. +%define CONFIG_SPATIAL_RESAMPLING 1
  4310. +%define CONFIG_REALTIME_ONLY 1
  4311. +%define CONFIG_ONTHEFLY_BITPACKING 0
  4312. +%define CONFIG_ERROR_CONCEALMENT 0
  4313. +%define CONFIG_SHARED 0
  4314. +%define CONFIG_STATIC 1
  4315. +%define CONFIG_SMALL 0
  4316. +%define CONFIG_POSTPROC_VISUALIZER 0
  4317. +%define CONFIG_OS_SUPPORT 1
  4318. +%define CONFIG_UNIT_TESTS 0
  4319. +%define CONFIG_WEBM_IO 1
  4320. +%define CONFIG_LIBYUV 1
  4321. +%define CONFIG_DECODE_PERF_TESTS 0
  4322. +%define CONFIG_ENCODE_PERF_TESTS 0
  4323. +%define CONFIG_MULTI_RES_ENCODING 1
  4324. +%define CONFIG_TEMPORAL_DENOISING 1
  4325. +%define CONFIG_VP9_TEMPORAL_DENOISING 1
  4326. +%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
  4327. +%define CONFIG_VP9_HIGHBITDEPTH 0
  4328. +%define CONFIG_EXPERIMENTAL 0
  4329. +%define CONFIG_SIZE_LIMIT 0
  4330. +%define CONFIG_SPATIAL_SVC 0
  4331. +%define CONFIG_FP_MB_STATS 0
  4332. +%define CONFIG_EMULATE_HARDWARE 0
  4333. diff --git a/libvpx/source/config/win/generic/vpx_config.c b/libvpx/source/config/win/generic/vpx_config.c
  4334. new file mode 100644
  4335. index 00000000000..0839c0f8d46
  4336. --- /dev/null
  4337. +++ b/libvpx/source/config/win/generic/vpx_config.c
  4338. @@ -0,0 +1,9 @@
  4339. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  4340. +/*  */
  4341. +/* Use of this source code is governed by a BSD-style license */
  4342. +/* that can be found in the LICENSE file in the root of the source */
  4343. +/* tree. An additional intellectual property rights grant can be found */
  4344. +/* in the file PATENTS.  All contributing project authors may */
  4345. +/* be found in the AUTHORS file in the root of the source tree. */
  4346. +static const char* const cfg = "--target=generic-vs12 --enable-realtime-only --enable-external-build --enable-postproc --disable-install-srcs --enable-multi-res-encoding --enable-temporal-denoising --disable-unit-tests --disable-install-docs --disable-examples --enable-vp9-temporal-denoising";
  4347. +const char *vpx_codec_build_config(void) {return cfg;}
  4348. diff --git a/libvpx/source/config/win/generic/vpx_config.h b/libvpx/source/config/win/generic/vpx_config.h
  4349. new file mode 100644
  4350. index 00000000000..9514067ee8f
  4351. --- /dev/null
  4352. +++ b/libvpx/source/config/win/generic/vpx_config.h
  4353. @@ -0,0 +1,99 @@
  4354. +/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
  4355. +/*  */
  4356. +/* Use of this source code is governed by a BSD-style license */
  4357. +/* that can be found in the LICENSE file in the root of the source */
  4358. +/* tree. An additional intellectual property rights grant can be found */
  4359. +/* in the file PATENTS.  All contributing project authors may */
  4360. +/* be found in the AUTHORS file in the root of the source tree. */
  4361. +/* This file automatically generated by configure. Do not edit! */
  4362. +#ifndef VPX_CONFIG_H
  4363. +#define VPX_CONFIG_H
  4364. +#define RESTRICT    
  4365. +#define INLINE      __forceinline
  4366. +#define ARCH_ARM 0
  4367. +#define ARCH_MIPS 0
  4368. +#define ARCH_X86 0
  4369. +#define ARCH_X86_64 0
  4370. +#define ARCH_PPC32 0
  4371. +#define ARCH_PPC64 0
  4372. +#define HAVE_NEON 0
  4373. +#define HAVE_NEON_ASM 0
  4374. +#define HAVE_MIPS32 0
  4375. +#define HAVE_DSPR2 0
  4376. +#define HAVE_MIPS64 0
  4377. +#define HAVE_MMX 0
  4378. +#define HAVE_SSE 0
  4379. +#define HAVE_SSE2 0
  4380. +#define HAVE_SSE3 0
  4381. +#define HAVE_SSSE3 0
  4382. +#define HAVE_SSE4_1 0
  4383. +#define HAVE_AVX 0
  4384. +#define HAVE_AVX2 0
  4385. +#define HAVE_ALTIVEC 0
  4386. +#define HAVE_VPX_PORTS 1
  4387. +#define HAVE_STDINT_H 0
  4388. +#define HAVE_ALT_TREE_LAYOUT 0
  4389. +#define HAVE_PTHREAD_H 0
  4390. +#define HAVE_SYS_MMAN_H 0
  4391. +#define HAVE_UNISTD_H 0
  4392. +#define CONFIG_DEPENDENCY_TRACKING 1
  4393. +#define CONFIG_EXTERNAL_BUILD 1
  4394. +#define CONFIG_INSTALL_DOCS 0
  4395. +#define CONFIG_INSTALL_BINS 1
  4396. +#define CONFIG_INSTALL_LIBS 1
  4397. +#define CONFIG_INSTALL_SRCS 0
  4398. +#define CONFIG_DEBUG 0
  4399. +#define CONFIG_GPROF 0
  4400. +#define CONFIG_GCOV 0
  4401. +#define CONFIG_RVCT 0
  4402. +#define CONFIG_GCC 0
  4403. +#define CONFIG_MSVS 1
  4404. +#define CONFIG_PIC 0
  4405. +#define CONFIG_BIG_ENDIAN 0
  4406. +#define CONFIG_CODEC_SRCS 0
  4407. +#define CONFIG_DEBUG_LIBS 0
  4408. +#define CONFIG_FAST_UNALIGNED 1
  4409. +#define CONFIG_MEM_MANAGER 0
  4410. +#define CONFIG_MEM_TRACKER 0
  4411. +#define CONFIG_MEM_CHECKS 0
  4412. +#define CONFIG_DEQUANT_TOKENS 0
  4413. +#define CONFIG_DC_RECON 0
  4414. +#define CONFIG_RUNTIME_CPU_DETECT 0
  4415. +#define CONFIG_POSTPROC 1
  4416. +#define CONFIG_VP9_POSTPROC 1
  4417. +#define CONFIG_MULTITHREAD 1
  4418. +#define CONFIG_INTERNAL_STATS 0
  4419. +#define CONFIG_VP8_ENCODER 1
  4420. +#define CONFIG_VP8_DECODER 1
  4421. +#define CONFIG_VP9_ENCODER 1
  4422. +#define CONFIG_VP9_DECODER 1
  4423. +#define CONFIG_VP8 1
  4424. +#define CONFIG_VP9 1
  4425. +#define CONFIG_ENCODERS 1
  4426. +#define CONFIG_DECODERS 1
  4427. +#define CONFIG_STATIC_MSVCRT 0
  4428. +#define CONFIG_SPATIAL_RESAMPLING 1
  4429. +#define CONFIG_REALTIME_ONLY 1
  4430. +#define CONFIG_ONTHEFLY_BITPACKING 0
  4431. +#define CONFIG_ERROR_CONCEALMENT 0
  4432. +#define CONFIG_SHARED 0
  4433. +#define CONFIG_STATIC 1
  4434. +#define CONFIG_SMALL 0
  4435. +#define CONFIG_POSTPROC_VISUALIZER 0
  4436. +#define CONFIG_OS_SUPPORT 1
  4437. +#define CONFIG_UNIT_TESTS 0
  4438. +#define CONFIG_WEBM_IO 1
  4439. +#define CONFIG_LIBYUV 1
  4440. +#define CONFIG_DECODE_PERF_TESTS 0
  4441. +#define CONFIG_ENCODE_PERF_TESTS 0
  4442. +#define CONFIG_MULTI_RES_ENCODING 1
  4443. +#define CONFIG_TEMPORAL_DENOISING 1
  4444. +#define CONFIG_VP9_TEMPORAL_DENOISING 1
  4445. +#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
  4446. +#define CONFIG_VP9_HIGHBITDEPTH 0
  4447. +#define CONFIG_EXPERIMENTAL 0
  4448. +#define CONFIG_SIZE_LIMIT 0
  4449. +#define CONFIG_SPATIAL_SVC 0
  4450. +#define CONFIG_FP_MB_STATS 0
  4451. +#define CONFIG_EMULATE_HARDWARE 0
  4452. +#endif /* VPX_CONFIG_H */
  4453. diff --git a/libvpx/source/config/win/generic/vpx_dsp_rtcd.h b/libvpx/source/config/win/generic/vpx_dsp_rtcd.h
  4454. new file mode 100644
  4455. index 00000000000..16169bece91
  4456. --- /dev/null
  4457. +++ b/libvpx/source/config/win/generic/vpx_dsp_rtcd.h
  4458. @@ -0,0 +1,753 @@
  4459. +#ifndef VPX_DSP_RTCD_H_
  4460. +#define VPX_DSP_RTCD_H_
  4461. +
  4462. +#ifdef RTCD_C
  4463. +#define RTCD_EXTERN
  4464. +#else
  4465. +#define RTCD_EXTERN extern
  4466. +#endif
  4467. +
  4468. +/*
  4469. + * DSP
  4470. + */
  4471. +
  4472. +#include "vpx/vpx_integer.h"
  4473. +#include "vpx_dsp/vpx_dsp_common.h"
  4474. +
  4475. +
  4476. +#ifdef __cplusplus
  4477. +extern "C" {
  4478. +#endif
  4479. +
  4480. +unsigned int vpx_avg_4x4_c(const uint8_t *, int p);
  4481. +#define vpx_avg_4x4 vpx_avg_4x4_c
  4482. +
  4483. +unsigned int vpx_avg_8x8_c(const uint8_t *, int p);
  4484. +#define vpx_avg_8x8 vpx_avg_8x8_c
  4485. +
  4486. +void vpx_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
  4487. +#define vpx_comp_avg_pred vpx_comp_avg_pred_c
  4488. +
  4489. +void vpx_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4490. +#define vpx_convolve8 vpx_convolve8_c
  4491. +
  4492. +void vpx_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4493. +#define vpx_convolve8_avg vpx_convolve8_avg_c
  4494. +
  4495. +void vpx_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4496. +#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_c
  4497. +
  4498. +void vpx_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4499. +#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_c
  4500. +
  4501. +void vpx_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4502. +#define vpx_convolve8_horiz vpx_convolve8_horiz_c
  4503. +
  4504. +void vpx_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4505. +#define vpx_convolve8_vert vpx_convolve8_vert_c
  4506. +
  4507. +void vpx_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4508. +#define vpx_convolve_avg vpx_convolve_avg_c
  4509. +
  4510. +void vpx_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  4511. +#define vpx_convolve_copy vpx_convolve_copy_c
  4512. +
  4513. +void vpx_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4514. +#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
  4515. +
  4516. +void vpx_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4517. +#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
  4518. +
  4519. +void vpx_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4520. +#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
  4521. +
  4522. +void vpx_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4523. +#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
  4524. +
  4525. +void vpx_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4526. +#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
  4527. +
  4528. +void vpx_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4529. +#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
  4530. +
  4531. +void vpx_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4532. +#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_c
  4533. +
  4534. +void vpx_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4535. +#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
  4536. +
  4537. +void vpx_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4538. +#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
  4539. +
  4540. +void vpx_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4541. +#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
  4542. +
  4543. +void vpx_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4544. +#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
  4545. +
  4546. +void vpx_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4547. +#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
  4548. +
  4549. +void vpx_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4550. +#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
  4551. +
  4552. +void vpx_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4553. +#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
  4554. +
  4555. +void vpx_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4556. +#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
  4557. +
  4558. +void vpx_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4559. +#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
  4560. +
  4561. +void vpx_d207e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4562. +#define vpx_d207e_predictor_16x16 vpx_d207e_predictor_16x16_c
  4563. +
  4564. +void vpx_d207e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4565. +#define vpx_d207e_predictor_32x32 vpx_d207e_predictor_32x32_c
  4566. +
  4567. +void vpx_d207e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4568. +#define vpx_d207e_predictor_4x4 vpx_d207e_predictor_4x4_c
  4569. +
  4570. +void vpx_d207e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4571. +#define vpx_d207e_predictor_8x8 vpx_d207e_predictor_8x8_c
  4572. +
  4573. +void vpx_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4574. +#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_c
  4575. +
  4576. +void vpx_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4577. +#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
  4578. +
  4579. +void vpx_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4580. +#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_c
  4581. +
  4582. +void vpx_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4583. +#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_c
  4584. +
  4585. +void vpx_d45e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4586. +#define vpx_d45e_predictor_16x16 vpx_d45e_predictor_16x16_c
  4587. +
  4588. +void vpx_d45e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4589. +#define vpx_d45e_predictor_32x32 vpx_d45e_predictor_32x32_c
  4590. +
  4591. +void vpx_d45e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4592. +#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
  4593. +
  4594. +void vpx_d45e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4595. +#define vpx_d45e_predictor_8x8 vpx_d45e_predictor_8x8_c
  4596. +
  4597. +void vpx_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4598. +#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
  4599. +
  4600. +void vpx_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4601. +#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
  4602. +
  4603. +void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4604. +#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
  4605. +
  4606. +void vpx_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4607. +#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
  4608. +
  4609. +void vpx_d63e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4610. +#define vpx_d63e_predictor_16x16 vpx_d63e_predictor_16x16_c
  4611. +
  4612. +void vpx_d63e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4613. +#define vpx_d63e_predictor_32x32 vpx_d63e_predictor_32x32_c
  4614. +
  4615. +void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4616. +#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
  4617. +
  4618. +void vpx_d63e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4619. +#define vpx_d63e_predictor_8x8 vpx_d63e_predictor_8x8_c
  4620. +
  4621. +void vpx_d63f_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4622. +#define vpx_d63f_predictor_4x4 vpx_d63f_predictor_4x4_c
  4623. +
  4624. +void vpx_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4625. +#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_c
  4626. +
  4627. +void vpx_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4628. +#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_c
  4629. +
  4630. +void vpx_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4631. +#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_c
  4632. +
  4633. +void vpx_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4634. +#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_c
  4635. +
  4636. +void vpx_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4637. +#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_c
  4638. +
  4639. +void vpx_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4640. +#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_c
  4641. +
  4642. +void vpx_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4643. +#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_c
  4644. +
  4645. +void vpx_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4646. +#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_c
  4647. +
  4648. +void vpx_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4649. +#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_c
  4650. +
  4651. +void vpx_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4652. +#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_c
  4653. +
  4654. +void vpx_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4655. +#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_c
  4656. +
  4657. +void vpx_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4658. +#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_c
  4659. +
  4660. +void vpx_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4661. +#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_c
  4662. +
  4663. +void vpx_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4664. +#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_c
  4665. +
  4666. +void vpx_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4667. +#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_c
  4668. +
  4669. +void vpx_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4670. +#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_c
  4671. +
  4672. +void vpx_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
  4673. +#define vpx_fdct16x16 vpx_fdct16x16_c
  4674. +
  4675. +void vpx_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
  4676. +#define vpx_fdct16x16_1 vpx_fdct16x16_1_c
  4677. +
  4678. +void vpx_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
  4679. +#define vpx_fdct32x32 vpx_fdct32x32_c
  4680. +
  4681. +void vpx_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
  4682. +#define vpx_fdct32x32_1 vpx_fdct32x32_1_c
  4683. +
  4684. +void vpx_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
  4685. +#define vpx_fdct32x32_rd vpx_fdct32x32_rd_c
  4686. +
  4687. +void vpx_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
  4688. +#define vpx_fdct4x4 vpx_fdct4x4_c
  4689. +
  4690. +void vpx_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
  4691. +#define vpx_fdct4x4_1 vpx_fdct4x4_1_c
  4692. +
  4693. +void vpx_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
  4694. +#define vpx_fdct8x8 vpx_fdct8x8_c
  4695. +
  4696. +void vpx_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
  4697. +#define vpx_fdct8x8_1 vpx_fdct8x8_1_c
  4698. +
  4699. +void vpx_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  4700. +#define vpx_get16x16var vpx_get16x16var_c
  4701. +
  4702. +unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride);
  4703. +#define vpx_get4x4sse_cs vpx_get4x4sse_cs_c
  4704. +
  4705. +void vpx_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
  4706. +#define vpx_get8x8var vpx_get8x8var_c
  4707. +
  4708. +unsigned int vpx_get_mb_ss_c(const int16_t *);
  4709. +#define vpx_get_mb_ss vpx_get_mb_ss_c
  4710. +
  4711. +void vpx_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4712. +#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_c
  4713. +
  4714. +void vpx_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4715. +#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_c
  4716. +
  4717. +void vpx_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4718. +#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_c
  4719. +
  4720. +void vpx_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4721. +#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_c
  4722. +
  4723. +void vpx_hadamard_16x16_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  4724. +#define vpx_hadamard_16x16 vpx_hadamard_16x16_c
  4725. +
  4726. +void vpx_hadamard_8x8_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
  4727. +#define vpx_hadamard_8x8 vpx_hadamard_8x8_c
  4728. +
  4729. +void vpx_he_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  4730. +#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
  4731. +
  4732. +void vpx_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4733. +#define vpx_idct16x16_10_add vpx_idct16x16_10_add_c
  4734. +
  4735. +void vpx_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4736. +#define vpx_idct16x16_1_add vpx_idct16x16_1_add_c
  4737. +
  4738. +void vpx_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4739. +#define vpx_idct16x16_256_add vpx_idct16x16_256_add_c
  4740. +
  4741. +void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4742. +#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_c
  4743. +
  4744. +void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4745. +#define vpx_idct32x32_135_add vpx_idct32x32_135_add_c
  4746. +
  4747. +void vpx_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4748. +#define vpx_idct32x32_1_add vpx_idct32x32_1_add_c
  4749. +
  4750. +void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4751. +#define vpx_idct32x32_34_add vpx_idct32x32_34_add_c
  4752. +
  4753. +void vpx_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4754. +#define vpx_idct4x4_16_add vpx_idct4x4_16_add_c
  4755. +
  4756. +void vpx_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4757. +#define vpx_idct4x4_1_add vpx_idct4x4_1_add_c
  4758. +
  4759. +void vpx_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4760. +#define vpx_idct8x8_12_add vpx_idct8x8_12_add_c
  4761. +
  4762. +void vpx_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4763. +#define vpx_idct8x8_1_add vpx_idct8x8_1_add_c
  4764. +
  4765. +void vpx_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4766. +#define vpx_idct8x8_64_add vpx_idct8x8_64_add_c
  4767. +
  4768. +int16_t vpx_int_pro_col_c(const uint8_t *ref, const int width);
  4769. +#define vpx_int_pro_col vpx_int_pro_col_c
  4770. +
  4771. +void vpx_int_pro_row_c(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
  4772. +#define vpx_int_pro_row vpx_int_pro_row_c
  4773. +
  4774. +void vpx_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4775. +#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
  4776. +
  4777. +void vpx_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
  4778. +#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
  4779. +
  4780. +void vpx_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4781. +#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_c
  4782. +
  4783. +void vpx_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  4784. +#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_c
  4785. +
  4786. +void vpx_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4787. +#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_c
  4788. +
  4789. +void vpx_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  4790. +#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_c
  4791. +
  4792. +void vpx_lpf_horizontal_edge_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4793. +#define vpx_lpf_horizontal_edge_16 vpx_lpf_horizontal_edge_16_c
  4794. +
  4795. +void vpx_lpf_horizontal_edge_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4796. +#define vpx_lpf_horizontal_edge_8 vpx_lpf_horizontal_edge_8_c
  4797. +
  4798. +void vpx_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4799. +#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_c
  4800. +
  4801. +void vpx_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4802. +#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_c
  4803. +
  4804. +void vpx_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4805. +#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_c
  4806. +
  4807. +void vpx_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  4808. +#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_c
  4809. +
  4810. +void vpx_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
  4811. +#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_c
  4812. +
  4813. +void vpx_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
  4814. +#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_c
  4815. +
  4816. +void vpx_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  4817. +#define vpx_mbpost_proc_across_ip vpx_mbpost_proc_across_ip_c
  4818. +
  4819. +void vpx_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
  4820. +#define vpx_mbpost_proc_down vpx_mbpost_proc_down_c
  4821. +
  4822. +void vpx_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
  4823. +#define vpx_minmax_8x8 vpx_minmax_8x8_c
  4824. +
  4825. +unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  4826. +#define vpx_mse16x16 vpx_mse16x16_c
  4827. +
  4828. +unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  4829. +#define vpx_mse16x8 vpx_mse16x8_c
  4830. +
  4831. +unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  4832. +#define vpx_mse8x16 vpx_mse8x16_c
  4833. +
  4834. +unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
  4835. +#define vpx_mse8x8 vpx_mse8x8_c
  4836. +
  4837. +void vpx_plane_add_noise_c(uint8_t *start, const int8_t *noise, int blackclamp, int whiteclamp, int width, int height, int pitch);
  4838. +#define vpx_plane_add_noise vpx_plane_add_noise_c
  4839. +
  4840. +void vpx_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
  4841. +#define vpx_post_proc_down_and_across_mb_row vpx_post_proc_down_and_across_mb_row_c
  4842. +
  4843. +void vpx_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  4844. +#define vpx_quantize_b vpx_quantize_b_c
  4845. +
  4846. +void vpx_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
  4847. +#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_c
  4848. +
  4849. +unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4850. +#define vpx_sad16x16 vpx_sad16x16_c
  4851. +
  4852. +unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4853. +#define vpx_sad16x16_avg vpx_sad16x16_avg_c
  4854. +
  4855. +void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4856. +#define vpx_sad16x16x3 vpx_sad16x16x3_c
  4857. +
  4858. +void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4859. +#define vpx_sad16x16x4d vpx_sad16x16x4d_c
  4860. +
  4861. +void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4862. +#define vpx_sad16x16x8 vpx_sad16x16x8_c
  4863. +
  4864. +unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4865. +#define vpx_sad16x32 vpx_sad16x32_c
  4866. +
  4867. +unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4868. +#define vpx_sad16x32_avg vpx_sad16x32_avg_c
  4869. +
  4870. +void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4871. +#define vpx_sad16x32x4d vpx_sad16x32x4d_c
  4872. +
  4873. +unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4874. +#define vpx_sad16x8 vpx_sad16x8_c
  4875. +
  4876. +unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4877. +#define vpx_sad16x8_avg vpx_sad16x8_avg_c
  4878. +
  4879. +void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4880. +#define vpx_sad16x8x3 vpx_sad16x8x3_c
  4881. +
  4882. +void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4883. +#define vpx_sad16x8x4d vpx_sad16x8x4d_c
  4884. +
  4885. +void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4886. +#define vpx_sad16x8x8 vpx_sad16x8x8_c
  4887. +
  4888. +unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4889. +#define vpx_sad32x16 vpx_sad32x16_c
  4890. +
  4891. +unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4892. +#define vpx_sad32x16_avg vpx_sad32x16_avg_c
  4893. +
  4894. +void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4895. +#define vpx_sad32x16x4d vpx_sad32x16x4d_c
  4896. +
  4897. +unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4898. +#define vpx_sad32x32 vpx_sad32x32_c
  4899. +
  4900. +unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4901. +#define vpx_sad32x32_avg vpx_sad32x32_avg_c
  4902. +
  4903. +void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4904. +#define vpx_sad32x32x3 vpx_sad32x32x3_c
  4905. +
  4906. +void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4907. +#define vpx_sad32x32x4d vpx_sad32x32x4d_c
  4908. +
  4909. +void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4910. +#define vpx_sad32x32x8 vpx_sad32x32x8_c
  4911. +
  4912. +unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4913. +#define vpx_sad32x64 vpx_sad32x64_c
  4914. +
  4915. +unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4916. +#define vpx_sad32x64_avg vpx_sad32x64_avg_c
  4917. +
  4918. +void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4919. +#define vpx_sad32x64x4d vpx_sad32x64x4d_c
  4920. +
  4921. +unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4922. +#define vpx_sad4x4 vpx_sad4x4_c
  4923. +
  4924. +unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4925. +#define vpx_sad4x4_avg vpx_sad4x4_avg_c
  4926. +
  4927. +void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4928. +#define vpx_sad4x4x3 vpx_sad4x4x3_c
  4929. +
  4930. +void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4931. +#define vpx_sad4x4x4d vpx_sad4x4x4d_c
  4932. +
  4933. +void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4934. +#define vpx_sad4x4x8 vpx_sad4x4x8_c
  4935. +
  4936. +unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4937. +#define vpx_sad4x8 vpx_sad4x8_c
  4938. +
  4939. +unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4940. +#define vpx_sad4x8_avg vpx_sad4x8_avg_c
  4941. +
  4942. +void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4943. +#define vpx_sad4x8x4d vpx_sad4x8x4d_c
  4944. +
  4945. +void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4946. +#define vpx_sad4x8x8 vpx_sad4x8x8_c
  4947. +
  4948. +unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4949. +#define vpx_sad64x32 vpx_sad64x32_c
  4950. +
  4951. +unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4952. +#define vpx_sad64x32_avg vpx_sad64x32_avg_c
  4953. +
  4954. +void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4955. +#define vpx_sad64x32x4d vpx_sad64x32x4d_c
  4956. +
  4957. +unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4958. +#define vpx_sad64x64 vpx_sad64x64_c
  4959. +
  4960. +unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4961. +#define vpx_sad64x64_avg vpx_sad64x64_avg_c
  4962. +
  4963. +void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4964. +#define vpx_sad64x64x3 vpx_sad64x64x3_c
  4965. +
  4966. +void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4967. +#define vpx_sad64x64x4d vpx_sad64x64x4d_c
  4968. +
  4969. +void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4970. +#define vpx_sad64x64x8 vpx_sad64x64x8_c
  4971. +
  4972. +unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4973. +#define vpx_sad8x16 vpx_sad8x16_c
  4974. +
  4975. +unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4976. +#define vpx_sad8x16_avg vpx_sad8x16_avg_c
  4977. +
  4978. +void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4979. +#define vpx_sad8x16x3 vpx_sad8x16x3_c
  4980. +
  4981. +void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4982. +#define vpx_sad8x16x4d vpx_sad8x16x4d_c
  4983. +
  4984. +void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4985. +#define vpx_sad8x16x8 vpx_sad8x16x8_c
  4986. +
  4987. +unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  4988. +#define vpx_sad8x4 vpx_sad8x4_c
  4989. +
  4990. +unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  4991. +#define vpx_sad8x4_avg vpx_sad8x4_avg_c
  4992. +
  4993. +void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  4994. +#define vpx_sad8x4x4d vpx_sad8x4x4d_c
  4995. +
  4996. +void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  4997. +#define vpx_sad8x4x8 vpx_sad8x4x8_c
  4998. +
  4999. +unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
  5000. +#define vpx_sad8x8 vpx_sad8x8_c
  5001. +
  5002. +unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
  5003. +#define vpx_sad8x8_avg vpx_sad8x8_avg_c
  5004. +
  5005. +void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  5006. +#define vpx_sad8x8x3 vpx_sad8x8x3_c
  5007. +
  5008. +void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
  5009. +#define vpx_sad8x8x4d vpx_sad8x8x4d_c
  5010. +
  5011. +void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
  5012. +#define vpx_sad8x8x8 vpx_sad8x8x8_c
  5013. +
  5014. +int vpx_satd_c(const int16_t *coeff, int length);
  5015. +#define vpx_satd vpx_satd_c
  5016. +
  5017. +void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5018. +#define vpx_scaled_2d vpx_scaled_2d_c
  5019. +
  5020. +void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5021. +#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
  5022. +
  5023. +void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5024. +#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
  5025. +
  5026. +void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5027. +#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
  5028. +
  5029. +void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5030. +#define vpx_scaled_horiz vpx_scaled_horiz_c
  5031. +
  5032. +void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
  5033. +#define vpx_scaled_vert vpx_scaled_vert_c
  5034. +
  5035. +uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5036. +#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
  5037. +
  5038. +uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5039. +#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
  5040. +
  5041. +uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5042. +#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
  5043. +
  5044. +uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5045. +#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
  5046. +
  5047. +uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5048. +#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
  5049. +
  5050. +uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5051. +#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
  5052. +
  5053. +uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5054. +#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
  5055. +
  5056. +uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5057. +#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
  5058. +
  5059. +uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5060. +#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
  5061. +
  5062. +uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5063. +#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_c
  5064. +
  5065. +uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5066. +#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
  5067. +
  5068. +uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5069. +#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
  5070. +
  5071. +uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
  5072. +#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
  5073. +
  5074. +uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5075. +#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_c
  5076. +
  5077. +uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5078. +#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
  5079. +
  5080. +uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5081. +#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
  5082. +
  5083. +uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5084. +#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
  5085. +
  5086. +uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5087. +#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_c
  5088. +
  5089. +uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5090. +#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
  5091. +
  5092. +uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5093. +#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
  5094. +
  5095. +uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5096. +#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
  5097. +
  5098. +uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5099. +#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
  5100. +
  5101. +uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5102. +#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_c
  5103. +
  5104. +uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5105. +#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
  5106. +
  5107. +uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5108. +#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
  5109. +
  5110. +uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
  5111. +#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_c
  5112. +
  5113. +void vpx_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
  5114. +#define vpx_subtract_block vpx_subtract_block_c
  5115. +
  5116. +uint64_t vpx_sum_squares_2d_i16_c(const int16_t *src, int stride, int size);
  5117. +#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
  5118. +
  5119. +void vpx_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5120. +#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_c
  5121. +
  5122. +void vpx_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5123. +#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_c
  5124. +
  5125. +void vpx_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5126. +#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_c
  5127. +
  5128. +void vpx_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5129. +#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_c
  5130. +
  5131. +void vpx_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5132. +#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_c
  5133. +
  5134. +void vpx_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5135. +#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_c
  5136. +
  5137. +void vpx_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5138. +#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_c
  5139. +
  5140. +void vpx_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5141. +#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_c
  5142. +
  5143. +unsigned int vpx_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5144. +#define vpx_variance16x16 vpx_variance16x16_c
  5145. +
  5146. +unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5147. +#define vpx_variance16x32 vpx_variance16x32_c
  5148. +
  5149. +unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5150. +#define vpx_variance16x8 vpx_variance16x8_c
  5151. +
  5152. +unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5153. +#define vpx_variance32x16 vpx_variance32x16_c
  5154. +
  5155. +unsigned int vpx_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5156. +#define vpx_variance32x32 vpx_variance32x32_c
  5157. +
  5158. +unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5159. +#define vpx_variance32x64 vpx_variance32x64_c
  5160. +
  5161. +unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5162. +#define vpx_variance4x4 vpx_variance4x4_c
  5163. +
  5164. +unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5165. +#define vpx_variance4x8 vpx_variance4x8_c
  5166. +
  5167. +unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5168. +#define vpx_variance64x32 vpx_variance64x32_c
  5169. +
  5170. +unsigned int vpx_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5171. +#define vpx_variance64x64 vpx_variance64x64_c
  5172. +
  5173. +unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5174. +#define vpx_variance8x16 vpx_variance8x16_c
  5175. +
  5176. +unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5177. +#define vpx_variance8x4 vpx_variance8x4_c
  5178. +
  5179. +unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
  5180. +#define vpx_variance8x8 vpx_variance8x8_c
  5181. +
  5182. +uint32_t vpx_variance_halfpixvar16x16_h_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  5183. +#define vpx_variance_halfpixvar16x16_h vpx_variance_halfpixvar16x16_h_c
  5184. +
  5185. +uint32_t vpx_variance_halfpixvar16x16_hv_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  5186. +#define vpx_variance_halfpixvar16x16_hv vpx_variance_halfpixvar16x16_hv_c
  5187. +
  5188. +uint32_t vpx_variance_halfpixvar16x16_v_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int  ref_stride, uint32_t *sse);
  5189. +#define vpx_variance_halfpixvar16x16_v vpx_variance_halfpixvar16x16_v_c
  5190. +
  5191. +void vpx_ve_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
  5192. +#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
  5193. +
  5194. +int vpx_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
  5195. +#define vpx_vector_var vpx_vector_var_c
  5196. +
  5197. +void vpx_dsp_rtcd(void);
  5198. +
  5199. +#include "vpx_config.h"
  5200. +
  5201. +#ifdef RTCD_C
  5202. +static void setup_rtcd_internal(void)
  5203. +{
  5204. +}
  5205. +#endif
  5206. +
  5207. +#ifdef __cplusplus
  5208. +}  // extern "C"
  5209. +#endif
  5210. +
  5211. +#endif
  5212. diff --git a/libvpx/source/config/win/generic/vpx_scale_rtcd.h b/libvpx/source/config/win/generic/vpx_scale_rtcd.h
  5213. new file mode 100644
  5214. index 00000000000..12e5cad792f
  5215. --- /dev/null
  5216. +++ b/libvpx/source/config/win/generic/vpx_scale_rtcd.h
  5217. @@ -0,0 +1,66 @@
  5218. +#ifndef VPX_SCALE_RTCD_H_
  5219. +#define VPX_SCALE_RTCD_H_
  5220. +
  5221. +#ifdef RTCD_C
  5222. +#define RTCD_EXTERN
  5223. +#else
  5224. +#define RTCD_EXTERN extern
  5225. +#endif
  5226. +
  5227. +struct yv12_buffer_config;
  5228. +
  5229. +#ifdef __cplusplus
  5230. +extern "C" {
  5231. +#endif
  5232. +
  5233. +void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  5234. +#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
  5235. +
  5236. +void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  5237. +#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
  5238. +
  5239. +void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
  5240. +#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
  5241. +
  5242. +void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  5243. +#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
  5244. +
  5245. +void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  5246. +#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
  5247. +
  5248. +void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  5249. +#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
  5250. +
  5251. +void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
  5252. +#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
  5253. +
  5254. +void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  5255. +#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
  5256. +
  5257. +void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  5258. +#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
  5259. +
  5260. +void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
  5261. +#define vp9_extend_frame_borders vp9_extend_frame_borders_c
  5262. +
  5263. +void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
  5264. +#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
  5265. +
  5266. +void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
  5267. +#define vpx_yv12_copy_y vpx_yv12_copy_y_c
  5268. +
  5269. +void vpx_scale_rtcd(void);
  5270. +
  5271. +#include "vpx_config.h"
  5272. +
  5273. +#ifdef RTCD_C
  5274. +static void setup_rtcd_internal(void)
  5275. +{
  5276. +}
  5277. +#endif
  5278. +
  5279. +#ifdef __cplusplus
  5280. +}  // extern "C"
  5281. +#endif
  5282. +
  5283. +#endif
  5284. diff --git a/opus/BUILD.gn b/opus/BUILD.gn
  5285. index b54f8568823..c10a01236b4 100644
  5286. --- a/opus/BUILD.gn
  5287. +++ b/opus/BUILD.gn
  5288. @@ -29,6 +29,10 @@ config("opus_config") {
  5289.    if (use_opus_fixed_point) {
  5290.      defines = [ "OPUS_FIXED_POINT" ]
  5291.    }
  5292. +  
  5293. +  if (current_cpu == "arm" && current_os == "winuwp" && target_os == "winuwp") {
  5294. +    defines += [ "USE_MSVS_ARM_INTRINCICS" ]
  5295. +  }
  5296.  }
  5297.  
  5298.  config("opus_private_config") {
  5299. @@ -149,6 +153,26 @@ config("opus_test_config") {
  5300.  }
  5301.  
  5302.  if (use_opus_arm_rtcd) {
  5303. +  
  5304. +  if ((current_cpu == "arm") && current_os == "winuwp" && target_os == "winuwp") {
  5305. +    action("convert_rtcd_assembler_for_winuwp") {
  5306. +      script = "//third_party/libvpx/run_perl.py"
  5307. +      outputs = [
  5308. +        "$target_gen_dir/celt_pitch_xcorr_arm.asm",
  5309. +      ]
  5310. +
  5311. +      
  5312. +      args = [
  5313. +        "-s",
  5314. +        "../../third_party/opus/src/celt/arm/ads2armasm_msvs.pl",
  5315. +        "-i",
  5316. +        "../../third_party/opus/src/celt/arm/celt_pitch_xcorr_arm.s",
  5317. +        "-o",
  5318. +        rebase_path("$target_gen_dir/celt_pitch_xcorr_arm.asm", root_build_dir),
  5319. +      ]
  5320. +    }
  5321. +  }
  5322. +  
  5323.    action("convert_rtcd_assembler") {
  5324.      script = "convert_rtcd_assembler.py"
  5325.      outputs = [
  5326. @@ -361,6 +385,16 @@ static_library("opus") {
  5327.    ]
  5328.    public_configs = [ ":opus_config" ]
  5329.  
  5330. +  cflags = []
  5331. +
  5332. +  if (is_win) {
  5333. +
  5334. +    if ((current_cpu == "arm" || current_cpu == "arm64") && target_os == "winuwp") {
  5335. +      cflags += [
  5336. +      "/wd4146",  # Disable unary minus operator applied to unsigned type, result still unsigned
  5337. +    ]
  5338. +    }
  5339. +
  5340.    if (!is_debug && (current_cpu == "arm" || current_cpu == "arm64")) {
  5341.      configs -= [ "//build/config/compiler:default_optimization" ]
  5342.  
  5343. @@ -469,8 +503,14 @@ static_library("opus") {
  5344.      ]
  5345.  
  5346.      if (use_opus_arm_rtcd) {
  5347. +    
  5348. +      if (current_os == "winuwp" && target_os == "winuwp") {
  5349. +        sources += get_target_outputs(":convert_rtcd_assembler_for_winuwp")
  5350. +      } else {
  5351. +        sources += [ "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S", ]
  5352. +      }
  5353. +
  5354.        sources += [
  5355. -        "$target_gen_dir/celt_pitch_xcorr_arm_gnu.S",
  5356.          "src/celt/arm/arm_celt_map.c",
  5357.          "src/celt/arm/armcpu.c",
  5358.          "src/celt/arm/armcpu.h",
  5359. @@ -479,7 +519,16 @@ static_library("opus") {
  5360.          "src/celt/arm/pitch_arm.h",
  5361.          "src/silk/arm/arm_silk_map.c",
  5362.        ]
  5363. -      deps += [ ":convert_rtcd_assembler" ]
  5364. +
  5365. +      if (current_os == "winuwp" && target_os == "winuwp")  {
  5366. +        deps += [
  5367. +          ":convert_rtcd_assembler_for_winuwp",
  5368. +        ]
  5369. +      } else {
  5370. +        deps += [
  5371. +          ":convert_rtcd_assembler",
  5372. +        ]
  5373. +      }
  5374.      }
  5375.  
  5376.      if (arm_use_neon) {
  5377. @@ -566,6 +615,9 @@ test("test_opus_encode") {
  5378.    deps = [
  5379.      ":opus",
  5380.    ]
  5381. +  if (current_os == "winuwp") {
  5382. +    deps += [ "//third_party/winuwp_compat:force_include_std" ]
  5383. +  }
  5384.  }
  5385.  
  5386.  # GN orders flags on a target before flags from configs. The default config
  5387. @@ -596,6 +648,9 @@ test("test_opus_decode") {
  5388.    deps = [
  5389.      ":opus",
  5390.    ]
  5391. +  if (current_os == "winuwp") {
  5392. +    deps += [ "//third_party/winuwp_compat:force_include_std" ]
  5393. +  }
  5394.  }
  5395.  
  5396.  test("test_opus_padding") {
  5397. diff --git a/opus/armasm_ms.config b/opus/armasm_ms.config
  5398. new file mode 100644
  5399. index 00000000000..b617231e7f7
  5400. --- /dev/null
  5401. +++ b/opus/armasm_ms.config
  5402. @@ -0,0 +1 @@
  5403. +-I src -oldit
  5404. diff --git a/opus/src/celt/arm/ads2armasm_msvs.pl b/opus/src/celt/arm/ads2armasm_msvs.pl
  5405. new file mode 100644
  5406. index 00000000000..8a0c51b4253
  5407. --- /dev/null
  5408. +++ b/opus/src/celt/arm/ads2armasm_msvs.pl
  5409. @@ -0,0 +1,53 @@
  5410. +#!/usr/bin/env perl
  5411. +##
  5412. +##  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
  5413. +##
  5414. +##  Use of this source code is governed by a BSD-style license
  5415. +##  that can be found in the LICENSE file in the root of the source
  5416. +##  tree. An additional intellectual property rights grant can be found
  5417. +##  in the file PATENTS.  All contributing project authors may
  5418. +##  be found in the AUTHORS file in the root of the source tree.
  5419. +##
  5420. +
  5421. +use FindBin;
  5422. +use lib $FindBin::Bin;
  5423. +use thumb;
  5424. +use File::Copy;
  5425. +use FindBin qw( $RealBin );
  5426. +
  5427. +print "; This file was created from a .s file\n";
  5428. +print ";  using the ads2armasm_ms.pl script.";
  5429. +
  5430. +copy("$RealBin/armopts.s.msvs","$RealBin/armopts.s") or die "Copy failed: $!";
  5431. +
  5432. +my $filename = 'auxFile.txt';
  5433. +open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
  5434. +
  5435. +while (<>)
  5436. +{
  5437. +    undef $comment;
  5438. +    undef $line;
  5439. +
  5440. +    s/^IF/\tIF/;
  5441. +    s/^END/\tEND/;
  5442. +    s/^ENDIF/\tENDIF/;
  5443. +    s/REQUIRE8//;
  5444. +    s/PRESERVE8//;
  5445. +    s/^\s*ARM\s*$//;
  5446. +    s/AREA\s+\|\|(.*)\|\|/AREA |$1|/;
  5447. +    s/qsubaddx/qsax/i;
  5448. +    s/qaddsubx/qasx/i;
  5449. +
  5450. +  thumb::FixThumbInstructions($_, 1);
  5451. +
  5452. +    s/ldrneb/ldrbne/i;
  5453. +    s/ldrneh/ldrhne/i;
  5454. +    s/^(\s*)ENDP.*/$&\n$1ALIGN 4/;
  5455. +
  5456. +    print $fh $_;
  5457. +}
  5458. +
  5459. +close $fh;
  5460. +copy("auxFile.txt","gen/third_party/opus/celt_pitch_xcorr_arm.asm") or die "Copy failed: $!";
  5461. +unlink $filename;
  5462. +##print "\n; celt_pitch_xcorr_arm.asm created\n;  ";
  5463. diff --git a/opus/src/celt/arm/armcpu.c b/opus/src/celt/arm/armcpu.c
  5464. index 694a63b78e6..ffe04cae0d4 100644
  5465. --- a/opus/src/celt/arm/armcpu.c
  5466. +++ b/opus/src/celt/arm/armcpu.c
  5467. @@ -46,10 +46,25 @@
  5468.  
  5469.  #if defined(_MSC_VER)
  5470.  /*For GetExceptionCode() and EXCEPTION_ILLEGAL_INSTRUCTION.*/
  5471. -# define WIN32_LEAN_AND_MEAN
  5472. +# ifndef WIN32_LEAN_AND_MEAN
  5473. +#   define WIN32_LEAN_AND_MEAN
  5474. +# endif /* WIN32_LEAN_AND_MEAN */
  5475.  # define WIN32_EXTRA_LEAN
  5476.  # include <windows.h>
  5477.  
  5478. +#ifdef WINUWP
  5479. +static OPUS_INLINE opus_uint32 opus_cpu_capabilities(void){
  5480. +  opus_uint32 flags;
  5481. +  flags = OPUS_ARM_MAY_HAVE_MEDIA | OPUS_CPU_ARM_EDSP_FLAG;
  5482. +  
  5483. +  if (IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
  5484. +  {
  5485. +    flags |= OPUS_CPU_ARM_NEON_FLAG;
  5486. +  }
  5487. +
  5488. +  return flags;
  5489. +}
  5490. +#else /* WINUWP */
  5491.  static OPUS_INLINE opus_uint32 opus_cpu_capabilities(void){
  5492.    opus_uint32 flags;
  5493.    flags=0;
  5494. @@ -90,6 +105,7 @@ static OPUS_INLINE opus_uint32 opus_cpu_capabilities(void){
  5495.  # endif
  5496.    return flags;
  5497.  }
  5498. +#endif /* WINUWP */
  5499.  
  5500.  #elif defined(__linux__)
  5501.  /* Linux based */
  5502. diff --git a/opus/src/celt/arm/armopts.s.msvs b/opus/src/celt/arm/armopts.s.msvs
  5503. new file mode 100644
  5504. index 00000000000..812abaa3478
  5505. --- /dev/null
  5506. +++ b/opus/src/celt/arm/armopts.s.msvs
  5507. @@ -0,0 +1,41 @@
  5508. +;/* Copyright (C) 2013 Mozilla Corporation */
  5509. +;/*
  5510. +;   Redistribution and use in source and binary forms, with or without
  5511. +;   modification, are permitted provided that the following conditions
  5512. +;   are met:
  5513. +;
  5514. +;   - Redistributions of source code must retain the above copyright
  5515. +;   notice, this list of conditions and the following disclaimer.
  5516. +;
  5517. +;   - Redistributions in binary form must reproduce the above copyright
  5518. +;   notice, this list of conditions and the following disclaimer in the
  5519. +;   documentation and/or other materials provided with the distribution.
  5520. +;
  5521. +;   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  5522. +;   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  5523. +;   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  5524. +;   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
  5525. +;   OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  5526. +;   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  5527. +;   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  5528. +;   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  5529. +;   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  5530. +;   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  5531. +;   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  5532. +;*/
  5533. +
  5534. +;-------------------------------------
  5535. +;  ARM Options for Windows Phone
  5536. +;-------------------------------------
  5537. +
  5538. +; Set the following to 1 if we have EDSP instructions
  5539. +;  (LDRD/STRD, etc., ARMv5E and later).
  5540. +OPUS_ARM_MAY_HAVE_EDSP  * 1
  5541. +
  5542. +; Set the following to 1 if we have ARMv6 media instructions.
  5543. +OPUS_ARM_MAY_HAVE_MEDIA * 1
  5544. +
  5545. +; Set the following to 1 if we have NEON (some ARMv7)
  5546. +OPUS_ARM_MAY_HAVE_NEON  * 1
  5547. +
  5548. +  END
  5549. diff --git a/opus/src/celt/arm/fixed_armv4.h b/opus/src/celt/arm/fixed_armv4.h
  5550. index d84888a772a..a488e7c40b7 100644
  5551. --- a/opus/src/celt/arm/fixed_armv4.h
  5552. +++ b/opus/src/celt/arm/fixed_armv4.h
  5553. @@ -27,8 +27,14 @@
  5554.  #ifndef FIXED_ARMv4_H
  5555.  #define FIXED_ARMv4_H
  5556.  
  5557. +#ifdef USE_MSVS_ARM_INTRINCICS
  5558. +#include <arm_neon.h>
  5559. +/** 16x32 multiplication, followed by a 16-bit shift right. Results fits in 32 bits */
  5560. +#define MULT16_32_Q16_armv4(a,b) (((opus_val32)_arm_smull((a), (b)))>>16)
  5561. +/** 16x32 multiplication, followed by a 15-bit shift right. Results fits in 32 bits */
  5562. +#define MULT16_32_Q15_armv4(a, b) (((opus_val32)_arm_smull((a), (b))) >> 15)
  5563. +#else /* USE_MSVS_ARM_INTRINCICS */
  5564.  /** 16x32 multiplication, followed by a 16-bit shift right. Results fits in 32 bits */
  5565. -#undef MULT16_32_Q16
  5566.  static OPUS_INLINE opus_val32 MULT16_32_Q16_armv4(opus_val16 a, opus_val32 b)
  5567.  {
  5568.    unsigned rd_lo;
  5569. @@ -41,11 +47,8 @@ static OPUS_INLINE opus_val32 MULT16_32_Q16_armv4(opus_val16 a, opus_val32 b)
  5570.    );
  5571.    return rd_hi;
  5572.  }
  5573. -#define MULT16_32_Q16(a, b) (MULT16_32_Q16_armv4(a, b))
  5574. -
  5575.  
  5576.  /** 16x32 multiplication, followed by a 15-bit shift right. Results fits in 32 bits */
  5577. -#undef MULT16_32_Q15
  5578.  static OPUS_INLINE opus_val32 MULT16_32_Q15_armv4(opus_val16 a, opus_val32 b)
  5579.  {
  5580.    unsigned rd_lo;
  5581. @@ -59,6 +62,11 @@ static OPUS_INLINE opus_val32 MULT16_32_Q15_armv4(opus_val16 a, opus_val32 b)
  5582.    /*We intentionally don't OR in the high bit of rd_lo for speed.*/
  5583.    return SHL32(rd_hi,1);
  5584.  }
  5585. +#endif /* USE_MSVS_ARM_INTRINCICS */
  5586. +
  5587. +#undef MULT16_32_Q16
  5588. +#define MULT16_32_Q16(a, b) (MULT16_32_Q16_armv4(a, b))
  5589. +#undef MULT16_32_Q15
  5590.  #define MULT16_32_Q15(a, b) (MULT16_32_Q15_armv4(a, b))
  5591.  
  5592.  
  5593. diff --git a/opus/src/celt/arm/fixed_armv5e.h b/opus/src/celt/arm/fixed_armv5e.h
  5594. index 6bf73cbace3..996377120ad 100644
  5595. --- a/opus/src/celt/arm/fixed_armv5e.h
  5596. +++ b/opus/src/celt/arm/fixed_armv5e.h
  5597. @@ -32,8 +32,21 @@
  5598.  
  5599.  #include "fixed_armv4.h"
  5600.  
  5601. +#ifdef USE_MSVS_ARM_INTRINCICS
  5602. +/** 16x32 multiplication, followed by a 16-bit shift right. Results fits in 32 bits */
  5603. +#define MULT16_32_Q16_armv5e(a,b)   _arm_smulwb((b), (a))
  5604. +/** 16x32 multiplication, followed by a 15-bit shift right. Results fits in 32 bits */
  5605. +#define MULT16_32_Q15_armv5e(a,b)   _arm_smulwb(((b) << 1), (a))
  5606. +/** 16x32 multiply, followed by a 15-bit shift right and 32-bit add.
  5607. +b must fit in 31 bits.
  5608. +Result fits in 32 bits. */
  5609. +#define MAC16_32_Q15_armv5e(c,a,b)  _arm_smlawb(((b) << 1), (a), (c))
  5610. +/** 16x16 multiply-add where the result fits in 32 bits */
  5611. +#define MAC16_16_armv5e(c,a,b)      _arm_smlabb((a), (b), (c))
  5612. +/** 16x16 multiplication where the result fits in 32 bits */
  5613. +#define MULT16_16_armv5e(a,b)       _arm_smulbb((a), (b))
  5614. +#else /* USE_MSVS_ARM_INTRINCICS */
  5615.  /** 16x32 multiplication, followed by a 16-bit shift right. Results fits in 32 bits */
  5616. -#undef MULT16_32_Q16
  5617.  static OPUS_INLINE opus_val32 MULT16_32_Q16_armv5e(opus_val16 a, opus_val32 b)
  5618.  {
  5619.    int res;
  5620. @@ -45,11 +58,8 @@ static OPUS_INLINE opus_val32 MULT16_32_Q16_armv5e(opus_val16 a, opus_val32 b)
  5621.    );
  5622.    return res;
  5623.  }
  5624. -#define MULT16_32_Q16(a, b) (MULT16_32_Q16_armv5e(a, b))
  5625. -
  5626.  
  5627.  /** 16x32 multiplication, followed by a 15-bit shift right. Results fits in 32 bits */
  5628. -#undef MULT16_32_Q15
  5629.  static OPUS_INLINE opus_val32 MULT16_32_Q15_armv5e(opus_val16 a, opus_val32 b)
  5630.  {
  5631.    int res;
  5632. @@ -61,13 +71,10 @@ static OPUS_INLINE opus_val32 MULT16_32_Q15_armv5e(opus_val16 a, opus_val32 b)
  5633.    );
  5634.    return SHL32(res,1);
  5635.  }
  5636. -#define MULT16_32_Q15(a, b) (MULT16_32_Q15_armv5e(a, b))
  5637. -
  5638.  
  5639.  /** 16x32 multiply, followed by a 15-bit shift right and 32-bit add.
  5640.      b must fit in 31 bits.
  5641.      Result fits in 32 bits. */
  5642. -#undef MAC16_32_Q15
  5643.  static OPUS_INLINE opus_val32 MAC16_32_Q15_armv5e(opus_val32 c, opus_val16 a,
  5644.   opus_val32 b)
  5645.  {
  5646. @@ -80,7 +87,6 @@ static OPUS_INLINE opus_val32 MAC16_32_Q15_armv5e(opus_val32 c, opus_val16 a,
  5647.    );
  5648.    return res;
  5649.  }
  5650. -#define MAC16_32_Q15(c, a, b) (MAC16_32_Q15_armv5e(c, a, b))
  5651.  
  5652.  /** 16x32 multiply, followed by a 16-bit shift right and 32-bit add.
  5653.      Result fits in 32 bits. */
  5654. @@ -100,7 +106,6 @@ static OPUS_INLINE opus_val32 MAC16_32_Q16_armv5e(opus_val32 c, opus_val16 a,
  5655.  #define MAC16_32_Q16(c, a, b) (MAC16_32_Q16_armv5e(c, a, b))
  5656.  
  5657.  /** 16x16 multiply-add where the result fits in 32 bits */
  5658. -#undef MAC16_16
  5659.  static OPUS_INLINE opus_val32 MAC16_16_armv5e(opus_val32 c, opus_val16 a,
  5660.   opus_val16 b)
  5661.  {
  5662. @@ -113,10 +118,8 @@ static OPUS_INLINE opus_val32 MAC16_16_armv5e(opus_val32 c, opus_val16 a,
  5663.    );
  5664.    return res;
  5665.  }
  5666. -#define MAC16_16(c, a, b) (MAC16_16_armv5e(c, a, b))
  5667.  
  5668.  /** 16x16 multiplication where the result fits in 32 bits */
  5669. -#undef MULT16_16
  5670.  static OPUS_INLINE opus_val32 MULT16_16_armv5e(opus_val16 a, opus_val16 b)
  5671.  {
  5672.    int res;
  5673. @@ -128,6 +131,18 @@ static OPUS_INLINE opus_val32 MULT16_16_armv5e(opus_val16 a, opus_val16 b)
  5674.    );
  5675.    return res;
  5676.  }
  5677. +
  5678. +#endif /* USE_MSVS_ARM_INTRINCICS */
  5679. +
  5680. +#undef MULT16_32_Q16
  5681. +#define MULT16_32_Q16(a, b) (MULT16_32_Q16_armv5e(a, b))
  5682. +#undef MULT16_32_Q15
  5683. +#define MULT16_32_Q15(a, b) (MULT16_32_Q15_armv5e(a, b))
  5684. +#undef MAC16_32_Q15
  5685. +#define MAC16_32_Q15(c, a, b) (MAC16_32_Q15_armv5e(c, a, b))
  5686. +#undef MAC16_16
  5687. +#define MAC16_16(c, a, b) (MAC16_16_armv5e(c, a, b))
  5688. +#undef MULT16_16
  5689.  #define MULT16_16(a, b) (MULT16_16_armv5e(a, b))
  5690.  
  5691.  #ifdef OPUS_ARM_INLINE_MEDIA
  5692. diff --git a/opus/src/celt/arm/kiss_fft_armv4.h b/opus/src/celt/arm/kiss_fft_armv4.h
  5693. index e4faad6f2b9..f1dfde90a61 100644
  5694. --- a/opus/src/celt/arm/kiss_fft_armv4.h
  5695. +++ b/opus/src/celt/arm/kiss_fft_armv4.h
  5696. @@ -32,6 +32,8 @@
  5697.  
  5698.  #ifdef FIXED_POINT
  5699.  
  5700. +#ifdef USE_MSVS_ARM_INTRINCICS
  5701. +#else
  5702.  #undef C_MUL
  5703.  #define C_MUL(m,a,b) \
  5704.      do{ \
  5705. @@ -118,4 +120,6 @@
  5706.  
  5707.  #endif /* FIXED_POINT */
  5708.  
  5709. +#endif //USE_MSVS_ARM_INTRINCICS
  5710. +
  5711.  #endif /* KISS_FFT_ARMv4_H */
  5712. diff --git a/opus/src/celt/arm/kiss_fft_armv5e.h b/opus/src/celt/arm/kiss_fft_armv5e.h
  5713. index 9eca183d77d..b96f2a848fd 100644
  5714. --- a/opus/src/celt/arm/kiss_fft_armv5e.h
  5715. +++ b/opus/src/celt/arm/kiss_fft_armv5e.h
  5716. @@ -38,6 +38,58 @@
  5717.  #define LDRD_CONS "Uq"
  5718.  #endif
  5719.  
  5720. +#ifdef USE_MSVS_ARM_INTRINCICS
  5721. +//conversion from kiss_twiddle_cpx to int
  5722. +#define KISS_TWIDDLE_CPX_TO_INT(val) *((int*)(&(val)))
  5723. +#define C_MUL_armv5e(m,a,b) \
  5724. +    do{ \
  5725. +        int mr1__ = 0; \
  5726. +        int mr2__ = 0; \
  5727. +        int mi__ = 0; \
  5728. +        long long aval__ = 0;\
  5729. +        int bval__ = 0; \
  5730. +        mi__ = _arm_smulwb((a).i, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5731. +        mr1__ = _arm_smulwb((a).r, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5732. +        mr2__ = _arm_smulwt((a).i, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5733. +        mi__ = _arm_smlawt((a).r, KISS_TWIDDLE_CPX_TO_INT(b), mi__); \
  5734. +        (m).r = SHL32(SUB32(mr1__, mr2__), 1); \
  5735. +        (m).i = SHL32(mi__, 1); \
  5736. +                    } \
  5737. +    while(0)
  5738. +
  5739. +#define C_MUL4_armv5e(m,a,b) \
  5740. +    do{ \
  5741. +        int mr1__ = 0; \
  5742. +        int mr2__ = 0; \
  5743. +        int mi__ = 0; \
  5744. +        long long aval__ = 0; \
  5745. +        int bval__ = 0; \
  5746. +        mi__ = _arm_smulwb((a).i, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5747. +        mr1__ = _arm_smulwb((a).r, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5748. +        mr2__ = _arm_smulwt((a).i, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5749. +        mi__ = _arm_smlawt((a).r, KISS_TWIDDLE_CPX_TO_INT(b), mi__); \
  5750. +        (m).r = SHL32(SUB32(mr1__, mr2__), 1); \
  5751. +        (m).i = SHL32(mi__, 1); \
  5752. +            } \
  5753. +    while(0)
  5754. +
  5755. +#define C_MULC_armv5e(m,a,b) \
  5756. +    do{ \
  5757. +        int mr__ = 0; \
  5758. +        int mi1__ = 0; \
  5759. +        int mi2__ = 0; \
  5760. +        long long aval__ = 0; \
  5761. +        int bval__ = 0; \
  5762. +        mr__ = _arm_smulwb((a).r, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5763. +        mi1__ = _arm_smulwb((a).i, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5764. +        mi2__ = _arm_smulwt((a).r, KISS_TWIDDLE_CPX_TO_INT(b)); \
  5765. +        mr__ = _arm_smlawt((a).i, KISS_TWIDDLE_CPX_TO_INT(b), mr__); \
  5766. +        (m).r = SHL32(mr__, 1); \
  5767. +        (m).i = SHL32(SUB32(mi1__, mi2__), 1); \
  5768. +                } \
  5769. +    while(0)
  5770. +
  5771. +#else
  5772.  #undef C_MUL
  5773.  #define C_MUL(m,a,b) \
  5774.      do{ \
  5775. @@ -112,6 +164,16 @@
  5776.          (m).i = SHL32(SUB32(mi1__, mi2__), 1); \
  5777.      } \
  5778.      while(0)
  5779. +#endif  // USE_MSVS_ARM_INTRINCICS
  5780. +
  5781. +#ifdef USE_MSVS_ARM_INTRINCICS
  5782. +#undef C_MUL
  5783. +#define C_MUL(m, a, b) C_MUL_armv5e((m), (a), (b))
  5784. +#undef C_MUL4
  5785. +#define C_MUL4(m, a, b) C_MUL4_armv5e((m), (a), (b))
  5786. +#undef C_MULC
  5787. +#define C_MULC(m, a, b) C_MULC_armv5e((m), (a), (b))
  5788. +#endif  // USE_MSVS_ARM_INTRINCICS
  5789.  
  5790.  #endif /* FIXED_POINT */
  5791.  
  5792. diff --git a/opus/src/celt/arm/thumb.pm b/opus/src/celt/arm/thumb.pm
  5793. new file mode 100644
  5794. index 00000000000..584ca2994b0
  5795. --- /dev/null
  5796. +++ b/opus/src/celt/arm/thumb.pm
  5797. @@ -0,0 +1,70 @@
  5798. +#!/usr/bin/env perl
  5799. +##
  5800. +##  Copyright (c) 2013 The WebM project authors. All Rights Reserved.
  5801. +##
  5802. +##  Use of this source code is governed by a BSD-style license
  5803. +##  that can be found in the LICENSE file in the root of the source
  5804. +##  tree. An additional intellectual property rights grant can be found
  5805. +##  in the file PATENTS.  All contributing project authors may
  5806. +##  be found in the AUTHORS file in the root of the source tree.
  5807. +##
  5808. +
  5809. +package thumb;
  5810. +
  5811. +sub FixThumbInstructions($$)
  5812. +{
  5813. +    my $short_branches = $_[1];
  5814. +    my $branch_shift_offset = $short_branches ? 1 : 0;
  5815. +
  5816. +    # Write additions with shifts, such as "add r10, r11, lsl #8",
  5817. +    # in three operand form, "add r10, r10, r11, lsl #8".
  5818. +    s/(add\s+)(r\d+),\s*(r\d+),\s*(lsl #\d+)/$1$2, $2, $3, $4/gi;
  5819. +
  5820. +    # Convert additions with a non-constant shift into a sequence
  5821. +    # with left shift, addition and a right shift (to restore the
  5822. +    # register to the original value). Currently the right shift
  5823. +    # isn't necessary in the code base since the values in these
  5824. +    # registers aren't used, but doing the shift for consistency.
  5825. +    # This converts instructions such as "add r12, r12, r5, lsl r4"
  5826. +    # into the sequence "lsl r5, r4", "add r12, r12, r5", "lsr r5, r4".
  5827. +    s/^(\s*)(add)(\s+)(r\d+),\s*(r\d+),\s*(r\d+),\s*lsl (r\d+)/$1lsl$3$6, $7\n$1$2$3$4, $5, $6\n$1lsr$3$6, $7/gi;
  5828. +
  5829. +    # Convert loads with right shifts in the indexing into a
  5830. +    # sequence of an add, load and sub. This converts
  5831. +    # "ldrb r4, [r9, lr, asr #1]" into "add r9, r9, lr, asr #1",
  5832. +    # "ldrb r9, [r9]", "sub r9, r9, lr, asr #1".
  5833. +    s/^(\s*)(ldrb)(\s+)(r\d+),\s*\[(\w+),\s*(\w+),\s*(asr #\d+)\]/$1add $3$5, $5, $6, $7\n$1$2$3$4, [$5]\n$1sub $3$5, $5, $6, $7/gi;
  5834. +
  5835. +    # Convert register indexing with writeback into a separate add
  5836. +    # instruction. This converts "ldrb r12, [r1, r2]!" into
  5837. +    # "ldrb r12, [r1, r2]", "add r1, r1, r2".
  5838. +    s/^(\s*)(ldrb)(\s+)(r\d+),\s*\[(\w+),\s*(\w+)\]!/$1$2$3$4, [$5, $6]\n$1add $3$5, $6/gi;
  5839. +
  5840. +    # Convert negative register indexing into separate sub/add instructions.
  5841. +    # This converts "ldrne r4, [src, -pstep, lsl #1]" into
  5842. +    # "subne src, src, pstep, lsl #1", "ldrne r4, [src]",
  5843. +    # "addne src, src, pstep, lsl #1". In a couple of cases where
  5844. +    # this is used, it's used for two subsequent load instructions,
  5845. +    # where a hand-written version of it could merge two subsequent
  5846. +    # add and sub instructions.
  5847. +    s/^(\s*)((ldr|str|pld)(ne)?)(\s+)(r\d+,\s*)?\[(\w+), -([^\]]+)\]/$1sub$4$5$7, $7, $8\n$1$2$5$6\[$7\]\n$1add$4$5$7, $7, $8/gi;
  5848. +
  5849. +    # Convert register post indexing to a separate add instruction.
  5850. +    # This converts "ldrneb r9, [r0], r2" into "ldrneb r9, [r0]",
  5851. +    # "addne r0, r0, r2".
  5852. +    s/^(\s*)((ldr|str)(ne)?[bhd]?)(\s+)(\w+),(\s*\w+,)?\s*\[(\w+)\],\s*(\w+)/$1$2$5$6,$7 [$8]\n$1add$4$5$8, $8, $9/gi;
  5853. +
  5854. +    # Convert a conditional addition to the pc register into a series of
  5855. +    # instructions. This converts "addlt pc, pc, r3, lsl #2" into
  5856. +    # "itttt lt", "movlt.n r12, pc", "addlt.w r12, #12",
  5857. +    # "addlt.w r12, r12, r3, lsl #2", "movlt.n pc, r12".
  5858. +    # This assumes that r12 is free at this point.
  5859. +    s/^(\s*)addlt(\s+)pc,\s*pc,\s*(\w+),\s*lsl\s*#(\d+)/$1itttt$2lt\n$1movlt.n$2r12, pc\n$1addlt.w$2r12, #12\n$1addlt.w$2r12, r12, $3, lsl #($4-$branch_shift_offset)\n$1movlt.n$2pc, r12/gi;
  5860. +
  5861. +    # Convert "mov pc, lr" into "bx lr", since the former only works
  5862. +    # for switching from arm to thumb (and only in armv7), but not
  5863. +    # from thumb to arm.
  5864. +    s/mov(\s*)pc\s*,\s*lr/bx$1lr/gi;
  5865. +}
  5866. +
  5867. +1;
  5868. diff --git a/opus/src/silk/arm/SigProc_FIX_armv4.h b/opus/src/silk/arm/SigProc_FIX_armv4.h
  5869. index ff62b1e5d63..1970a9497ba 100644
  5870. --- a/opus/src/silk/arm/SigProc_FIX_armv4.h
  5871. +++ b/opus/src/silk/arm/SigProc_FIX_armv4.h
  5872. @@ -29,6 +29,7 @@ POSSIBILITY OF SUCH DAMAGE.
  5873.  #ifndef SILK_SIGPROC_FIX_ARMv4_H
  5874.  #define SILK_SIGPROC_FIX_ARMv4_H
  5875.  
  5876. +#ifndef USE_MSVS_ARM_INTRINCICS
  5877.  #undef silk_MLA
  5878.  static OPUS_INLINE opus_int32 silk_MLA_armv4(opus_int32 a, opus_int32 b,
  5879.   opus_int32 c)
  5880. @@ -43,5 +44,6 @@ static OPUS_INLINE opus_int32 silk_MLA_armv4(opus_int32 a, opus_int32 b,
  5881.    return res;
  5882.  }
  5883.  #define silk_MLA(a, b, c) (silk_MLA_armv4(a, b, c))
  5884. +#endif //USE_MSVS_ARM_INTRINCICS
  5885.  
  5886.  #endif
  5887. diff --git a/opus/src/silk/arm/SigProc_FIX_armv5e.h b/opus/src/silk/arm/SigProc_FIX_armv5e.h
  5888. index 617a09cab17..fdc6802c05f 100644
  5889. --- a/opus/src/silk/arm/SigProc_FIX_armv5e.h
  5890. +++ b/opus/src/silk/arm/SigProc_FIX_armv5e.h
  5891. @@ -29,7 +29,10 @@ POSSIBILITY OF SUCH DAMAGE.
  5892.  #ifndef SILK_SIGPROC_FIX_ARMv5E_H
  5893.  #define SILK_SIGPROC_FIX_ARMv5E_H
  5894.  
  5895. -#undef silk_SMULTT
  5896. +#ifdef USE_MSVS_ARM_INTRINCICS
  5897. +#define silk_SMULTT_armv5e(a, b)           _arm_smultt((a), (b))
  5898. +#define silk_SMLATT_armv5e(a, b, c)        _arm_smlatt((b), (c), (a))
  5899. +#else
  5900.  static OPUS_INLINE opus_int32 silk_SMULTT_armv5e(opus_int32 a, opus_int32 b)
  5901.  {
  5902.    opus_int32 res;
  5903. @@ -41,9 +44,7 @@ static OPUS_INLINE opus_int32 silk_SMULTT_armv5e(opus_int32 a, opus_int32 b)
  5904.    );
  5905.    return res;
  5906.  }
  5907. -#define silk_SMULTT(a, b) (silk_SMULTT_armv5e(a, b))
  5908.  
  5909. -#undef silk_SMLATT
  5910.  static OPUS_INLINE opus_int32 silk_SMLATT_armv5e(opus_int32 a, opus_int32 b,
  5911.   opus_int32 c)
  5912.  {
  5913. @@ -56,6 +57,12 @@ static OPUS_INLINE opus_int32 silk_SMLATT_armv5e(opus_int32 a, opus_int32 b,
  5914.    );
  5915.    return res;
  5916.  }
  5917. +#endif //USE_MSVS_ARM_INTRINCICS
  5918. +
  5919. +#undef silk_SMULTT
  5920. +#define silk_SMULTT(a, b) (silk_SMULTT_armv5e(a, b))
  5921. +
  5922. +#undef silk_SMLATT
  5923.  #define silk_SMLATT(a, b, c) (silk_SMLATT_armv5e(a, b, c))
  5924.  
  5925.  #endif
  5926. diff --git a/opus/src/silk/arm/macros_armv4.h b/opus/src/silk/arm/macros_armv4.h
  5927. index 877eb18dd58..1cd9f3314f8 100644
  5928. --- a/opus/src/silk/arm/macros_armv4.h
  5929. +++ b/opus/src/silk/arm/macros_armv4.h
  5930. @@ -28,13 +28,22 @@ POSSIBILITY OF SUCH DAMAGE.
  5931.  #ifndef SILK_MACROS_ARMv4_H
  5932.  #define SILK_MACROS_ARMv4_H
  5933.  
  5934. +#ifdef USE_MSVS_ARM_INTRINCICS
  5935. +/* (a32 * (opus_int32)((opus_int16)(b32))) >> 16 output have to be 32bit int */
  5936. +#define silk_SMULWB_armv4(a, b)    ((opus_int32)((_arm_smull((a),(opus_int16)(b)) >> 16)))
  5937. +/* (a32 * (b32 >> 16)) >> 16 */
  5938. +#define silk_SMULWT_armv4(a, b)     ((opus_int32)(_arm_smull((a), (b)&~0xFFFF)))
  5939. +/* (a32 * b32) >> 16 */
  5940. +#define silk_SMULWW_armv4(a, b)     ((opus_int32)((_arm_smull((a),(b))) >> 16))
  5941. +#define silk_SMLAWW_armv4(a, b, c)  (silk_SMULWW_armv4((b), (c)) + (a))
  5942. +#else /* USE_MSVS_ARM_INTRINCICS */
  5943. +
  5944.  /* This macro only avoids the undefined behaviour from a left shift of
  5945.     a negative value. It should only be used in macros that can't include
  5946.     SigProc_FIX.h. In other cases, use silk_LSHIFT32(). */
  5947.  #define SAFE_SHL(a,b) ((opus_int32)((opus_uint32)(a) << (b)))
  5948.  
  5949.  /* (a32 * (opus_int32)((opus_int16)(b32))) >> 16 output have to be 32bit int */
  5950. -#undef silk_SMULWB
  5951.  static OPUS_INLINE opus_int32 silk_SMULWB_armv4(opus_int32 a, opus_int16 b)
  5952.  {
  5953.    unsigned rd_lo;
  5954. @@ -47,14 +56,8 @@ static OPUS_INLINE opus_int32 silk_SMULWB_armv4(opus_int32 a, opus_int16 b)
  5955.    );
  5956.    return rd_hi;
  5957.  }
  5958. -#define silk_SMULWB(a, b) (silk_SMULWB_armv4(a, b))
  5959. -
  5960. -/* a32 + (b32 * (opus_int32)((opus_int16)(c32))) >> 16 output have to be 32bit int */
  5961. -#undef silk_SMLAWB
  5962. -#define silk_SMLAWB(a, b, c) ((a) + silk_SMULWB(b, c))
  5963.  
  5964.  /* (a32 * (b32 >> 16)) >> 16 */
  5965. -#undef silk_SMULWT
  5966.  static OPUS_INLINE opus_int32 silk_SMULWT_armv4(opus_int32 a, opus_int32 b)
  5967.  {
  5968.    unsigned rd_lo;
  5969. @@ -67,14 +70,8 @@ static OPUS_INLINE opus_int32 silk_SMULWT_armv4(opus_int32 a, opus_int32 b)
  5970.    );
  5971.    return rd_hi;
  5972.  }
  5973. -#define silk_SMULWT(a, b) (silk_SMULWT_armv4(a, b))
  5974. -
  5975. -/* a32 + (b32 * (c32 >> 16)) >> 16 */
  5976. -#undef silk_SMLAWT
  5977. -#define silk_SMLAWT(a, b, c) ((a) + silk_SMULWT(b, c))
  5978.  
  5979.  /* (a32 * b32) >> 16 */
  5980. -#undef silk_SMULWW
  5981.  static OPUS_INLINE opus_int32 silk_SMULWW_armv4(opus_int32 a, opus_int32 b)
  5982.  {
  5983.    unsigned rd_lo;
  5984. @@ -87,9 +84,7 @@ static OPUS_INLINE opus_int32 silk_SMULWW_armv4(opus_int32 a, opus_int32 b)
  5985.    );
  5986.    return SAFE_SHL(rd_hi,16)+(rd_lo>>16);
  5987.  }
  5988. -#define silk_SMULWW(a, b) (silk_SMULWW_armv4(a, b))
  5989.  
  5990. -#undef silk_SMLAWW
  5991.  static OPUS_INLINE opus_int32 silk_SMLAWW_armv4(opus_int32 a, opus_int32 b,
  5992.   opus_int32 c)
  5993.  {
  5994. @@ -103,6 +98,22 @@ static OPUS_INLINE opus_int32 silk_SMLAWW_armv4(opus_int32 a, opus_int32 b,
  5995.    );
  5996.    return a+SAFE_SHL(rd_hi,16)+(rd_lo>>16);
  5997.  }
  5998. +
  5999. +#endif /* USE_MSVS_ARM_INTRINCICS */
  6000. +
  6001. +#undef silk_SMULWB
  6002. +#define silk_SMULWB(a, b) (silk_SMULWB_armv4(a, b))
  6003. +/* a32 + (b32 * (opus_int32)((opus_int16)(c32))) >> 16 output have to be 32bit int */
  6004. +#undef silk_SMLAWB
  6005. +#define silk_SMLAWB(a, b, c) ((a) + silk_SMULWB(b, c))
  6006. +#undef silk_SMULWT
  6007. +#define silk_SMULWT(a, b) (silk_SMULWT_armv4(a, b))
  6008. +///* a32 + (b32 * (c32 >> 16)) >> 16 */
  6009. +#undef silk_SMLAWT
  6010. +#define silk_SMLAWT(a, b, c) ((a) + silk_SMULWT(b, c))
  6011. +#undef silk_SMULWW
  6012. +#define silk_SMULWW(a, b) (silk_SMULWW_armv4(a, b))
  6013. +#undef silk_SMLAWW
  6014.  #define silk_SMLAWW(a, b, c) (silk_SMLAWW_armv4(a, b, c))
  6015.  
  6016.  #undef SAFE_SHL
  6017. diff --git a/opus/src/silk/arm/macros_armv5e.h b/opus/src/silk/arm/macros_armv5e.h
  6018. index b14ec65ddb2..8dfde8b5a48 100644
  6019. --- a/opus/src/silk/arm/macros_armv5e.h
  6020. +++ b/opus/src/silk/arm/macros_armv5e.h
  6021. @@ -29,6 +29,31 @@ POSSIBILITY OF SUCH DAMAGE.
  6022.  #ifndef SILK_MACROS_ARMv5E_H
  6023.  #define SILK_MACROS_ARMv5E_H
  6024.  
  6025. +
  6026. +#ifdef USE_MSVS_ARM_INTRINCICS
  6027. +/* (a32 * (opus_int32)((opus_int16)(b32))) >> 16 output have to be 32bit int */
  6028. +#define silk_SMULWB_armv5e(a, b)      _arm_smulwb((a), (b))
  6029. +/* a32 + (b32 * (opus_int32)((opus_int16)(c32))) >> 16 output have to be 32bit int */
  6030. +#define silk_SMLAWB_armv5e(a, b, c)   _arm_smlawb((b), (c), (a))
  6031. +/* (a32 * (b32 >> 16)) >> 16 */
  6032. +#define silk_SMULWT_armv5e(a, b)      _arm_smulwt((a), (b))
  6033. +/* a32 + (b32 * (c32 >> 16)) >> 16 */
  6034. +#define silk_SMLAWT_armv5e(a, b, c)   _arm_smlawt((b), (c), (a))
  6035. +/* (opus_int32)((opus_int16)(a3))) * (opus_int32)((opus_int16)(b32)) output have to be 32bit int */
  6036. +#define silk_SMULBB_armv5e(a, b)      _arm_smulbb((a), (b))
  6037. +/* a32 + (opus_int32)((opus_int16)(b32)) * (opus_int32)((opus_int16)(c32)) output have to be 32bit int */
  6038. +#define silk_SMLABB_armv5e(a, b, c)   _arm_smlabb((b), (c), (a))
  6039. +/* (opus_int32)((opus_int16)(a32)) * (b32 >> 16) */
  6040. +#define silk_SMULBT_armv5e(a, b)      _arm_smulbt((a), (b))
  6041. +/* a32 + (opus_int32)((opus_int16)(b32)) * (c32 >> 16) */
  6042. +#define silk_SMLABT_armv5e(a, b, c)   _arm_smlabt((b), (c), (a))
  6043. +/* add/subtract with output saturated */
  6044. +#define silk_ADD_SAT32_armv5e(a, b)   _arm_qadd((a), (b))
  6045. +#define silk_SUB_SAT32_armv5e(a, b)   _arm_qsub((a), (b))
  6046. +#define silk_CLZ16_armv5(in16)        ((opus_int32)_arm_clz(((opus_int16)(in16))<<16|0x8000))
  6047. +#define silk_CLZ32_armv5(in32)        ((opus_int32)_arm_clz((unsigned int)(in32)))
  6048. +#else /* USE_MSVS_ARM_INTRINCICS */
  6049. +
  6050.  /* This macro only avoids the undefined behaviour from a left shift of
  6051.     a negative value. It should only be used in macros that can't include
  6052.     SigProc_FIX.h. In other cases, use silk_LSHIFT32(). */
  6053. @@ -47,10 +72,8 @@ static OPUS_INLINE opus_int32 silk_SMULWB_armv5e(opus_int32 a, opus_int16 b)
  6054.    );
  6055.    return res;
  6056.  }
  6057. -#define silk_SMULWB(a, b) (silk_SMULWB_armv5e(a, b))
  6058.  
  6059.  /* a32 + (b32 * (opus_int32)((opus_int16)(c32))) >> 16 output have to be 32bit int */
  6060. -#undef silk_SMLAWB
  6061.  static OPUS_INLINE opus_int32 silk_SMLAWB_armv5e(opus_int32 a, opus_int32 b,
  6062.   opus_int16 c)
  6063.  {
  6064. @@ -63,10 +86,8 @@ static OPUS_INLINE opus_int32 silk_SMLAWB_armv5e(opus_int32 a, opus_int32 b,
  6065.    );
  6066.    return res;
  6067.  }
  6068. -#define silk_SMLAWB(a, b, c) (silk_SMLAWB_armv5e(a, b, c))
  6069.  
  6070.  /* (a32 * (b32 >> 16)) >> 16 */
  6071. -#undef silk_SMULWT
  6072.  static OPUS_INLINE opus_int32 silk_SMULWT_armv5e(opus_int32 a, opus_int32 b)
  6073.  {
  6074.    int res;
  6075. @@ -78,10 +99,8 @@ static OPUS_INLINE opus_int32 silk_SMULWT_armv5e(opus_int32 a, opus_int32 b)
  6076.    );
  6077.    return res;
  6078.  }
  6079. -#define silk_SMULWT(a, b) (silk_SMULWT_armv5e(a, b))
  6080.  
  6081.  /* a32 + (b32 * (c32 >> 16)) >> 16 */
  6082. -#undef silk_SMLAWT
  6083.  static OPUS_INLINE opus_int32 silk_SMLAWT_armv5e(opus_int32 a, opus_int32 b,
  6084.   opus_int32 c)
  6085.  {
  6086. @@ -94,10 +113,8 @@ static OPUS_INLINE opus_int32 silk_SMLAWT_armv5e(opus_int32 a, opus_int32 b,
  6087.    );
  6088.    return res;
  6089.  }
  6090. -#define silk_SMLAWT(a, b, c) (silk_SMLAWT_armv5e(a, b, c))
  6091.  
  6092.  /* (opus_int32)((opus_int16)(a3))) * (opus_int32)((opus_int16)(b32)) output have to be 32bit int */
  6093. -#undef silk_SMULBB
  6094.  static OPUS_INLINE opus_int32 silk_SMULBB_armv5e(opus_int32 a, opus_int32 b)
  6095.  {
  6096.    int res;
  6097. @@ -109,10 +126,8 @@ static OPUS_INLINE opus_int32 silk_SMULBB_armv5e(opus_int32 a, opus_int32 b)
  6098.    );
  6099.    return res;
  6100.  }
  6101. -#define silk_SMULBB(a, b) (silk_SMULBB_armv5e(a, b))
  6102.  
  6103.  /* a32 + (opus_int32)((opus_int16)(b32)) * (opus_int32)((opus_int16)(c32)) output have to be 32bit int */
  6104. -#undef silk_SMLABB
  6105.  static OPUS_INLINE opus_int32 silk_SMLABB_armv5e(opus_int32 a, opus_int32 b,
  6106.   opus_int32 c)
  6107.  {
  6108. @@ -125,10 +140,8 @@ static OPUS_INLINE opus_int32 silk_SMLABB_armv5e(opus_int32 a, opus_int32 b,
  6109.    );
  6110.    return res;
  6111.  }
  6112. -#define silk_SMLABB(a, b, c) (silk_SMLABB_armv5e(a, b, c))
  6113.  
  6114.  /* (opus_int32)((opus_int16)(a32)) * (b32 >> 16) */
  6115. -#undef silk_SMULBT
  6116.  static OPUS_INLINE opus_int32 silk_SMULBT_armv5e(opus_int32 a, opus_int32 b)
  6117.  {
  6118.    int res;
  6119. @@ -140,10 +153,8 @@ static OPUS_INLINE opus_int32 silk_SMULBT_armv5e(opus_int32 a, opus_int32 b)
  6120.    );
  6121.    return res;
  6122.  }
  6123. -#define silk_SMULBT(a, b) (silk_SMULBT_armv5e(a, b))
  6124.  
  6125.  /* a32 + (opus_int32)((opus_int16)(b32)) * (c32 >> 16) */
  6126. -#undef silk_SMLABT
  6127.  static OPUS_INLINE opus_int32 silk_SMLABT_armv5e(opus_int32 a, opus_int32 b,
  6128.   opus_int32 c)
  6129.  {
  6130. @@ -156,10 +167,8 @@ static OPUS_INLINE opus_int32 silk_SMLABT_armv5e(opus_int32 a, opus_int32 b,
  6131.    );
  6132.    return res;
  6133.  }
  6134. -#define silk_SMLABT(a, b, c) (silk_SMLABT_armv5e(a, b, c))
  6135.  
  6136.  /* add/subtract with output saturated */
  6137. -#undef silk_ADD_SAT32
  6138.  static OPUS_INLINE opus_int32 silk_ADD_SAT32_armv5e(opus_int32 a, opus_int32 b)
  6139.  {
  6140.    int res;
  6141. @@ -171,9 +180,7 @@ static OPUS_INLINE opus_int32 silk_ADD_SAT32_armv5e(opus_int32 a, opus_int32 b)
  6142.    );
  6143.    return res;
  6144.  }
  6145. -#define silk_ADD_SAT32(a, b) (silk_ADD_SAT32_armv5e(a, b))
  6146.  
  6147. -#undef silk_SUB_SAT32
  6148.  static OPUS_INLINE opus_int32 silk_SUB_SAT32_armv5e(opus_int32 a, opus_int32 b)
  6149.  {
  6150.    int res;
  6151. @@ -185,9 +192,7 @@ static OPUS_INLINE opus_int32 silk_SUB_SAT32_armv5e(opus_int32 a, opus_int32 b)
  6152.    );
  6153.    return res;
  6154.  }
  6155. -#define silk_SUB_SAT32(a, b) (silk_SUB_SAT32_armv5e(a, b))
  6156.  
  6157. -#undef silk_CLZ16
  6158.  static OPUS_INLINE opus_int32 silk_CLZ16_armv5(opus_int16 in16)
  6159.  {
  6160.    int res;
  6161. @@ -199,9 +204,7 @@ static OPUS_INLINE opus_int32 silk_CLZ16_armv5(opus_int16 in16)
  6162.    );
  6163.    return res;
  6164.  }
  6165. -#define silk_CLZ16(in16) (silk_CLZ16_armv5(in16))
  6166.  
  6167. -#undef silk_CLZ32
  6168.  static OPUS_INLINE opus_int32 silk_CLZ32_armv5(opus_int32 in32)
  6169.  {
  6170.    int res;
  6171. @@ -213,6 +216,33 @@ static OPUS_INLINE opus_int32 silk_CLZ32_armv5(opus_int32 in32)
  6172.    );
  6173.    return res;
  6174.  }
  6175. +
  6176. +#endif /* USE_MSVS_ARM_INTRINCICS */
  6177. +
  6178. +#undef silk_SMULWB
  6179. +#define silk_SMULWB(a, b) (silk_SMULWB_armv5e(a, b))
  6180. +#undef silk_SMLAWB
  6181. +#define silk_SMLAWB(a, b, c) (silk_SMLAWB_armv5e(a, b, c))
  6182. +#undef silk_SMULWT
  6183. +#define silk_SMULWT(a, b) (silk_SMULWT_armv5e(a, b))
  6184. +#undef silk_SMLAWT
  6185. +#define silk_SMLAWT(a, b, c) (silk_SMLAWT_armv5e(a, b, c))
  6186. +#undef silk_SMULBB
  6187. +#define silk_SMULBB(a, b) (silk_SMULBB_armv5e(a, b))
  6188. +#undef silk_SMLABB
  6189. +#define silk_SMLABB(a, b, c) (silk_SMLABB_armv5e(a, b, c))
  6190. +#undef silk_SMULBT
  6191. +#define silk_SMULBT(a, b) (silk_SMULBT_armv5e(a, b))
  6192. +#undef silk_SMLABT
  6193. +#define silk_SMLABT(a, b, c) (silk_SMLABT_armv5e(a, b, c))
  6194. +#undef silk_ADD_SAT32
  6195. +#define silk_ADD_SAT32(a, b) (silk_ADD_SAT32_armv5e(a, b))
  6196. +#undef silk_SUB_SAT32
  6197. +#define silk_SUB_SAT32(a, b) (silk_SUB_SAT32_armv5e(a, b))
  6198. +#undef silk_CLZ16
  6199. +#define silk_CLZ16(in16) (silk_CLZ16_armv5(in16))
  6200. +#undef silk_CLZ32
  6201. +
  6202.  #define silk_CLZ32(in32) (silk_CLZ32_armv5(in32))
  6203.  
  6204.  #undef SAFE_SHL
  6205. diff --git a/opus/src/tests/test_opus_api.c b/opus/src/tests/test_opus_api.c
  6206. index 1d0095058f8..c7256dc034c 100644
  6207. --- a/opus/src/tests/test_opus_api.c
  6208. +++ b/opus/src/tests/test_opus_api.c
  6209. @@ -1874,7 +1874,7 @@ int test_malloc_fail(void)
  6210.  #endif
  6211.  #endif
  6212.  
  6213. -int main(int _argc, char **_argv)
  6214. +int main(int _argc, char *_argv[])
  6215.  {
  6216.     opus_int32 total;
  6217.     const char * oversion;
  6218. diff --git a/opus/src/tests/test_opus_decode.c b/opus/src/tests/test_opus_decode.c
  6219. index 5197fa1dd2c..62597ea4566 100644
  6220. --- a/opus/src/tests/test_opus_decode.c
  6221. +++ b/opus/src/tests/test_opus_decode.c
  6222. @@ -423,7 +423,7 @@ void test_soft_clip(void)
  6223.  }
  6224.  #endif
  6225.  
  6226. -int main(int _argc, char **_argv)
  6227. +int main(int _argc, char *_argv[])
  6228.  {
  6229.     const char * oversion;
  6230.     const char * env_seed;
  6231. diff --git a/opus/src/tests/test_opus_encode.c b/opus/src/tests/test_opus_encode.c
  6232. index dae49c3d535..c84a1b95c80 100644
  6233. --- a/opus/src/tests/test_opus_encode.c
  6234. +++ b/opus/src/tests/test_opus_encode.c
  6235. @@ -632,7 +632,7 @@ void print_usage(char* _argv[])
  6236.     fprintf(stderr,"Usage: %s [<seed>] [-fuzz <num_encoders> <num_settings_per_encoder>]\n",_argv[0]);
  6237.  }
  6238.  
  6239. -int main(int _argc, char **_argv)
  6240. +int main(int _argc, char *_argv[])
  6241.  {
  6242.     int args=1;
  6243.     char * strtol_str=NULL;
  6244. diff --git a/protobuf/src/google/protobuf/compiler/subprocess.cc b/protobuf/src/google/protobuf/compiler/subprocess.cc
  6245. index 2e5a89ac499..8dcac435d5c 100644
  6246. --- a/protobuf/src/google/protobuf/compiler/subprocess.cc
  6247. +++ b/protobuf/src/google/protobuf/compiler/subprocess.cc
  6248. @@ -98,6 +98,7 @@ void Subprocess::Start(const string& program, SearchMode search_mode) {
  6249.      GOOGLE_LOG(FATAL) << "CreatePipe: " << Win32ErrorMessage(GetLastError());
  6250.    }
  6251.  
  6252. +#ifndef WINUWP
  6253.    // Make child side of the pipes inheritable.
  6254.    if (!SetHandleInformation(stdin_pipe_read,
  6255.                              HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT)) {
  6256. @@ -109,6 +110,11 @@ void Subprocess::Start(const string& program, SearchMode search_mode) {
  6257.      GOOGLE_LOG(FATAL) << "SetHandleInformation: "
  6258.                        << Win32ErrorMessage(GetLastError());
  6259.    }
  6260. +#else
  6261. +#ifndef STARTF_USESTDHANDLES
  6262. +#define STARTF_USESTDHANDLES 0x00000100
  6263. +#endif //ndef STARTF_USESTDHANDLES
  6264. +#endif //ndef WINUWP
  6265.  
  6266.    // Setup STARTUPINFO to redirect handles.
  6267.    STARTUPINFOA startup_info;
  6268. diff --git a/protobuf/src/google/protobuf/stubs/platform_macros.h b/protobuf/src/google/protobuf/stubs/platform_macros.h
  6269. index c3a64dd2b38..b20b9e2862d 100644
  6270. --- a/protobuf/src/google/protobuf/stubs/platform_macros.h
  6271. +++ b/protobuf/src/google/protobuf/stubs/platform_macros.h
  6272. @@ -44,6 +44,9 @@
  6273.  #elif defined(_M_IX86) || defined(__i386__)
  6274.  #define GOOGLE_PROTOBUF_ARCH_IA32 1
  6275.  #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
  6276. +#elif defined(_M_ARM)
  6277. +#define GOOGLE_PROTOBUF_ARCH_ARM 1
  6278. +#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
  6279.  #elif defined(__QNX__)
  6280.  #define GOOGLE_PROTOBUF_ARCH_ARM_QNX 1
  6281.  #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
  6282. diff --git a/yasm/BUILD.gn b/yasm/BUILD.gn
  6283. index 6e245fe8e22..7f9031ec730 100644
  6284. --- a/yasm/BUILD.gn
  6285. +++ b/yasm/BUILD.gn
  6286. @@ -230,6 +230,9 @@ if (current_toolchain == host_toolchain) {
  6287.        # Default manifest on Windows (a no-op elsewhere).
  6288.        "//build/win:default_exe_manifest",
  6289.      ]
  6290. +    if (current_os == "winuwp") {
  6291. +      deps += [ "//third_party/winuwp_compat:force_include_win" ]
  6292. +    }
  6293.    }
  6294.  
  6295.    config("yasm_warnings") {
  6296. @@ -378,10 +381,14 @@ if (current_toolchain == host_toolchain) {
  6297.        ":generate_module",
  6298.        ":generate_version",
  6299.        ":yasm_utils",
  6300. +      "//third_party/winuwp_compat:winuwp_compat",
  6301.  
  6302.        # Default manifest on Windows (a no-op elsewhere).
  6303.        "//build/win:default_exe_manifest",
  6304.      ]
  6305. +    if (current_os == "winuwp") {
  6306. +      deps += [ "//third_party/winuwp_compat:force_include_std" ]
  6307. +    }
  6308.    }
  6309.  
  6310.    compiled_action_foreach("compile_gperf") {
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top