Upgrade libvpx to 6b66c01 and enabling temporal denoising.
BUG=
TEST=
Review URL: https://webrtc-codereview.appspot.com/448006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1921 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/DEPS b/DEPS
index 7f2d8f3..2b96146 100644
--- a/DEPS
+++ b/DEPS
@@ -45,7 +45,7 @@
From("trunk/chromium_deps", "src/third_party/libjpeg_turbo"),
"trunk/third_party/libvpx/source/libvpx":
- "http://git.chromium.org/webm/libvpx.git@v1.0.0",
+ "http://git.chromium.org/webm/libvpx.git@6b66c01c",
"trunk/third_party/libyuv":
(Var("googlecode_url") % "libyuv") + "/trunk@192",
diff --git a/src/common_types.h b/src/common_types.h
index bd82762..c1806c6 100644
--- a/src/common_types.h
+++ b/src/common_types.h
@@ -513,6 +513,7 @@
VideoCodecComplexity complexity;
VP8ResilienceMode resilience;
unsigned char numberOfTemporalLayers;
+ bool denoisingOn;
};
// Unknown specific
diff --git a/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc b/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
index 19c40ad..472c3b6 100644
--- a/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
+++ b/src/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc
@@ -148,11 +148,10 @@
}
// Run with 5% packet loss. Quality should be a bit lower.
-// TODO(mflodman): Reenable this once it's not flaky.
TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) {
config_.networking_config.packet_loss_probability = 0.05;
double minimum_avg_psnr = 21;
- double minimum_min_psnr = 17;
+ double minimum_min_psnr = 16;
double minimum_avg_ssim = 0.6;
double minimum_min_ssim = 0.4;
ProcessFramesAndVerify(minimum_avg_psnr, minimum_min_psnr,
@@ -164,8 +163,8 @@
config_.networking_config.packet_loss_probability = 0.10;
double minimum_avg_psnr = 19;
double minimum_min_psnr = 16;
- double minimum_avg_ssim = 0.6;
- double minimum_min_ssim = 0.4;
+ double minimum_avg_ssim = 0.5;
+ double minimum_min_ssim = 0.35;
ProcessFramesAndVerify(minimum_avg_psnr, minimum_min_psnr,
minimum_avg_ssim, minimum_min_ssim);
}
diff --git a/src/modules/video_coding/codecs/vp8/main/interface/vp8.h b/src/modules/video_coding/codecs/vp8/main/interface/vp8.h
index 3ee312b..ff13386 100644
--- a/src/modules/video_coding/codecs/vp8/main/interface/vp8.h
+++ b/src/modules/video_coding/codecs/vp8/main/interface/vp8.h
@@ -107,7 +107,7 @@
VP8Encoder();
// Call encoder initialize function and set control settings.
- int InitAndSetControlSettings();
+ int InitAndSetControlSettings(const VideoCodec* inst);
// Update frame size for codec.
int UpdateCodecFrameSize(WebRtc_UWord32 input_image_width,
diff --git a/src/modules/video_coding/codecs/vp8/main/source/vp8.cc b/src/modules/video_coding/codecs/vp8/main/source/vp8.cc
index c274896..788e471 100644
--- a/src/modules/video_coding/codecs/vp8/main/source/vp8.cc
+++ b/src/modules/video_coding/codecs/vp8/main/source/vp8.cc
@@ -268,10 +268,10 @@
break;
}
rps_->Init();
- return InitAndSetControlSettings();
+ return InitAndSetControlSettings(inst);
}
-int VP8Encoder::InitAndSetControlSettings() {
+int VP8Encoder::InitAndSetControlSettings(const VideoCodec* inst) {
vpx_codec_flags_t flags = 0;
// TODO(holmer): We should make a smarter decision on the number of
// partitions. Eight is probably not the optimal number for low resolution
@@ -287,7 +287,8 @@
vpx_codec_control(encoder_, VP8E_SET_CPUUSED, cpu_speed_);
vpx_codec_control(encoder_, VP8E_SET_TOKEN_PARTITIONS,
static_cast<vp8e_token_partitions>(token_partitions_));
- vpx_codec_control(encoder_, VP8E_SET_NOISE_SENSITIVITY, 2);
+ vpx_codec_control(encoder_, VP8E_SET_NOISE_SENSITIVITY,
+ inst->codecSpecific.VP8.denoisingOn ? 1 : 0);
#if WEBRTC_LIBVPX_VERSION >= 971
vpx_codec_control(encoder_, VP8E_SET_MAX_INTRA_BITRATE_PCT,
rc_max_intra_target_);
diff --git a/src/modules/video_coding/main/source/codec_database.cc b/src/modules/video_coding/main/source/codec_database.cc
index 6f81895..22c554d 100644
--- a/src/modules/video_coding/main/source/codec_database.cc
+++ b/src/modules/video_coding/main/source/codec_database.cc
@@ -173,6 +173,7 @@
settings->numberOfSimulcastStreams = 0;
settings->codecSpecific.VP8.resilience = kResilientStream;
settings->codecSpecific.VP8.numberOfTemporalLayers = 1;
+ settings->codecSpecific.VP8.denoisingOn = false;
break;
}
#endif
diff --git a/third_party/libvpx/generate_gypi.sh b/third_party/libvpx/generate_gypi.sh
index b626581..6968899 100755
--- a/third_party/libvpx/generate_gypi.sh
+++ b/third_party/libvpx/generate_gypi.sh
@@ -1,6 +1,6 @@
#!/bin/bash -e
#
-# Copyright (c) 2011 The Chromium Authors. All rights reserved.
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -24,8 +24,8 @@
COMMON_CONFIG="CONFIG_REALTIME_ONLY=yes CONFIG_GCC=yes CONFIG_ERROR_CONCEALMENT=yes CONFIG_POSTPROC=yes"
X86_CONFIG="ARCH_X86=yes HAVE_MMX=yes HAVE_SSE2=yes HAVE_SSE3=yes HAVE_SSSE3=yes HAVE_SSE4_1=yes CONFIG_RUNTIME_CPU_DETECT=yes"
X86_64_CONFIG="ARCH_X86_64=yes HAVE_MMX=yes HAVE_SSE2=yes HAVE_SSE3=yes HAVE_SSSE3=yes HAVE_SSE4_1=yes CONFIG_PIC=yes CONFIG_RUNTIME_CPU_DETECT=yes"
-ARM_CONFIG="ARCH_ARM=yes HAVE_ARMV5TE=yes HAVE_ARMV6=yes"
-ARM_NEON_CONFIG="ARCH_ARM=yes HAVE_ARMV5TE=yes HAVE_ARMV6=yes HAVE_ARMV7=yes"
+ARM_CONFIG="ARCH_ARM=yes HAVE_EDSP=yes HAVE_MEDIA=yes"
+ARM_NEON_CONFIG="ARCH_ARM=yes HAVE_EDSP=yes HAVE_MEDIA=yes HAVE_NEON=yes"
function convert_srcs_to_gypi {
# Do the following here:
diff --git a/third_party/libvpx/libvpx_srcs_arm.gypi b/third_party/libvpx/libvpx_srcs_arm.gypi
index 29e2583..907ffa4 100644
--- a/third_party/libvpx/libvpx_srcs_arm.gypi
+++ b/third_party/libvpx/libvpx_srcs_arm.gypi
@@ -7,7 +7,6 @@
'sources': [
'source/libvpx/vp8/common/alloccommon.c',
'source/libvpx/vp8/common/alloccommon.h',
- 'source/libvpx/vp8/common/arm/arm_systemdependent.c',
'source/libvpx/vp8/common/arm/armv6/bilinearfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/copymem16x16_v6.asm',
'source/libvpx/vp8/common/arm/armv6/copymem8x4_v6.asm',
@@ -23,17 +22,19 @@
'source/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/sixtappredict8x4_v6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_sad16x16_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance16x16_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance8x8_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'source/libvpx/vp8/common/arm/bilinearfilter_arm.c',
'source/libvpx/vp8/common/arm/bilinearfilter_arm.h',
'source/libvpx/vp8/common/arm/dequantize_arm.c',
- 'source/libvpx/vp8/common/arm/dequantize_arm.h',
'source/libvpx/vp8/common/arm/filter_arm.c',
- 'source/libvpx/vp8/common/arm/idct_arm.h',
'source/libvpx/vp8/common/arm/loopfilter_arm.c',
- 'source/libvpx/vp8/common/arm/loopfilter_arm.h',
- 'source/libvpx/vp8/common/arm/recon_arm.h',
'source/libvpx/vp8/common/arm/reconintra_arm.c',
- 'source/libvpx/vp8/common/arm/subpixel_arm.h',
+ 'source/libvpx/vp8/common/arm/variance_arm.c',
'source/libvpx/vp8/common/blockd.c',
'source/libvpx/vp8/common/blockd.h',
'source/libvpx/vp8/common/coefupdateprobs.h',
@@ -41,7 +42,6 @@
'source/libvpx/vp8/common/debugmodes.c',
'source/libvpx/vp8/common/default_coef_probs.h',
'source/libvpx/vp8/common/dequantize.c',
- 'source/libvpx/vp8/common/dequantize.h',
'source/libvpx/vp8/common/entropy.c',
'source/libvpx/vp8/common/entropy.h',
'source/libvpx/vp8/common/entropymode.c',
@@ -57,43 +57,42 @@
'source/libvpx/vp8/common/generic/systemdependent.c',
'source/libvpx/vp8/common/header.h',
'source/libvpx/vp8/common/idct_blk.c',
- 'source/libvpx/vp8/common/idct.h',
'source/libvpx/vp8/common/idctllm.c',
'source/libvpx/vp8/common/invtrans.h',
'source/libvpx/vp8/common/loopfilter.c',
- 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/loopfilter.h',
+ 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/mbpitch.c',
'source/libvpx/vp8/common/modecont.c',
- 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/modecont.h',
+ 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/mv.h',
+ 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/onyxc_int.h',
'source/libvpx/vp8/common/onyxd.h',
- 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/postproc.c',
'source/libvpx/vp8/common/postproc.h',
'source/libvpx/vp8/common/ppflags.h',
'source/libvpx/vp8/common/pragmas.h',
'source/libvpx/vp8/common/quant_common.c',
'source/libvpx/vp8/common/quant_common.h',
- 'source/libvpx/vp8/common/recon.h',
'source/libvpx/vp8/common/reconinter.c',
'source/libvpx/vp8/common/reconinter.h',
+ 'source/libvpx/vp8/common/reconintra.c',
'source/libvpx/vp8/common/reconintra4x4.c',
'source/libvpx/vp8/common/reconintra4x4.h',
- 'source/libvpx/vp8/common/reconintra.c',
- 'source/libvpx/vp8/common/reconintra.h',
+ 'source/libvpx/vp8/common/rtcd.c',
+ 'source/libvpx/vp8/common/sad_c.c',
'source/libvpx/vp8/common/setupintrarecon.c',
'source/libvpx/vp8/common/setupintrarecon.h',
- 'source/libvpx/vp8/common/subpixel.h',
'source/libvpx/vp8/common/swapyv12buffer.c',
'source/libvpx/vp8/common/swapyv12buffer.h',
'source/libvpx/vp8/common/systemdependent.h',
'source/libvpx/vp8/common/threading.h',
'source/libvpx/vp8/common/treecoder.c',
'source/libvpx/vp8/common/treecoder.h',
- 'source/libvpx/vp8/decoder/arm/arm_dsystemdependent.c',
+ 'source/libvpx/vp8/common/variance.h',
+ 'source/libvpx/vp8/common/variance_c.c',
'source/libvpx/vp8/decoder/dboolhuff.c',
'source/libvpx/vp8/decoder/dboolhuff.h',
'source/libvpx/vp8/decoder/decodemv.c',
@@ -105,44 +104,30 @@
'source/libvpx/vp8/decoder/ec_types.h',
'source/libvpx/vp8/decoder/error_concealment.c',
'source/libvpx/vp8/decoder/error_concealment.h',
- 'source/libvpx/vp8/decoder/generic/dsystemdependent.c',
'source/libvpx/vp8/decoder/onyxd_if.c',
'source/libvpx/vp8/decoder/onyxd_int.h',
- 'source/libvpx/vp8/decoder/reconintra_mt.c',
- 'source/libvpx/vp8/decoder/reconintra_mt.h',
'source/libvpx/vp8/decoder/threading.c',
'source/libvpx/vp8/decoder/treereader.h',
- 'source/libvpx/vp8/encoder/arm/arm_csystemdependent.c',
'source/libvpx/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_fast_quantize_b_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_mse16x16_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_subtract_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance16x16_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance8x8_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/walsh_v6.asm',
'source/libvpx/vp8/encoder/arm/boolhuff_arm.c',
'source/libvpx/vp8/encoder/arm/dct_arm.c',
- 'source/libvpx/vp8/encoder/arm/dct_arm.h',
- 'source/libvpx/vp8/encoder/arm/encodemb_arm.h',
'source/libvpx/vp8/encoder/arm/quantize_arm.c',
- 'source/libvpx/vp8/encoder/arm/quantize_arm.h',
- 'source/libvpx/vp8/encoder/arm/variance_arm.c',
- 'source/libvpx/vp8/encoder/arm/variance_arm.h',
'source/libvpx/vp8/encoder/bitstream.c',
'source/libvpx/vp8/encoder/bitstream.h',
'source/libvpx/vp8/encoder/block.h',
'source/libvpx/vp8/encoder/boolhuff.h',
'source/libvpx/vp8/encoder/dct.c',
- 'source/libvpx/vp8/encoder/dct.h',
'source/libvpx/vp8/encoder/defaultcoefcounts.h',
+ 'source/libvpx/vp8/encoder/denoising.c',
+ 'source/libvpx/vp8/encoder/denoising.h',
'source/libvpx/vp8/encoder/encodeframe.c',
'source/libvpx/vp8/encoder/encodeintra.c',
'source/libvpx/vp8/encoder/encodeintra.h',
@@ -152,7 +137,6 @@
'source/libvpx/vp8/encoder/encodemv.h',
'source/libvpx/vp8/encoder/ethreading.c',
'source/libvpx/vp8/encoder/firstpass.h',
- 'source/libvpx/vp8/encoder/generic/csystemdependent.c',
'source/libvpx/vp8/encoder/lookahead.c',
'source/libvpx/vp8/encoder/lookahead.h',
'source/libvpx/vp8/encoder/mcomp.c',
@@ -172,24 +156,37 @@
'source/libvpx/vp8/encoder/ratectrl.h',
'source/libvpx/vp8/encoder/rdopt.c',
'source/libvpx/vp8/encoder/rdopt.h',
- 'source/libvpx/vp8/encoder/sad_c.c',
'source/libvpx/vp8/encoder/segmentation.c',
'source/libvpx/vp8/encoder/segmentation.h',
- 'source/libvpx/vp8/encoder/temporal_filter.h',
'source/libvpx/vp8/encoder/tokenize.c',
'source/libvpx/vp8/encoder/tokenize.h',
'source/libvpx/vp8/encoder/treewriter.c',
'source/libvpx/vp8/encoder/treewriter.h',
- 'source/libvpx/vp8/encoder/variance_c.c',
- 'source/libvpx/vp8/encoder/variance.h',
'source/libvpx/vp8/vp8_cx_iface.c',
'source/libvpx/vp8/vp8_dx_iface.c',
'source/libvpx/vpx/internal/vpx_codec_internal.h',
+ 'source/libvpx/vpx/src/vpx_codec.c',
+ 'source/libvpx/vpx/src/vpx_decoder.c',
+ 'source/libvpx/vpx/src/vpx_decoder_compat.c',
+ 'source/libvpx/vpx/src/vpx_encoder.c',
+ 'source/libvpx/vpx/src/vpx_image.c',
+ 'source/libvpx/vpx/vp8.h',
+ 'source/libvpx/vpx/vp8cx.h',
+ 'source/libvpx/vpx/vp8dx.h',
+ 'source/libvpx/vpx/vp8e.h',
+ 'source/libvpx/vpx/vpx_codec.h',
+ 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
+ 'source/libvpx/vpx/vpx_codec_impl_top.h',
+ 'source/libvpx/vpx/vpx_decoder.h',
+ 'source/libvpx/vpx/vpx_decoder_compat.h',
+ 'source/libvpx/vpx/vpx_encoder.h',
+ 'source/libvpx/vpx/vpx_image.h',
+ 'source/libvpx/vpx/vpx_integer.h',
'source/libvpx/vpx_mem/include/vpx_mem_intrnl.h',
'source/libvpx/vpx_mem/vpx_mem.c',
'source/libvpx/vpx_mem/vpx_mem.h',
- 'source/libvpx/vpx_ports/arm_cpudetect.c',
'source/libvpx/vpx_ports/arm.h',
+ 'source/libvpx/vpx_ports/arm_cpudetect.c',
'source/libvpx/vpx_ports/asm_offsets.h',
'source/libvpx/vpx_ports/mem.h',
'source/libvpx/vpx_ports/vpx_timer.h',
@@ -205,22 +202,5 @@
'source/libvpx/vpx_scale/vpxscale.h',
'source/libvpx/vpx_scale/yv12config.h',
'source/libvpx/vpx_scale/yv12extend.h',
- 'source/libvpx/vpx/src/vpx_codec.c',
- 'source/libvpx/vpx/src/vpx_decoder.c',
- 'source/libvpx/vpx/src/vpx_decoder_compat.c',
- 'source/libvpx/vpx/src/vpx_encoder.c',
- 'source/libvpx/vpx/src/vpx_image.c',
- 'source/libvpx/vpx/vp8cx.h',
- 'source/libvpx/vpx/vp8dx.h',
- 'source/libvpx/vpx/vp8e.h',
- 'source/libvpx/vpx/vp8.h',
- 'source/libvpx/vpx/vpx_codec.h',
- 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
- 'source/libvpx/vpx/vpx_codec_impl_top.h',
- 'source/libvpx/vpx/vpx_decoder_compat.h',
- 'source/libvpx/vpx/vpx_decoder.h',
- 'source/libvpx/vpx/vpx_encoder.h',
- 'source/libvpx/vpx/vpx_image.h',
- 'source/libvpx/vpx/vpx_integer.h',
],
}
diff --git a/third_party/libvpx/libvpx_srcs_arm_neon.gypi b/third_party/libvpx/libvpx_srcs_arm_neon.gypi
index 2e02d3e..d286bf5 100644
--- a/third_party/libvpx/libvpx_srcs_arm_neon.gypi
+++ b/third_party/libvpx/libvpx_srcs_arm_neon.gypi
@@ -7,7 +7,6 @@
'sources': [
'source/libvpx/vp8/common/alloccommon.c',
'source/libvpx/vp8/common/alloccommon.h',
- 'source/libvpx/vp8/common/arm/arm_systemdependent.c',
'source/libvpx/vp8/common/arm/armv6/bilinearfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/copymem16x16_v6.asm',
'source/libvpx/vp8/common/arm/armv6/copymem8x4_v6.asm',
@@ -23,14 +22,17 @@
'source/libvpx/vp8/common/arm/armv6/loopfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/simpleloopfilter_v6.asm',
'source/libvpx/vp8/common/arm/armv6/sixtappredict8x4_v6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_sad16x16_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance16x16_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance8x8_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
+ 'source/libvpx/vp8/common/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'source/libvpx/vp8/common/arm/bilinearfilter_arm.c',
'source/libvpx/vp8/common/arm/bilinearfilter_arm.h',
'source/libvpx/vp8/common/arm/dequantize_arm.c',
- 'source/libvpx/vp8/common/arm/dequantize_arm.h',
'source/libvpx/vp8/common/arm/filter_arm.c',
- 'source/libvpx/vp8/common/arm/idct_arm.h',
'source/libvpx/vp8/common/arm/loopfilter_arm.c',
- 'source/libvpx/vp8/common/arm/loopfilter_arm.h',
'source/libvpx/vp8/common/arm/neon/bilinearpredict16x16_neon.asm',
'source/libvpx/vp8/common/arm/neon/bilinearpredict4x4_neon.asm',
'source/libvpx/vp8/common/arm/neon/bilinearpredict8x4_neon.asm',
@@ -50,15 +52,20 @@
'source/libvpx/vp8/common/arm/neon/loopfiltersimplehorizontaledge_neon.asm',
'source/libvpx/vp8/common/arm/neon/loopfiltersimpleverticaledge_neon.asm',
'source/libvpx/vp8/common/arm/neon/mbloopfilter_neon.asm',
- 'source/libvpx/vp8/common/arm/neon/save_neon_reg.asm',
+ 'source/libvpx/vp8/common/arm/neon/sad16_neon.asm',
+ 'source/libvpx/vp8/common/arm/neon/sad8_neon.asm',
+ 'source/libvpx/vp8/common/arm/neon/save_reg_neon.asm',
'source/libvpx/vp8/common/arm/neon/shortidct4x4llm_neon.asm',
'source/libvpx/vp8/common/arm/neon/sixtappredict16x16_neon.asm',
'source/libvpx/vp8/common/arm/neon/sixtappredict4x4_neon.asm',
'source/libvpx/vp8/common/arm/neon/sixtappredict8x4_neon.asm',
'source/libvpx/vp8/common/arm/neon/sixtappredict8x8_neon.asm',
- 'source/libvpx/vp8/common/arm/recon_arm.h',
+ 'source/libvpx/vp8/common/arm/neon/variance_neon.asm',
+ 'source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance16x16_neon.asm',
+ 'source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance16x16s_neon.asm',
+ 'source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance8x8_neon.asm',
'source/libvpx/vp8/common/arm/reconintra_arm.c',
- 'source/libvpx/vp8/common/arm/subpixel_arm.h',
+ 'source/libvpx/vp8/common/arm/variance_arm.c',
'source/libvpx/vp8/common/blockd.c',
'source/libvpx/vp8/common/blockd.h',
'source/libvpx/vp8/common/coefupdateprobs.h',
@@ -66,7 +73,6 @@
'source/libvpx/vp8/common/debugmodes.c',
'source/libvpx/vp8/common/default_coef_probs.h',
'source/libvpx/vp8/common/dequantize.c',
- 'source/libvpx/vp8/common/dequantize.h',
'source/libvpx/vp8/common/entropy.c',
'source/libvpx/vp8/common/entropy.h',
'source/libvpx/vp8/common/entropymode.c',
@@ -82,43 +88,42 @@
'source/libvpx/vp8/common/generic/systemdependent.c',
'source/libvpx/vp8/common/header.h',
'source/libvpx/vp8/common/idct_blk.c',
- 'source/libvpx/vp8/common/idct.h',
'source/libvpx/vp8/common/idctllm.c',
'source/libvpx/vp8/common/invtrans.h',
'source/libvpx/vp8/common/loopfilter.c',
- 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/loopfilter.h',
+ 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/mbpitch.c',
'source/libvpx/vp8/common/modecont.c',
- 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/modecont.h',
+ 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/mv.h',
+ 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/onyxc_int.h',
'source/libvpx/vp8/common/onyxd.h',
- 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/postproc.c',
'source/libvpx/vp8/common/postproc.h',
'source/libvpx/vp8/common/ppflags.h',
'source/libvpx/vp8/common/pragmas.h',
'source/libvpx/vp8/common/quant_common.c',
'source/libvpx/vp8/common/quant_common.h',
- 'source/libvpx/vp8/common/recon.h',
'source/libvpx/vp8/common/reconinter.c',
'source/libvpx/vp8/common/reconinter.h',
+ 'source/libvpx/vp8/common/reconintra.c',
'source/libvpx/vp8/common/reconintra4x4.c',
'source/libvpx/vp8/common/reconintra4x4.h',
- 'source/libvpx/vp8/common/reconintra.c',
- 'source/libvpx/vp8/common/reconintra.h',
+ 'source/libvpx/vp8/common/rtcd.c',
+ 'source/libvpx/vp8/common/sad_c.c',
'source/libvpx/vp8/common/setupintrarecon.c',
'source/libvpx/vp8/common/setupintrarecon.h',
- 'source/libvpx/vp8/common/subpixel.h',
'source/libvpx/vp8/common/swapyv12buffer.c',
'source/libvpx/vp8/common/swapyv12buffer.h',
'source/libvpx/vp8/common/systemdependent.h',
'source/libvpx/vp8/common/threading.h',
'source/libvpx/vp8/common/treecoder.c',
'source/libvpx/vp8/common/treecoder.h',
- 'source/libvpx/vp8/decoder/arm/arm_dsystemdependent.c',
+ 'source/libvpx/vp8/common/variance.h',
+ 'source/libvpx/vp8/common/variance_c.c',
'source/libvpx/vp8/decoder/dboolhuff.c',
'source/libvpx/vp8/decoder/dboolhuff.h',
'source/libvpx/vp8/decoder/decodemv.c',
@@ -130,57 +135,37 @@
'source/libvpx/vp8/decoder/ec_types.h',
'source/libvpx/vp8/decoder/error_concealment.c',
'source/libvpx/vp8/decoder/error_concealment.h',
- 'source/libvpx/vp8/decoder/generic/dsystemdependent.c',
'source/libvpx/vp8/decoder/onyxd_if.c',
'source/libvpx/vp8/decoder/onyxd_int.h',
- 'source/libvpx/vp8/decoder/reconintra_mt.c',
- 'source/libvpx/vp8/decoder/reconintra_mt.h',
'source/libvpx/vp8/decoder/threading.c',
'source/libvpx/vp8/decoder/treereader.h',
- 'source/libvpx/vp8/encoder/arm/arm_csystemdependent.c',
'source/libvpx/vp8/encoder/arm/armv5te/boolhuff_armv5te.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_mbrow_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv5te/vp8_packtokens_partitions_armv5.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_fast_quantize_b_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_mse16x16_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_sad16x16_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_short_fdct4x4_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/vp8_subtract_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance16x16_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance8x8_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_h_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_hv_armv6.asm',
- 'source/libvpx/vp8/encoder/arm/armv6/vp8_variance_halfpixvar16x16_v_armv6.asm',
'source/libvpx/vp8/encoder/arm/armv6/walsh_v6.asm',
'source/libvpx/vp8/encoder/arm/boolhuff_arm.c',
'source/libvpx/vp8/encoder/arm/dct_arm.c',
- 'source/libvpx/vp8/encoder/arm/dct_arm.h',
- 'source/libvpx/vp8/encoder/arm/encodemb_arm.h',
'source/libvpx/vp8/encoder/arm/neon/fastquantizeb_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/picklpf_arm.c',
- 'source/libvpx/vp8/encoder/arm/neon/sad16_neon.asm',
- 'source/libvpx/vp8/encoder/arm/neon/sad8_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/shortfdct_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/subtract_neon.asm',
- 'source/libvpx/vp8/encoder/arm/neon/variance_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/vp8_memcpy_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/vp8_mse16x16_neon.asm',
'source/libvpx/vp8/encoder/arm/neon/vp8_shortwalsh4x4_neon.asm',
- 'source/libvpx/vp8/encoder/arm/neon/vp8_subpixelvariance16x16_neon.asm',
- 'source/libvpx/vp8/encoder/arm/neon/vp8_subpixelvariance16x16s_neon.asm',
- 'source/libvpx/vp8/encoder/arm/neon/vp8_subpixelvariance8x8_neon.asm',
'source/libvpx/vp8/encoder/arm/quantize_arm.c',
- 'source/libvpx/vp8/encoder/arm/quantize_arm.h',
- 'source/libvpx/vp8/encoder/arm/variance_arm.c',
- 'source/libvpx/vp8/encoder/arm/variance_arm.h',
'source/libvpx/vp8/encoder/bitstream.c',
'source/libvpx/vp8/encoder/bitstream.h',
'source/libvpx/vp8/encoder/block.h',
'source/libvpx/vp8/encoder/boolhuff.h',
'source/libvpx/vp8/encoder/dct.c',
- 'source/libvpx/vp8/encoder/dct.h',
'source/libvpx/vp8/encoder/defaultcoefcounts.h',
+ 'source/libvpx/vp8/encoder/denoising.c',
+ 'source/libvpx/vp8/encoder/denoising.h',
'source/libvpx/vp8/encoder/encodeframe.c',
'source/libvpx/vp8/encoder/encodeintra.c',
'source/libvpx/vp8/encoder/encodeintra.h',
@@ -190,7 +175,6 @@
'source/libvpx/vp8/encoder/encodemv.h',
'source/libvpx/vp8/encoder/ethreading.c',
'source/libvpx/vp8/encoder/firstpass.h',
- 'source/libvpx/vp8/encoder/generic/csystemdependent.c',
'source/libvpx/vp8/encoder/lookahead.c',
'source/libvpx/vp8/encoder/lookahead.h',
'source/libvpx/vp8/encoder/mcomp.c',
@@ -210,30 +194,43 @@
'source/libvpx/vp8/encoder/ratectrl.h',
'source/libvpx/vp8/encoder/rdopt.c',
'source/libvpx/vp8/encoder/rdopt.h',
- 'source/libvpx/vp8/encoder/sad_c.c',
'source/libvpx/vp8/encoder/segmentation.c',
'source/libvpx/vp8/encoder/segmentation.h',
- 'source/libvpx/vp8/encoder/temporal_filter.h',
'source/libvpx/vp8/encoder/tokenize.c',
'source/libvpx/vp8/encoder/tokenize.h',
'source/libvpx/vp8/encoder/treewriter.c',
'source/libvpx/vp8/encoder/treewriter.h',
- 'source/libvpx/vp8/encoder/variance_c.c',
- 'source/libvpx/vp8/encoder/variance.h',
'source/libvpx/vp8/vp8_cx_iface.c',
'source/libvpx/vp8/vp8_dx_iface.c',
'source/libvpx/vpx/internal/vpx_codec_internal.h',
+ 'source/libvpx/vpx/src/vpx_codec.c',
+ 'source/libvpx/vpx/src/vpx_decoder.c',
+ 'source/libvpx/vpx/src/vpx_decoder_compat.c',
+ 'source/libvpx/vpx/src/vpx_encoder.c',
+ 'source/libvpx/vpx/src/vpx_image.c',
+ 'source/libvpx/vpx/vp8.h',
+ 'source/libvpx/vpx/vp8cx.h',
+ 'source/libvpx/vpx/vp8dx.h',
+ 'source/libvpx/vpx/vp8e.h',
+ 'source/libvpx/vpx/vpx_codec.h',
+ 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
+ 'source/libvpx/vpx/vpx_codec_impl_top.h',
+ 'source/libvpx/vpx/vpx_decoder.h',
+ 'source/libvpx/vpx/vpx_decoder_compat.h',
+ 'source/libvpx/vpx/vpx_encoder.h',
+ 'source/libvpx/vpx/vpx_image.h',
+ 'source/libvpx/vpx/vpx_integer.h',
'source/libvpx/vpx_mem/include/vpx_mem_intrnl.h',
'source/libvpx/vpx_mem/vpx_mem.c',
'source/libvpx/vpx_mem/vpx_mem.h',
- 'source/libvpx/vpx_ports/arm_cpudetect.c',
'source/libvpx/vpx_ports/arm.h',
+ 'source/libvpx/vpx_ports/arm_cpudetect.c',
'source/libvpx/vpx_ports/asm_offsets.h',
'source/libvpx/vpx_ports/mem.h',
'source/libvpx/vpx_ports/vpx_timer.h',
+ 'source/libvpx/vpx_scale/arm/neon/vp8_vpxyv12_copy_y_neon.asm',
'source/libvpx/vpx_scale/arm/neon/vp8_vpxyv12_copyframe_func_neon.asm',
'source/libvpx/vpx_scale/arm/neon/vp8_vpxyv12_copysrcframe_func_neon.asm',
- 'source/libvpx/vpx_scale/arm/neon/vp8_vpxyv12_copy_y_neon.asm',
'source/libvpx/vpx_scale/arm/neon/vp8_vpxyv12_extendframeborders_neon.asm',
'source/libvpx/vpx_scale/arm/neon/yv12extend_arm.c',
'source/libvpx/vpx_scale/arm/scalesystemdependent.c',
@@ -248,22 +245,5 @@
'source/libvpx/vpx_scale/vpxscale.h',
'source/libvpx/vpx_scale/yv12config.h',
'source/libvpx/vpx_scale/yv12extend.h',
- 'source/libvpx/vpx/src/vpx_codec.c',
- 'source/libvpx/vpx/src/vpx_decoder.c',
- 'source/libvpx/vpx/src/vpx_decoder_compat.c',
- 'source/libvpx/vpx/src/vpx_encoder.c',
- 'source/libvpx/vpx/src/vpx_image.c',
- 'source/libvpx/vpx/vp8cx.h',
- 'source/libvpx/vpx/vp8dx.h',
- 'source/libvpx/vpx/vp8e.h',
- 'source/libvpx/vpx/vp8.h',
- 'source/libvpx/vpx/vpx_codec.h',
- 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
- 'source/libvpx/vpx/vpx_codec_impl_top.h',
- 'source/libvpx/vpx/vpx_decoder_compat.h',
- 'source/libvpx/vpx/vpx_decoder.h',
- 'source/libvpx/vpx/vpx_encoder.h',
- 'source/libvpx/vpx/vpx_image.h',
- 'source/libvpx/vpx/vpx_integer.h',
],
}
diff --git a/third_party/libvpx/libvpx_srcs_x86.gypi b/third_party/libvpx/libvpx_srcs_x86.gypi
index 267132c..9470c89 100644
--- a/third_party/libvpx/libvpx_srcs_x86.gypi
+++ b/third_party/libvpx/libvpx_srcs_x86.gypi
@@ -14,7 +14,6 @@
'source/libvpx/vp8/common/debugmodes.c',
'source/libvpx/vp8/common/default_coef_probs.h',
'source/libvpx/vp8/common/dequantize.c',
- 'source/libvpx/vp8/common/dequantize.h',
'source/libvpx/vp8/common/entropy.c',
'source/libvpx/vp8/common/entropy.h',
'source/libvpx/vp8/common/entropymode.c',
@@ -30,70 +29,75 @@
'source/libvpx/vp8/common/generic/systemdependent.c',
'source/libvpx/vp8/common/header.h',
'source/libvpx/vp8/common/idct_blk.c',
- 'source/libvpx/vp8/common/idct.h',
'source/libvpx/vp8/common/idctllm.c',
'source/libvpx/vp8/common/invtrans.h',
'source/libvpx/vp8/common/loopfilter.c',
- 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/loopfilter.h',
+ 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/mbpitch.c',
'source/libvpx/vp8/common/modecont.c',
- 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/modecont.h',
+ 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/mv.h',
+ 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/onyxc_int.h',
'source/libvpx/vp8/common/onyxd.h',
- 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/postproc.c',
'source/libvpx/vp8/common/postproc.h',
'source/libvpx/vp8/common/ppflags.h',
'source/libvpx/vp8/common/pragmas.h',
'source/libvpx/vp8/common/quant_common.c',
'source/libvpx/vp8/common/quant_common.h',
- 'source/libvpx/vp8/common/recon.h',
'source/libvpx/vp8/common/reconinter.c',
'source/libvpx/vp8/common/reconinter.h',
+ 'source/libvpx/vp8/common/reconintra.c',
'source/libvpx/vp8/common/reconintra4x4.c',
'source/libvpx/vp8/common/reconintra4x4.h',
- 'source/libvpx/vp8/common/reconintra.c',
- 'source/libvpx/vp8/common/reconintra.h',
+ 'source/libvpx/vp8/common/rtcd.c',
+ 'source/libvpx/vp8/common/sad_c.c',
'source/libvpx/vp8/common/setupintrarecon.c',
'source/libvpx/vp8/common/setupintrarecon.h',
- 'source/libvpx/vp8/common/subpixel.h',
'source/libvpx/vp8/common/swapyv12buffer.c',
'source/libvpx/vp8/common/swapyv12buffer.h',
'source/libvpx/vp8/common/systemdependent.h',
'source/libvpx/vp8/common/threading.h',
'source/libvpx/vp8/common/treecoder.c',
'source/libvpx/vp8/common/treecoder.h',
+ 'source/libvpx/vp8/common/variance.h',
+ 'source/libvpx/vp8/common/variance_c.c',
'source/libvpx/vp8/common/x86/dequantize_mmx.asm',
- 'source/libvpx/vp8/common/x86/dequantize_x86.h',
'source/libvpx/vp8/common/x86/filter_x86.c',
'source/libvpx/vp8/common/x86/filter_x86.h',
'source/libvpx/vp8/common/x86/idct_blk_mmx.c',
'source/libvpx/vp8/common/x86/idct_blk_sse2.c',
'source/libvpx/vp8/common/x86/idctllm_mmx.asm',
'source/libvpx/vp8/common/x86/idctllm_sse2.asm',
- 'source/libvpx/vp8/common/x86/idct_x86.h',
'source/libvpx/vp8/common/x86/iwalsh_mmx.asm',
'source/libvpx/vp8/common/x86/iwalsh_sse2.asm',
'source/libvpx/vp8/common/x86/loopfilter_mmx.asm',
'source/libvpx/vp8/common/x86/loopfilter_sse2.asm',
'source/libvpx/vp8/common/x86/loopfilter_x86.c',
- 'source/libvpx/vp8/common/x86/loopfilter_x86.h',
'source/libvpx/vp8/common/x86/postproc_mmx.asm',
'source/libvpx/vp8/common/x86/postproc_sse2.asm',
- 'source/libvpx/vp8/common/x86/postproc_x86.h',
+ 'source/libvpx/vp8/common/x86/postproc_x86.c',
'source/libvpx/vp8/common/x86/recon_mmx.asm',
'source/libvpx/vp8/common/x86/recon_sse2.asm',
'source/libvpx/vp8/common/x86/recon_wrapper_sse2.c',
- 'source/libvpx/vp8/common/x86/recon_x86.h',
+ 'source/libvpx/vp8/common/x86/sad_mmx.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse2.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse3.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse4.asm',
+ 'source/libvpx/vp8/common/x86/sad_ssse3.asm',
'source/libvpx/vp8/common/x86/subpixel_mmx.asm',
'source/libvpx/vp8/common/x86/subpixel_sse2.asm',
'source/libvpx/vp8/common/x86/subpixel_ssse3.asm',
- 'source/libvpx/vp8/common/x86/subpixel_x86.h',
+ 'source/libvpx/vp8/common/x86/variance_impl_mmx.asm',
+ 'source/libvpx/vp8/common/x86/variance_impl_sse2.asm',
+ 'source/libvpx/vp8/common/x86/variance_impl_ssse3.asm',
+ 'source/libvpx/vp8/common/x86/variance_mmx.c',
+ 'source/libvpx/vp8/common/x86/variance_sse2.c',
+ 'source/libvpx/vp8/common/x86/variance_ssse3.c',
'source/libvpx/vp8/common/x86/vp8_asm_stubs.c',
- 'source/libvpx/vp8/common/x86/x86_systemdependent.c',
'source/libvpx/vp8/decoder/dboolhuff.c',
'source/libvpx/vp8/decoder/dboolhuff.h',
'source/libvpx/vp8/decoder/decodemv.c',
@@ -105,22 +109,19 @@
'source/libvpx/vp8/decoder/ec_types.h',
'source/libvpx/vp8/decoder/error_concealment.c',
'source/libvpx/vp8/decoder/error_concealment.h',
- 'source/libvpx/vp8/decoder/generic/dsystemdependent.c',
'source/libvpx/vp8/decoder/onyxd_if.c',
'source/libvpx/vp8/decoder/onyxd_int.h',
- 'source/libvpx/vp8/decoder/reconintra_mt.c',
- 'source/libvpx/vp8/decoder/reconintra_mt.h',
'source/libvpx/vp8/decoder/threading.c',
'source/libvpx/vp8/decoder/treereader.h',
- 'source/libvpx/vp8/decoder/x86/x86_dsystemdependent.c',
'source/libvpx/vp8/encoder/bitstream.c',
'source/libvpx/vp8/encoder/bitstream.h',
'source/libvpx/vp8/encoder/block.h',
'source/libvpx/vp8/encoder/boolhuff.c',
'source/libvpx/vp8/encoder/boolhuff.h',
'source/libvpx/vp8/encoder/dct.c',
- 'source/libvpx/vp8/encoder/dct.h',
'source/libvpx/vp8/encoder/defaultcoefcounts.h',
+ 'source/libvpx/vp8/encoder/denoising.c',
+ 'source/libvpx/vp8/encoder/denoising.h',
'source/libvpx/vp8/encoder/encodeframe.c',
'source/libvpx/vp8/encoder/encodeintra.c',
'source/libvpx/vp8/encoder/encodeintra.h',
@@ -130,7 +131,6 @@
'source/libvpx/vp8/encoder/encodemv.h',
'source/libvpx/vp8/encoder/ethreading.c',
'source/libvpx/vp8/encoder/firstpass.h',
- 'source/libvpx/vp8/encoder/generic/csystemdependent.c',
'source/libvpx/vp8/encoder/lookahead.c',
'source/libvpx/vp8/encoder/lookahead.h',
'source/libvpx/vp8/encoder/mcomp.c',
@@ -150,47 +150,44 @@
'source/libvpx/vp8/encoder/ratectrl.h',
'source/libvpx/vp8/encoder/rdopt.c',
'source/libvpx/vp8/encoder/rdopt.h',
- 'source/libvpx/vp8/encoder/sad_c.c',
'source/libvpx/vp8/encoder/segmentation.c',
'source/libvpx/vp8/encoder/segmentation.h',
- 'source/libvpx/vp8/encoder/temporal_filter.h',
'source/libvpx/vp8/encoder/tokenize.c',
'source/libvpx/vp8/encoder/tokenize.h',
'source/libvpx/vp8/encoder/treewriter.c',
'source/libvpx/vp8/encoder/treewriter.h',
- 'source/libvpx/vp8/encoder/variance_c.c',
- 'source/libvpx/vp8/encoder/variance.h',
'source/libvpx/vp8/encoder/x86/dct_mmx.asm',
'source/libvpx/vp8/encoder/x86/dct_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/dct_x86.h',
- 'source/libvpx/vp8/encoder/x86/encodemb_x86.h',
'source/libvpx/vp8/encoder/x86/encodeopt.asm',
'source/libvpx/vp8/encoder/x86/fwalsh_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/mcomp_x86.h',
'source/libvpx/vp8/encoder/x86/quantize_mmx.asm',
'source/libvpx/vp8/encoder/x86/quantize_sse2.asm',
'source/libvpx/vp8/encoder/x86/quantize_sse4.asm',
'source/libvpx/vp8/encoder/x86/quantize_ssse3.asm',
- 'source/libvpx/vp8/encoder/x86/quantize_x86.h',
- 'source/libvpx/vp8/encoder/x86/sad_mmx.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse3.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse4.asm',
- 'source/libvpx/vp8/encoder/x86/sad_ssse3.asm',
'source/libvpx/vp8/encoder/x86/subtract_mmx.asm',
'source/libvpx/vp8/encoder/x86/subtract_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/temporal_filter_x86.h',
- 'source/libvpx/vp8/encoder/x86/variance_impl_mmx.asm',
- 'source/libvpx/vp8/encoder/x86/variance_impl_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/variance_impl_ssse3.asm',
- 'source/libvpx/vp8/encoder/x86/variance_mmx.c',
- 'source/libvpx/vp8/encoder/x86/variance_sse2.c',
- 'source/libvpx/vp8/encoder/x86/variance_ssse3.c',
- 'source/libvpx/vp8/encoder/x86/variance_x86.h',
- 'source/libvpx/vp8/encoder/x86/x86_csystemdependent.c',
+ 'source/libvpx/vp8/encoder/x86/vp8_enc_stubs_mmx.c',
+ 'source/libvpx/vp8/encoder/x86/vp8_enc_stubs_sse2.c',
'source/libvpx/vp8/vp8_cx_iface.c',
'source/libvpx/vp8/vp8_dx_iface.c',
'source/libvpx/vpx/internal/vpx_codec_internal.h',
+ 'source/libvpx/vpx/src/vpx_codec.c',
+ 'source/libvpx/vpx/src/vpx_decoder.c',
+ 'source/libvpx/vpx/src/vpx_decoder_compat.c',
+ 'source/libvpx/vpx/src/vpx_encoder.c',
+ 'source/libvpx/vpx/src/vpx_image.c',
+ 'source/libvpx/vpx/vp8.h',
+ 'source/libvpx/vpx/vp8cx.h',
+ 'source/libvpx/vpx/vp8dx.h',
+ 'source/libvpx/vpx/vp8e.h',
+ 'source/libvpx/vpx/vpx_codec.h',
+ 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
+ 'source/libvpx/vpx/vpx_codec_impl_top.h',
+ 'source/libvpx/vpx/vpx_decoder.h',
+ 'source/libvpx/vpx/vpx_decoder_compat.h',
+ 'source/libvpx/vpx/vpx_encoder.h',
+ 'source/libvpx/vpx/vpx_image.h',
+ 'source/libvpx/vpx/vpx_integer.h',
'source/libvpx/vpx_mem/include/vpx_mem_intrnl.h',
'source/libvpx/vpx_mem/vpx_mem.c',
'source/libvpx/vpx_mem/vpx_mem.h',
@@ -198,9 +195,9 @@
'source/libvpx/vpx_ports/emms.asm',
'source/libvpx/vpx_ports/mem.h',
'source/libvpx/vpx_ports/vpx_timer.h',
+ 'source/libvpx/vpx_ports/x86.h',
'source/libvpx/vpx_ports/x86_abi_support.asm',
'source/libvpx/vpx_ports/x86_cpuid.c',
- 'source/libvpx/vpx_ports/x86.h',
'source/libvpx/vpx_scale/generic/gen_scalers.c',
'source/libvpx/vpx_scale/generic/scalesystemdependent.c',
'source/libvpx/vpx_scale/generic/vpxscale.c',
@@ -211,22 +208,5 @@
'source/libvpx/vpx_scale/vpxscale.h',
'source/libvpx/vpx_scale/yv12config.h',
'source/libvpx/vpx_scale/yv12extend.h',
- 'source/libvpx/vpx/src/vpx_codec.c',
- 'source/libvpx/vpx/src/vpx_decoder.c',
- 'source/libvpx/vpx/src/vpx_decoder_compat.c',
- 'source/libvpx/vpx/src/vpx_encoder.c',
- 'source/libvpx/vpx/src/vpx_image.c',
- 'source/libvpx/vpx/vp8cx.h',
- 'source/libvpx/vpx/vp8dx.h',
- 'source/libvpx/vpx/vp8e.h',
- 'source/libvpx/vpx/vp8.h',
- 'source/libvpx/vpx/vpx_codec.h',
- 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
- 'source/libvpx/vpx/vpx_codec_impl_top.h',
- 'source/libvpx/vpx/vpx_decoder_compat.h',
- 'source/libvpx/vpx/vpx_decoder.h',
- 'source/libvpx/vpx/vpx_encoder.h',
- 'source/libvpx/vpx/vpx_image.h',
- 'source/libvpx/vpx/vpx_integer.h',
],
}
diff --git a/third_party/libvpx/libvpx_srcs_x86_64.gypi b/third_party/libvpx/libvpx_srcs_x86_64.gypi
index 424edb0..cec135e 100644
--- a/third_party/libvpx/libvpx_srcs_x86_64.gypi
+++ b/third_party/libvpx/libvpx_srcs_x86_64.gypi
@@ -14,7 +14,6 @@
'source/libvpx/vp8/common/debugmodes.c',
'source/libvpx/vp8/common/default_coef_probs.h',
'source/libvpx/vp8/common/dequantize.c',
- 'source/libvpx/vp8/common/dequantize.h',
'source/libvpx/vp8/common/entropy.c',
'source/libvpx/vp8/common/entropy.h',
'source/libvpx/vp8/common/entropymode.c',
@@ -30,71 +29,76 @@
'source/libvpx/vp8/common/generic/systemdependent.c',
'source/libvpx/vp8/common/header.h',
'source/libvpx/vp8/common/idct_blk.c',
- 'source/libvpx/vp8/common/idct.h',
'source/libvpx/vp8/common/idctllm.c',
'source/libvpx/vp8/common/invtrans.h',
'source/libvpx/vp8/common/loopfilter.c',
- 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/loopfilter.h',
+ 'source/libvpx/vp8/common/loopfilter_filters.c',
'source/libvpx/vp8/common/mbpitch.c',
'source/libvpx/vp8/common/modecont.c',
- 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/modecont.h',
+ 'source/libvpx/vp8/common/modecontext.c',
'source/libvpx/vp8/common/mv.h',
+ 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/onyxc_int.h',
'source/libvpx/vp8/common/onyxd.h',
- 'source/libvpx/vp8/common/onyx.h',
'source/libvpx/vp8/common/postproc.c',
'source/libvpx/vp8/common/postproc.h',
'source/libvpx/vp8/common/ppflags.h',
'source/libvpx/vp8/common/pragmas.h',
'source/libvpx/vp8/common/quant_common.c',
'source/libvpx/vp8/common/quant_common.h',
- 'source/libvpx/vp8/common/recon.h',
'source/libvpx/vp8/common/reconinter.c',
'source/libvpx/vp8/common/reconinter.h',
+ 'source/libvpx/vp8/common/reconintra.c',
'source/libvpx/vp8/common/reconintra4x4.c',
'source/libvpx/vp8/common/reconintra4x4.h',
- 'source/libvpx/vp8/common/reconintra.c',
- 'source/libvpx/vp8/common/reconintra.h',
+ 'source/libvpx/vp8/common/rtcd.c',
+ 'source/libvpx/vp8/common/sad_c.c',
'source/libvpx/vp8/common/setupintrarecon.c',
'source/libvpx/vp8/common/setupintrarecon.h',
- 'source/libvpx/vp8/common/subpixel.h',
'source/libvpx/vp8/common/swapyv12buffer.c',
'source/libvpx/vp8/common/swapyv12buffer.h',
'source/libvpx/vp8/common/systemdependent.h',
'source/libvpx/vp8/common/threading.h',
'source/libvpx/vp8/common/treecoder.c',
'source/libvpx/vp8/common/treecoder.h',
+ 'source/libvpx/vp8/common/variance.h',
+ 'source/libvpx/vp8/common/variance_c.c',
'source/libvpx/vp8/common/x86/dequantize_mmx.asm',
- 'source/libvpx/vp8/common/x86/dequantize_x86.h',
'source/libvpx/vp8/common/x86/filter_x86.c',
'source/libvpx/vp8/common/x86/filter_x86.h',
'source/libvpx/vp8/common/x86/idct_blk_mmx.c',
'source/libvpx/vp8/common/x86/idct_blk_sse2.c',
'source/libvpx/vp8/common/x86/idctllm_mmx.asm',
'source/libvpx/vp8/common/x86/idctllm_sse2.asm',
- 'source/libvpx/vp8/common/x86/idct_x86.h',
'source/libvpx/vp8/common/x86/iwalsh_mmx.asm',
'source/libvpx/vp8/common/x86/iwalsh_sse2.asm',
'source/libvpx/vp8/common/x86/loopfilter_block_sse2.asm',
'source/libvpx/vp8/common/x86/loopfilter_mmx.asm',
'source/libvpx/vp8/common/x86/loopfilter_sse2.asm',
'source/libvpx/vp8/common/x86/loopfilter_x86.c',
- 'source/libvpx/vp8/common/x86/loopfilter_x86.h',
'source/libvpx/vp8/common/x86/postproc_mmx.asm',
'source/libvpx/vp8/common/x86/postproc_sse2.asm',
- 'source/libvpx/vp8/common/x86/postproc_x86.h',
+ 'source/libvpx/vp8/common/x86/postproc_x86.c',
'source/libvpx/vp8/common/x86/recon_mmx.asm',
'source/libvpx/vp8/common/x86/recon_sse2.asm',
'source/libvpx/vp8/common/x86/recon_wrapper_sse2.c',
- 'source/libvpx/vp8/common/x86/recon_x86.h',
+ 'source/libvpx/vp8/common/x86/sad_mmx.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse2.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse3.asm',
+ 'source/libvpx/vp8/common/x86/sad_sse4.asm',
+ 'source/libvpx/vp8/common/x86/sad_ssse3.asm',
'source/libvpx/vp8/common/x86/subpixel_mmx.asm',
'source/libvpx/vp8/common/x86/subpixel_sse2.asm',
'source/libvpx/vp8/common/x86/subpixel_ssse3.asm',
- 'source/libvpx/vp8/common/x86/subpixel_x86.h',
+ 'source/libvpx/vp8/common/x86/variance_impl_mmx.asm',
+ 'source/libvpx/vp8/common/x86/variance_impl_sse2.asm',
+ 'source/libvpx/vp8/common/x86/variance_impl_ssse3.asm',
+ 'source/libvpx/vp8/common/x86/variance_mmx.c',
+ 'source/libvpx/vp8/common/x86/variance_sse2.c',
+ 'source/libvpx/vp8/common/x86/variance_ssse3.c',
'source/libvpx/vp8/common/x86/vp8_asm_stubs.c',
- 'source/libvpx/vp8/common/x86/x86_systemdependent.c',
'source/libvpx/vp8/decoder/dboolhuff.c',
'source/libvpx/vp8/decoder/dboolhuff.h',
'source/libvpx/vp8/decoder/decodemv.c',
@@ -106,22 +110,19 @@
'source/libvpx/vp8/decoder/ec_types.h',
'source/libvpx/vp8/decoder/error_concealment.c',
'source/libvpx/vp8/decoder/error_concealment.h',
- 'source/libvpx/vp8/decoder/generic/dsystemdependent.c',
'source/libvpx/vp8/decoder/onyxd_if.c',
'source/libvpx/vp8/decoder/onyxd_int.h',
- 'source/libvpx/vp8/decoder/reconintra_mt.c',
- 'source/libvpx/vp8/decoder/reconintra_mt.h',
'source/libvpx/vp8/decoder/threading.c',
'source/libvpx/vp8/decoder/treereader.h',
- 'source/libvpx/vp8/decoder/x86/x86_dsystemdependent.c',
'source/libvpx/vp8/encoder/bitstream.c',
'source/libvpx/vp8/encoder/bitstream.h',
'source/libvpx/vp8/encoder/block.h',
'source/libvpx/vp8/encoder/boolhuff.c',
'source/libvpx/vp8/encoder/boolhuff.h',
'source/libvpx/vp8/encoder/dct.c',
- 'source/libvpx/vp8/encoder/dct.h',
'source/libvpx/vp8/encoder/defaultcoefcounts.h',
+ 'source/libvpx/vp8/encoder/denoising.c',
+ 'source/libvpx/vp8/encoder/denoising.h',
'source/libvpx/vp8/encoder/encodeframe.c',
'source/libvpx/vp8/encoder/encodeintra.c',
'source/libvpx/vp8/encoder/encodeintra.h',
@@ -131,7 +132,6 @@
'source/libvpx/vp8/encoder/encodemv.h',
'source/libvpx/vp8/encoder/ethreading.c',
'source/libvpx/vp8/encoder/firstpass.h',
- 'source/libvpx/vp8/encoder/generic/csystemdependent.c',
'source/libvpx/vp8/encoder/lookahead.c',
'source/libvpx/vp8/encoder/lookahead.h',
'source/libvpx/vp8/encoder/mcomp.c',
@@ -151,48 +151,45 @@
'source/libvpx/vp8/encoder/ratectrl.h',
'source/libvpx/vp8/encoder/rdopt.c',
'source/libvpx/vp8/encoder/rdopt.h',
- 'source/libvpx/vp8/encoder/sad_c.c',
'source/libvpx/vp8/encoder/segmentation.c',
'source/libvpx/vp8/encoder/segmentation.h',
- 'source/libvpx/vp8/encoder/temporal_filter.h',
'source/libvpx/vp8/encoder/tokenize.c',
'source/libvpx/vp8/encoder/tokenize.h',
'source/libvpx/vp8/encoder/treewriter.c',
'source/libvpx/vp8/encoder/treewriter.h',
- 'source/libvpx/vp8/encoder/variance_c.c',
- 'source/libvpx/vp8/encoder/variance.h',
'source/libvpx/vp8/encoder/x86/dct_mmx.asm',
'source/libvpx/vp8/encoder/x86/dct_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/dct_x86.h',
- 'source/libvpx/vp8/encoder/x86/encodemb_x86.h',
'source/libvpx/vp8/encoder/x86/encodeopt.asm',
'source/libvpx/vp8/encoder/x86/fwalsh_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/mcomp_x86.h',
'source/libvpx/vp8/encoder/x86/quantize_mmx.asm',
'source/libvpx/vp8/encoder/x86/quantize_sse2.asm',
'source/libvpx/vp8/encoder/x86/quantize_sse4.asm',
'source/libvpx/vp8/encoder/x86/quantize_ssse3.asm',
- 'source/libvpx/vp8/encoder/x86/quantize_x86.h',
- 'source/libvpx/vp8/encoder/x86/sad_mmx.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse3.asm',
- 'source/libvpx/vp8/encoder/x86/sad_sse4.asm',
- 'source/libvpx/vp8/encoder/x86/sad_ssse3.asm',
'source/libvpx/vp8/encoder/x86/ssim_opt.asm',
'source/libvpx/vp8/encoder/x86/subtract_mmx.asm',
'source/libvpx/vp8/encoder/x86/subtract_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/temporal_filter_x86.h',
- 'source/libvpx/vp8/encoder/x86/variance_impl_mmx.asm',
- 'source/libvpx/vp8/encoder/x86/variance_impl_sse2.asm',
- 'source/libvpx/vp8/encoder/x86/variance_impl_ssse3.asm',
- 'source/libvpx/vp8/encoder/x86/variance_mmx.c',
- 'source/libvpx/vp8/encoder/x86/variance_sse2.c',
- 'source/libvpx/vp8/encoder/x86/variance_ssse3.c',
- 'source/libvpx/vp8/encoder/x86/variance_x86.h',
- 'source/libvpx/vp8/encoder/x86/x86_csystemdependent.c',
+ 'source/libvpx/vp8/encoder/x86/vp8_enc_stubs_mmx.c',
+ 'source/libvpx/vp8/encoder/x86/vp8_enc_stubs_sse2.c',
'source/libvpx/vp8/vp8_cx_iface.c',
'source/libvpx/vp8/vp8_dx_iface.c',
'source/libvpx/vpx/internal/vpx_codec_internal.h',
+ 'source/libvpx/vpx/src/vpx_codec.c',
+ 'source/libvpx/vpx/src/vpx_decoder.c',
+ 'source/libvpx/vpx/src/vpx_decoder_compat.c',
+ 'source/libvpx/vpx/src/vpx_encoder.c',
+ 'source/libvpx/vpx/src/vpx_image.c',
+ 'source/libvpx/vpx/vp8.h',
+ 'source/libvpx/vpx/vp8cx.h',
+ 'source/libvpx/vpx/vp8dx.h',
+ 'source/libvpx/vpx/vp8e.h',
+ 'source/libvpx/vpx/vpx_codec.h',
+ 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
+ 'source/libvpx/vpx/vpx_codec_impl_top.h',
+ 'source/libvpx/vpx/vpx_decoder.h',
+ 'source/libvpx/vpx/vpx_decoder_compat.h',
+ 'source/libvpx/vpx/vpx_encoder.h',
+ 'source/libvpx/vpx/vpx_image.h',
+ 'source/libvpx/vpx/vpx_integer.h',
'source/libvpx/vpx_mem/include/vpx_mem_intrnl.h',
'source/libvpx/vpx_mem/vpx_mem.c',
'source/libvpx/vpx_mem/vpx_mem.h',
@@ -200,9 +197,9 @@
'source/libvpx/vpx_ports/emms.asm',
'source/libvpx/vpx_ports/mem.h',
'source/libvpx/vpx_ports/vpx_timer.h',
+ 'source/libvpx/vpx_ports/x86.h',
'source/libvpx/vpx_ports/x86_abi_support.asm',
'source/libvpx/vpx_ports/x86_cpuid.c',
- 'source/libvpx/vpx_ports/x86.h',
'source/libvpx/vpx_scale/generic/gen_scalers.c',
'source/libvpx/vpx_scale/generic/scalesystemdependent.c',
'source/libvpx/vpx_scale/generic/vpxscale.c',
@@ -213,22 +210,5 @@
'source/libvpx/vpx_scale/vpxscale.h',
'source/libvpx/vpx_scale/yv12config.h',
'source/libvpx/vpx_scale/yv12extend.h',
- 'source/libvpx/vpx/src/vpx_codec.c',
- 'source/libvpx/vpx/src/vpx_decoder.c',
- 'source/libvpx/vpx/src/vpx_decoder_compat.c',
- 'source/libvpx/vpx/src/vpx_encoder.c',
- 'source/libvpx/vpx/src/vpx_image.c',
- 'source/libvpx/vpx/vp8cx.h',
- 'source/libvpx/vpx/vp8dx.h',
- 'source/libvpx/vpx/vp8e.h',
- 'source/libvpx/vpx/vp8.h',
- 'source/libvpx/vpx/vpx_codec.h',
- 'source/libvpx/vpx/vpx_codec_impl_bottom.h',
- 'source/libvpx/vpx/vpx_codec_impl_top.h',
- 'source/libvpx/vpx/vpx_decoder_compat.h',
- 'source/libvpx/vpx/vpx_decoder.h',
- 'source/libvpx/vpx/vpx_encoder.h',
- 'source/libvpx/vpx/vpx_image.h',
- 'source/libvpx/vpx/vpx_integer.h',
],
}
diff --git a/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm
index b22ab9b..1b105db 100644
--- a/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/linux/ia32/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 12
vp8_blockd_dqcoeff EQU 4
-vp8_blockd_eob EQU 40
+vp8_blockd_eob EQU 20
vp8_block_base_src EQU 36
vp8_block_src EQU 40
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 4
vp8_extra_bit_struct_len EQU 8
vp8_extra_bit_struct_base_val EQU 12
-vp8_comp_tplist EQU 170332
-vp8_comp_common EQU 104544
-vp8_comp_bc EQU 116896
+vp8_comp_tplist EQU 170732
+vp8_comp_common EQU 104032
+vp8_comp_bc EQU 116240
vp8_writer_sz EQU 40
tokenlist_start EQU 0
tokenlist_stop EQU 4
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
index b2570ab..a59bf69 100644
--- a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 0
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 0
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.h b/third_party/libvpx/source/config/linux/ia32/vpx_config.h
index 173b6fc..c4f09fd 100644
--- a/third_party/libvpx/source/config/linux/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 0
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 0
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h
new file mode 100644
index 0000000..d435fb4
--- /dev/null
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_rtcd.h
@@ -0,0 +1,802 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+RTCD_EXTERN void (*vp8_dequantize_b)(struct blockd*, short *dqc);
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_y_block)(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_uv_block)(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+RTCD_EXTERN void (*vp8_short_inv_walsh4x4)(short *input, short *output);
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_dc_only_idct_add)(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem16x16)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x8)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x4)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_down)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_across_ip)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+RTCD_EXTERN void (*vp8_post_proc_down_and_across)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+RTCD_EXTERN void (*vp8_plane_add_noise)(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance4x4)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_h)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_v)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+RTCD_EXTERN unsigned int (*vp8_get_mb_ss)(const short *);
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_mse16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_mse16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+RTCD_EXTERN unsigned int (*vp8_get4x4sse_cs)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct4x4)(short *input, short *output, int pitch);
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct8x4)(short *input, short *output, int pitch);
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_walsh4x4)(short *input, short *output, int pitch);
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+RTCD_EXTERN void (*vp8_subtract_b)(struct block *be, struct blockd *bd, int pitch);
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mby)(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mbuv)(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+ vp8_dequantize_b = vp8_dequantize_b_c;
+ if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
+
+ vp8_dequant_idct_add = vp8_dequant_idct_add_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add = vp8_dequant_idct_add_mmx;
+
+ vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_sse2;
+
+ vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_sse2;
+
+ vp8_loop_filter_mbv = vp8_loop_filter_mbv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbv = vp8_loop_filter_mbv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbv = vp8_loop_filter_mbv_sse2;
+
+ vp8_loop_filter_bv = vp8_loop_filter_bv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bv = vp8_loop_filter_bv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bv = vp8_loop_filter_bv_sse2;
+
+ vp8_loop_filter_mbh = vp8_loop_filter_mbh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbh = vp8_loop_filter_mbh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbh = vp8_loop_filter_mbh_sse2;
+
+ vp8_loop_filter_bh = vp8_loop_filter_bh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bh = vp8_loop_filter_bh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bh = vp8_loop_filter_bh_sse2;
+
+ vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_sse2;
+
+ vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_sse2;
+
+ vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_sse2;
+
+ vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_sse2;
+
+ vp8_short_idct4x4llm = vp8_short_idct4x4llm_c;
+ if (flags & HAS_MMX) vp8_short_idct4x4llm = vp8_short_idct4x4llm_mmx;
+
+
+ vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_c;
+ if (flags & HAS_MMX) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_sse2;
+
+ vp8_dc_only_idct_add = vp8_dc_only_idct_add_c;
+ if (flags & HAS_MMX) vp8_dc_only_idct_add = vp8_dc_only_idct_add_mmx;
+
+ vp8_copy_mem16x16 = vp8_copy_mem16x16_c;
+ if (flags & HAS_MMX) vp8_copy_mem16x16 = vp8_copy_mem16x16_mmx;
+ if (flags & HAS_SSE2) vp8_copy_mem16x16 = vp8_copy_mem16x16_sse2;
+
+ vp8_copy_mem8x8 = vp8_copy_mem8x8_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x8 = vp8_copy_mem8x8_mmx;
+
+ vp8_copy_mem8x4 = vp8_copy_mem8x4_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+ vp8_mbpost_proc_down = vp8_mbpost_proc_down_c;
+ if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm;
+
+ vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_c;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_xmm;
+
+ vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_c;
+ if (flags & HAS_MMX) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_mmx;
+ if (flags & HAS_SSE2) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_xmm;
+
+ vp8_plane_add_noise = vp8_plane_add_noise_c;
+ if (flags & HAS_MMX) vp8_plane_add_noise = vp8_plane_add_noise_mmx;
+ if (flags & HAS_SSE2) vp8_plane_add_noise = vp8_plane_add_noise_wmt;
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+ vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
+
+ vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_mmx;
+
+ vp8_variance4x4 = vp8_variance4x4_c;
+ if (flags & HAS_MMX) vp8_variance4x4 = vp8_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_variance4x4 = vp8_variance4x4_wmt;
+
+ vp8_variance8x8 = vp8_variance8x8_c;
+ if (flags & HAS_MMX) vp8_variance8x8 = vp8_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x8 = vp8_variance8x8_wmt;
+
+ vp8_variance8x16 = vp8_variance8x16_c;
+ if (flags & HAS_MMX) vp8_variance8x16 = vp8_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x16 = vp8_variance8x16_wmt;
+
+ vp8_variance16x8 = vp8_variance16x8_c;
+ if (flags & HAS_MMX) vp8_variance16x8 = vp8_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x8 = vp8_variance16x8_wmt;
+
+ vp8_variance16x16 = vp8_variance16x16_c;
+ if (flags & HAS_MMX) vp8_variance16x16 = vp8_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x16 = vp8_variance16x16_wmt;
+
+ vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_wmt;
+
+ vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_wmt;
+
+ vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_wmt;
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+ vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_wmt;
+
+ vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_wmt;
+
+ vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_wmt;
+
+ vp8_get_mb_ss = vp8_get_mb_ss_c;
+ if (flags & HAS_MMX) vp8_get_mb_ss = vp8_get_mb_ss_mmx;
+ if (flags & HAS_SSE2) vp8_get_mb_ss = vp8_get_mb_ss_sse2;
+
+ vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_wmt;
+
+ vp8_mse16x16 = vp8_mse16x16_c;
+ if (flags & HAS_MMX) vp8_mse16x16 = vp8_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_mse16x16 = vp8_mse16x16_wmt;
+
+ vp8_get4x4sse_cs = vp8_get4x4sse_cs_c;
+ if (flags & HAS_MMX) vp8_get4x4sse_cs = vp8_get4x4sse_cs_mmx;
+
+ vp8_sad4x4 = vp8_sad4x4_c;
+ if (flags & HAS_MMX) vp8_sad4x4 = vp8_sad4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sad4x4 = vp8_sad4x4_wmt;
+
+ vp8_sad8x8 = vp8_sad8x8_c;
+ if (flags & HAS_MMX) vp8_sad8x8 = vp8_sad8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x8 = vp8_sad8x8_wmt;
+
+ vp8_sad8x16 = vp8_sad8x16_c;
+ if (flags & HAS_MMX) vp8_sad8x16 = vp8_sad8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x16 = vp8_sad8x16_wmt;
+
+ vp8_sad16x8 = vp8_sad16x8_c;
+ if (flags & HAS_MMX) vp8_sad16x8 = vp8_sad16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x8 = vp8_sad16x8_wmt;
+
+ vp8_sad16x16 = vp8_sad16x16_c;
+ if (flags & HAS_MMX) vp8_sad16x16 = vp8_sad16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_c;
+ if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+ vp8_short_fdct4x4 = vp8_short_fdct4x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct4x4 = vp8_short_fdct4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct4x4 = vp8_short_fdct4x4_sse2;
+
+ vp8_short_fdct8x4 = vp8_short_fdct8x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct8x4 = vp8_short_fdct8x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct8x4 = vp8_short_fdct8x4_sse2;
+
+ vp8_short_walsh4x4 = vp8_short_walsh4x4_c;
+ if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+ vp8_block_error = vp8_block_error_c;
+ if (flags & HAS_MMX) vp8_block_error = vp8_block_error_mmx;
+ if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_xmm;
+
+ vp8_mbblock_error = vp8_mbblock_error_c;
+ if (flags & HAS_MMX) vp8_mbblock_error = vp8_mbblock_error_mmx;
+ if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_xmm;
+
+ vp8_mbuverror = vp8_mbuverror_c;
+ if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
+ if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_xmm;
+
+ vp8_subtract_b = vp8_subtract_b_c;
+ if (flags & HAS_MMX) vp8_subtract_b = vp8_subtract_b_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_b = vp8_subtract_b_sse2;
+
+ vp8_subtract_mby = vp8_subtract_mby_c;
+ if (flags & HAS_MMX) vp8_subtract_mby = vp8_subtract_mby_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mby = vp8_subtract_mby_sse2;
+
+ vp8_subtract_mbuv = vp8_subtract_mbuv_c;
+ if (flags & HAS_MMX) vp8_subtract_mbuv = vp8_subtract_mbuv_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mbuv = vp8_subtract_mbuv_sse2;
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_version.h b/third_party/libvpx/source/config/linux/ia32/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/linux/ia32/vpx_version.h
+++ b/third_party/libvpx/source/config/linux/ia32/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"
diff --git a/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm
index 1d5c61d..2a1c958 100644
--- a/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/linux/x64/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 24
vp8_blockd_dqcoeff EQU 8
-vp8_blockd_eob EQU 64
+vp8_blockd_eob EQU 40
vp8_block_base_src EQU 72
vp8_block_src EQU 80
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 8
vp8_extra_bit_struct_len EQU 16
vp8_extra_bit_struct_base_val EQU 20
-vp8_comp_tplist EQU 173096
-vp8_comp_common EQU 106496
-vp8_comp_bc EQU 119232
+vp8_comp_tplist EQU 173264
+vp8_comp_common EQU 105920
+vp8_comp_bc EQU 118352
vp8_writer_sz EQU 64
tokenlist_start EQU 0
tokenlist_stop EQU 8
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.asm b/third_party/libvpx/source/config/linux/x64/vpx_config.asm
index f98d355..0ca4109 100644
--- a/third_party/libvpx/source/config/linux/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/linux/x64/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 1
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 0
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.h b/third_party/libvpx/source/config/linux/x64/vpx_config.h
index 7eef378..a031d95 100644
--- a/third_party/libvpx/source/config/linux/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/linux/x64/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 1
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 0
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h b/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h
new file mode 100644
index 0000000..4315fb1
--- /dev/null
+++ b/third_party/libvpx/source/config/linux/x64/vpx_rtcd.h
@@ -0,0 +1,635 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+#define vp8_dequantize_b vp8_dequantize_b_mmx
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_sse2
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_sse2
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbv vp8_loop_filter_mbv_sse2
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bv vp8_loop_filter_bv_sse2
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbh vp8_loop_filter_mbh_sse2
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bh vp8_loop_filter_bh_sse2
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_sse2
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_sse2
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_sse2
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_sse2
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_sse2
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+#define vp8_dc_only_idct_add vp8_dc_only_idct_add_mmx
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem16x16 vp8_copy_mem16x16_sse2
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x8 vp8_copy_mem8x8_mmx
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x4 vp8_copy_mem8x4_mmx
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_down vp8_mbpost_proc_down_xmm
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_across_ip vp8_mbpost_proc_across_ip_xmm
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+#define vp8_post_proc_down_and_across vp8_post_proc_down_and_across_xmm
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+#define vp8_plane_add_noise vp8_plane_add_noise_wmt
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_mmx
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance4x4 vp8_variance4x4_wmt
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x8 vp8_variance8x8_wmt
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x16 vp8_variance8x16_wmt
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x8 vp8_variance16x8_wmt
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x16 vp8_variance16x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_wmt
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+#define vp8_get_mb_ss vp8_get_mb_ss_sse2
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_wmt
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_mse16x16 vp8_mse16x16_wmt
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+#define vp8_get4x4sse_cs vp8_get4x4sse_cs_mmx
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad4x4 vp8_sad4x4_wmt
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x8 vp8_sad8x8_wmt
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x16 vp8_sad8x16_wmt
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad16x8 vp8_sad16x8_wmt
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct4x4 vp8_short_fdct4x4_sse2
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct8x4 vp8_short_fdct8x4_sse2
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+#define vp8_block_error vp8_block_error_xmm
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+#define vp8_mbblock_error vp8_mbblock_error_xmm
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+#define vp8_mbuverror vp8_mbuverror_xmm
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+#define vp8_subtract_b vp8_subtract_b_sse2
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+#define vp8_subtract_mby vp8_subtract_mby_sse2
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+#define vp8_subtract_mbuv vp8_subtract_mbuv_sse2
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+
+
+
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+
+
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_version.h b/third_party/libvpx/source/config/linux/x64/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/linux/x64/vpx_version.h
+++ b/third_party/libvpx/source/config/linux/x64/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"
diff --git a/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm
index dc21f3f..887e6bc 100644
--- a/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/mac/ia32/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 12
vp8_blockd_dqcoeff EQU 4
-vp8_blockd_eob EQU 40
+vp8_blockd_eob EQU 20
vp8_block_base_src EQU 36
vp8_block_src EQU 40
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 4
vp8_extra_bit_struct_len EQU 8
vp8_extra_bit_struct_base_val EQU 12
-vp8_comp_tplist EQU 170216
-vp8_comp_common EQU 104544
-vp8_comp_bc EQU 116816
+vp8_comp_tplist EQU 170616
+vp8_comp_common EQU 104032
+vp8_comp_bc EQU 116160
vp8_writer_sz EQU 40
tokenlist_start EQU 0
tokenlist_stop EQU 4
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
index b2570ab..a59bf69 100644
--- a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 0
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 0
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.h b/third_party/libvpx/source/config/mac/ia32/vpx_config.h
index 173b6fc..c4f09fd 100644
--- a/third_party/libvpx/source/config/mac/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 0
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 0
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h
new file mode 100644
index 0000000..d435fb4
--- /dev/null
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_rtcd.h
@@ -0,0 +1,802 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+RTCD_EXTERN void (*vp8_dequantize_b)(struct blockd*, short *dqc);
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_y_block)(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_uv_block)(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+RTCD_EXTERN void (*vp8_short_inv_walsh4x4)(short *input, short *output);
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_dc_only_idct_add)(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem16x16)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x8)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x4)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_down)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_across_ip)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+RTCD_EXTERN void (*vp8_post_proc_down_and_across)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+RTCD_EXTERN void (*vp8_plane_add_noise)(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance4x4)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_h)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_v)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+RTCD_EXTERN unsigned int (*vp8_get_mb_ss)(const short *);
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_mse16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_mse16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+RTCD_EXTERN unsigned int (*vp8_get4x4sse_cs)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct4x4)(short *input, short *output, int pitch);
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct8x4)(short *input, short *output, int pitch);
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_walsh4x4)(short *input, short *output, int pitch);
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+RTCD_EXTERN void (*vp8_subtract_b)(struct block *be, struct blockd *bd, int pitch);
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mby)(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mbuv)(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+ vp8_dequantize_b = vp8_dequantize_b_c;
+ if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
+
+ vp8_dequant_idct_add = vp8_dequant_idct_add_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add = vp8_dequant_idct_add_mmx;
+
+ vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_sse2;
+
+ vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_sse2;
+
+ vp8_loop_filter_mbv = vp8_loop_filter_mbv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbv = vp8_loop_filter_mbv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbv = vp8_loop_filter_mbv_sse2;
+
+ vp8_loop_filter_bv = vp8_loop_filter_bv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bv = vp8_loop_filter_bv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bv = vp8_loop_filter_bv_sse2;
+
+ vp8_loop_filter_mbh = vp8_loop_filter_mbh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbh = vp8_loop_filter_mbh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbh = vp8_loop_filter_mbh_sse2;
+
+ vp8_loop_filter_bh = vp8_loop_filter_bh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bh = vp8_loop_filter_bh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bh = vp8_loop_filter_bh_sse2;
+
+ vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_sse2;
+
+ vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_sse2;
+
+ vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_sse2;
+
+ vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_sse2;
+
+ vp8_short_idct4x4llm = vp8_short_idct4x4llm_c;
+ if (flags & HAS_MMX) vp8_short_idct4x4llm = vp8_short_idct4x4llm_mmx;
+
+
+ vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_c;
+ if (flags & HAS_MMX) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_sse2;
+
+ vp8_dc_only_idct_add = vp8_dc_only_idct_add_c;
+ if (flags & HAS_MMX) vp8_dc_only_idct_add = vp8_dc_only_idct_add_mmx;
+
+ vp8_copy_mem16x16 = vp8_copy_mem16x16_c;
+ if (flags & HAS_MMX) vp8_copy_mem16x16 = vp8_copy_mem16x16_mmx;
+ if (flags & HAS_SSE2) vp8_copy_mem16x16 = vp8_copy_mem16x16_sse2;
+
+ vp8_copy_mem8x8 = vp8_copy_mem8x8_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x8 = vp8_copy_mem8x8_mmx;
+
+ vp8_copy_mem8x4 = vp8_copy_mem8x4_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+ vp8_mbpost_proc_down = vp8_mbpost_proc_down_c;
+ if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm;
+
+ vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_c;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_xmm;
+
+ vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_c;
+ if (flags & HAS_MMX) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_mmx;
+ if (flags & HAS_SSE2) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_xmm;
+
+ vp8_plane_add_noise = vp8_plane_add_noise_c;
+ if (flags & HAS_MMX) vp8_plane_add_noise = vp8_plane_add_noise_mmx;
+ if (flags & HAS_SSE2) vp8_plane_add_noise = vp8_plane_add_noise_wmt;
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+ vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
+
+ vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_mmx;
+
+ vp8_variance4x4 = vp8_variance4x4_c;
+ if (flags & HAS_MMX) vp8_variance4x4 = vp8_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_variance4x4 = vp8_variance4x4_wmt;
+
+ vp8_variance8x8 = vp8_variance8x8_c;
+ if (flags & HAS_MMX) vp8_variance8x8 = vp8_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x8 = vp8_variance8x8_wmt;
+
+ vp8_variance8x16 = vp8_variance8x16_c;
+ if (flags & HAS_MMX) vp8_variance8x16 = vp8_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x16 = vp8_variance8x16_wmt;
+
+ vp8_variance16x8 = vp8_variance16x8_c;
+ if (flags & HAS_MMX) vp8_variance16x8 = vp8_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x8 = vp8_variance16x8_wmt;
+
+ vp8_variance16x16 = vp8_variance16x16_c;
+ if (flags & HAS_MMX) vp8_variance16x16 = vp8_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x16 = vp8_variance16x16_wmt;
+
+ vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_wmt;
+
+ vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_wmt;
+
+ vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_wmt;
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+ vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_wmt;
+
+ vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_wmt;
+
+ vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_wmt;
+
+ vp8_get_mb_ss = vp8_get_mb_ss_c;
+ if (flags & HAS_MMX) vp8_get_mb_ss = vp8_get_mb_ss_mmx;
+ if (flags & HAS_SSE2) vp8_get_mb_ss = vp8_get_mb_ss_sse2;
+
+ vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_wmt;
+
+ vp8_mse16x16 = vp8_mse16x16_c;
+ if (flags & HAS_MMX) vp8_mse16x16 = vp8_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_mse16x16 = vp8_mse16x16_wmt;
+
+ vp8_get4x4sse_cs = vp8_get4x4sse_cs_c;
+ if (flags & HAS_MMX) vp8_get4x4sse_cs = vp8_get4x4sse_cs_mmx;
+
+ vp8_sad4x4 = vp8_sad4x4_c;
+ if (flags & HAS_MMX) vp8_sad4x4 = vp8_sad4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sad4x4 = vp8_sad4x4_wmt;
+
+ vp8_sad8x8 = vp8_sad8x8_c;
+ if (flags & HAS_MMX) vp8_sad8x8 = vp8_sad8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x8 = vp8_sad8x8_wmt;
+
+ vp8_sad8x16 = vp8_sad8x16_c;
+ if (flags & HAS_MMX) vp8_sad8x16 = vp8_sad8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x16 = vp8_sad8x16_wmt;
+
+ vp8_sad16x8 = vp8_sad16x8_c;
+ if (flags & HAS_MMX) vp8_sad16x8 = vp8_sad16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x8 = vp8_sad16x8_wmt;
+
+ vp8_sad16x16 = vp8_sad16x16_c;
+ if (flags & HAS_MMX) vp8_sad16x16 = vp8_sad16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_c;
+ if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+ vp8_short_fdct4x4 = vp8_short_fdct4x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct4x4 = vp8_short_fdct4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct4x4 = vp8_short_fdct4x4_sse2;
+
+ vp8_short_fdct8x4 = vp8_short_fdct8x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct8x4 = vp8_short_fdct8x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct8x4 = vp8_short_fdct8x4_sse2;
+
+ vp8_short_walsh4x4 = vp8_short_walsh4x4_c;
+ if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+ vp8_block_error = vp8_block_error_c;
+ if (flags & HAS_MMX) vp8_block_error = vp8_block_error_mmx;
+ if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_xmm;
+
+ vp8_mbblock_error = vp8_mbblock_error_c;
+ if (flags & HAS_MMX) vp8_mbblock_error = vp8_mbblock_error_mmx;
+ if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_xmm;
+
+ vp8_mbuverror = vp8_mbuverror_c;
+ if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
+ if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_xmm;
+
+ vp8_subtract_b = vp8_subtract_b_c;
+ if (flags & HAS_MMX) vp8_subtract_b = vp8_subtract_b_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_b = vp8_subtract_b_sse2;
+
+ vp8_subtract_mby = vp8_subtract_mby_c;
+ if (flags & HAS_MMX) vp8_subtract_mby = vp8_subtract_mby_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mby = vp8_subtract_mby_sse2;
+
+ vp8_subtract_mbuv = vp8_subtract_mbuv_c;
+ if (flags & HAS_MMX) vp8_subtract_mbuv = vp8_subtract_mbuv_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mbuv = vp8_subtract_mbuv_sse2;
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_version.h b/third_party/libvpx/source/config/mac/ia32/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/mac/ia32/vpx_version.h
+++ b/third_party/libvpx/source/config/mac/ia32/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"
diff --git a/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm
index 3a678f9..5fcb1b0 100644
--- a/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/mac/x64/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 24
vp8_blockd_dqcoeff EQU 8
-vp8_blockd_eob EQU 64
+vp8_blockd_eob EQU 40
vp8_block_base_src EQU 72
vp8_block_src EQU 80
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 8
vp8_extra_bit_struct_len EQU 16
vp8_extra_bit_struct_base_val EQU 20
-vp8_comp_tplist EQU 172952
-vp8_comp_common EQU 106496
-vp8_comp_bc EQU 119168
+vp8_comp_tplist EQU 173120
+vp8_comp_common EQU 105920
+vp8_comp_bc EQU 118288
vp8_writer_sz EQU 64
tokenlist_start EQU 0
tokenlist_stop EQU 8
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.asm b/third_party/libvpx/source/config/mac/x64/vpx_config.asm
index f98d355..0ca4109 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/mac/x64/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 1
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 0
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.c b/third_party/libvpx/source/config/mac/x64/vpx_config.c
index 03e34a6..d619750 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_config.c
+++ b/third_party/libvpx/source/config/mac/x64/vpx_config.c
@@ -5,5 +5,5 @@
/* tree. An additional intellectual property rights grant can be found */
/* in the file PATENTS. All contributing project authors may */
/* be found in the AUTHORS file in the root of the source tree. */
-static const char* const cfg = "--target=x86_64-darwin10-gcc --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-examples --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only";
+static const char* const cfg = "--target=x86_64-darwin10-gcc --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only";
const char *vpx_codec_build_config(void) {return cfg;}
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.h b/third_party/libvpx/source/config/mac/x64/vpx_config.h
index 7eef378..a031d95 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/mac/x64/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 1
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 0
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_rtcd.h b/third_party/libvpx/source/config/mac/x64/vpx_rtcd.h
new file mode 100644
index 0000000..4315fb1
--- /dev/null
+++ b/third_party/libvpx/source/config/mac/x64/vpx_rtcd.h
@@ -0,0 +1,635 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+#define vp8_dequantize_b vp8_dequantize_b_mmx
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_sse2
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_sse2
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbv vp8_loop_filter_mbv_sse2
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bv vp8_loop_filter_bv_sse2
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbh vp8_loop_filter_mbh_sse2
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bh vp8_loop_filter_bh_sse2
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_sse2
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_sse2
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_sse2
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_sse2
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_sse2
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+#define vp8_dc_only_idct_add vp8_dc_only_idct_add_mmx
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem16x16 vp8_copy_mem16x16_sse2
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x8 vp8_copy_mem8x8_mmx
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x4 vp8_copy_mem8x4_mmx
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_down vp8_mbpost_proc_down_xmm
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_across_ip vp8_mbpost_proc_across_ip_xmm
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+#define vp8_post_proc_down_and_across vp8_post_proc_down_and_across_xmm
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+#define vp8_plane_add_noise vp8_plane_add_noise_wmt
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_mmx
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance4x4 vp8_variance4x4_wmt
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x8 vp8_variance8x8_wmt
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x16 vp8_variance8x16_wmt
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x8 vp8_variance16x8_wmt
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x16 vp8_variance16x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_wmt
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+#define vp8_get_mb_ss vp8_get_mb_ss_sse2
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_wmt
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_mse16x16 vp8_mse16x16_wmt
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+#define vp8_get4x4sse_cs vp8_get4x4sse_cs_mmx
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad4x4 vp8_sad4x4_wmt
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x8 vp8_sad8x8_wmt
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x16 vp8_sad8x16_wmt
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad16x8 vp8_sad16x8_wmt
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct4x4 vp8_short_fdct4x4_sse2
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct8x4 vp8_short_fdct8x4_sse2
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+#define vp8_block_error vp8_block_error_xmm
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+#define vp8_mbblock_error vp8_mbblock_error_xmm
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+#define vp8_mbuverror vp8_mbuverror_xmm
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+#define vp8_subtract_b vp8_subtract_b_sse2
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+#define vp8_subtract_mby vp8_subtract_mby_sse2
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+#define vp8_subtract_mbuv vp8_subtract_mbuv_sse2
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+
+
+
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+
+
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_version.h b/third_party/libvpx/source/config/mac/x64/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/mac/x64/vpx_version.h
+++ b/third_party/libvpx/source/config/mac/x64/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"
diff --git a/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm b/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm
index a9fbc89..5043a22 100644
--- a/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/win/ia32/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 12
vp8_blockd_dqcoeff EQU 4
-vp8_blockd_eob EQU 40
+vp8_blockd_eob EQU 20
vp8_block_base_src EQU 36
vp8_block_src EQU 40
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 4
vp8_extra_bit_struct_len EQU 8
vp8_extra_bit_struct_base_val EQU 12
-vp8_comp_tplist EQU 170224
-vp8_comp_common EQU 104544
-vp8_comp_bc EQU 116800
+vp8_comp_tplist EQU 170624
+vp8_comp_common EQU 104032
+vp8_comp_bc EQU 116144
vp8_writer_sz EQU 40
tokenlist_start EQU 0
tokenlist_stop EQU 4
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.asm b/third_party/libvpx/source/config/win/ia32/vpx_config.asm
index 8d6bbcd..411adcf 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_config.asm
+++ b/third_party/libvpx/source/config/win/ia32/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 0
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 1
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.c b/third_party/libvpx/source/config/win/ia32/vpx_config.c
index 63351ab..bcd9622 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_config.c
+++ b/third_party/libvpx/source/config/win/ia32/vpx_config.c
@@ -5,5 +5,5 @@
/* tree. An additional intellectual property rights grant can be found */
/* in the file PATENTS. All contributing project authors may */
/* be found in the AUTHORS file in the root of the source tree. */
-static const char* const cfg = "--target=x86-win32-vs9 --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-examples --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only --enable-static-msvcrt";
+static const char* const cfg = "--target=x86-win32-vs9 --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-examples --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only --enable-static-msvcrt --as=yasm";
const char *vpx_codec_build_config(void) {return cfg;}
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.h b/third_party/libvpx/source/config/win/ia32/vpx_config.h
index d0019c7..0f66f46 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_config.h
+++ b/third_party/libvpx/source/config/win/ia32/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 0
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 1
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h b/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h
new file mode 100755
index 0000000..d435fb4
--- /dev/null
+++ b/third_party/libvpx/source/config/win/ia32/vpx_rtcd.h
@@ -0,0 +1,802 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+RTCD_EXTERN void (*vp8_dequantize_b)(struct blockd*, short *dqc);
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_y_block)(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+RTCD_EXTERN void (*vp8_dequant_idct_add_uv_block)(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bv)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_mbh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+RTCD_EXTERN void (*vp8_loop_filter_bh)(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_mbh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bv)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+RTCD_EXTERN void (*vp8_loop_filter_simple_bh)(unsigned char *y, int ystride, const unsigned char *blimit);
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+RTCD_EXTERN void (*vp8_short_inv_walsh4x4)(short *input, short *output);
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+RTCD_EXTERN void (*vp8_dc_only_idct_add)(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem16x16)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x8)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_copy_mem8x4)(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_down)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+RTCD_EXTERN void (*vp8_mbpost_proc_across_ip)(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+RTCD_EXTERN void (*vp8_post_proc_down_and_across)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+RTCD_EXTERN void (*vp8_plane_add_noise)(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance4x4)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance8x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_h)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_v)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_variance_halfpixvar16x16_hv)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+RTCD_EXTERN unsigned int (*vp8_get_mb_ss)(const short *);
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_mse16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_mse16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+RTCD_EXTERN unsigned int (*vp8_get4x4sse_cs)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad4x4)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad8x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct4x4)(short *input, short *output, int pitch);
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_fdct8x4)(short *input, short *output, int pitch);
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+RTCD_EXTERN void (*vp8_short_walsh4x4)(short *input, short *output, int pitch);
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+RTCD_EXTERN void (*vp8_subtract_b)(struct block *be, struct blockd *bd, int pitch);
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mby)(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+RTCD_EXTERN void (*vp8_subtract_mbuv)(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+ vp8_dequantize_b = vp8_dequantize_b_c;
+ if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
+
+ vp8_dequant_idct_add = vp8_dequant_idct_add_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add = vp8_dequant_idct_add_mmx;
+
+ vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_sse2;
+
+ vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_c;
+ if (flags & HAS_MMX) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_mmx;
+ if (flags & HAS_SSE2) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_sse2;
+
+ vp8_loop_filter_mbv = vp8_loop_filter_mbv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbv = vp8_loop_filter_mbv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbv = vp8_loop_filter_mbv_sse2;
+
+ vp8_loop_filter_bv = vp8_loop_filter_bv_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bv = vp8_loop_filter_bv_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bv = vp8_loop_filter_bv_sse2;
+
+ vp8_loop_filter_mbh = vp8_loop_filter_mbh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_mbh = vp8_loop_filter_mbh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_mbh = vp8_loop_filter_mbh_sse2;
+
+ vp8_loop_filter_bh = vp8_loop_filter_bh_c;
+ if (flags & HAS_MMX) vp8_loop_filter_bh = vp8_loop_filter_bh_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_bh = vp8_loop_filter_bh_sse2;
+
+ vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_sse2;
+
+ vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_sse2;
+
+ vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_sse2;
+
+ vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_c;
+ if (flags & HAS_MMX) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_mmx;
+ if (flags & HAS_SSE2) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_sse2;
+
+ vp8_short_idct4x4llm = vp8_short_idct4x4llm_c;
+ if (flags & HAS_MMX) vp8_short_idct4x4llm = vp8_short_idct4x4llm_mmx;
+
+
+ vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_c;
+ if (flags & HAS_MMX) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_sse2;
+
+ vp8_dc_only_idct_add = vp8_dc_only_idct_add_c;
+ if (flags & HAS_MMX) vp8_dc_only_idct_add = vp8_dc_only_idct_add_mmx;
+
+ vp8_copy_mem16x16 = vp8_copy_mem16x16_c;
+ if (flags & HAS_MMX) vp8_copy_mem16x16 = vp8_copy_mem16x16_mmx;
+ if (flags & HAS_SSE2) vp8_copy_mem16x16 = vp8_copy_mem16x16_sse2;
+
+ vp8_copy_mem8x8 = vp8_copy_mem8x8_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x8 = vp8_copy_mem8x8_mmx;
+
+ vp8_copy_mem8x4 = vp8_copy_mem8x4_c;
+ if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_c;
+ if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+ vp8_mbpost_proc_down = vp8_mbpost_proc_down_c;
+ if (flags & HAS_MMX) vp8_mbpost_proc_down = vp8_mbpost_proc_down_mmx;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_down = vp8_mbpost_proc_down_xmm;
+
+ vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_c;
+ if (flags & HAS_SSE2) vp8_mbpost_proc_across_ip = vp8_mbpost_proc_across_ip_xmm;
+
+ vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_c;
+ if (flags & HAS_MMX) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_mmx;
+ if (flags & HAS_SSE2) vp8_post_proc_down_and_across = vp8_post_proc_down_and_across_xmm;
+
+ vp8_plane_add_noise = vp8_plane_add_noise_c;
+ if (flags & HAS_MMX) vp8_plane_add_noise = vp8_plane_add_noise_mmx;
+ if (flags & HAS_SSE2) vp8_plane_add_noise = vp8_plane_add_noise_wmt;
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_mmx;
+ if (flags & HAS_SSE2) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_c;
+ if (flags & HAS_MMX) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_mmx;
+ if (flags & HAS_SSE2) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+ vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
+
+ vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_c;
+ if (flags & HAS_MMX) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_mmx;
+
+ vp8_variance4x4 = vp8_variance4x4_c;
+ if (flags & HAS_MMX) vp8_variance4x4 = vp8_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_variance4x4 = vp8_variance4x4_wmt;
+
+ vp8_variance8x8 = vp8_variance8x8_c;
+ if (flags & HAS_MMX) vp8_variance8x8 = vp8_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x8 = vp8_variance8x8_wmt;
+
+ vp8_variance8x16 = vp8_variance8x16_c;
+ if (flags & HAS_MMX) vp8_variance8x16 = vp8_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance8x16 = vp8_variance8x16_wmt;
+
+ vp8_variance16x8 = vp8_variance16x8_c;
+ if (flags & HAS_MMX) vp8_variance16x8 = vp8_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x8 = vp8_variance16x8_wmt;
+
+ vp8_variance16x16 = vp8_variance16x16_c;
+ if (flags & HAS_MMX) vp8_variance16x16 = vp8_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_variance16x16 = vp8_variance16x16_wmt;
+
+ vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance4x4 = vp8_sub_pixel_variance4x4_wmt;
+
+ vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x8 = vp8_sub_pixel_variance8x8_wmt;
+
+ vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance8x16 = vp8_sub_pixel_variance8x16_wmt;
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+ vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_wmt;
+
+ vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_wmt;
+
+ vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_c;
+ if (flags & HAS_MMX) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_mmx;
+ if (flags & HAS_SSE2) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_wmt;
+
+ vp8_get_mb_ss = vp8_get_mb_ss_c;
+ if (flags & HAS_MMX) vp8_get_mb_ss = vp8_get_mb_ss_mmx;
+ if (flags & HAS_SSE2) vp8_get_mb_ss = vp8_get_mb_ss_sse2;
+
+ vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_c;
+ if (flags & HAS_MMX) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sub_pixel_mse16x16 = vp8_sub_pixel_mse16x16_wmt;
+
+ vp8_mse16x16 = vp8_mse16x16_c;
+ if (flags & HAS_MMX) vp8_mse16x16 = vp8_mse16x16_mmx;
+ if (flags & HAS_SSE2) vp8_mse16x16 = vp8_mse16x16_wmt;
+
+ vp8_get4x4sse_cs = vp8_get4x4sse_cs_c;
+ if (flags & HAS_MMX) vp8_get4x4sse_cs = vp8_get4x4sse_cs_mmx;
+
+ vp8_sad4x4 = vp8_sad4x4_c;
+ if (flags & HAS_MMX) vp8_sad4x4 = vp8_sad4x4_mmx;
+ if (flags & HAS_SSE2) vp8_sad4x4 = vp8_sad4x4_wmt;
+
+ vp8_sad8x8 = vp8_sad8x8_c;
+ if (flags & HAS_MMX) vp8_sad8x8 = vp8_sad8x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x8 = vp8_sad8x8_wmt;
+
+ vp8_sad8x16 = vp8_sad8x16_c;
+ if (flags & HAS_MMX) vp8_sad8x16 = vp8_sad8x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad8x16 = vp8_sad8x16_wmt;
+
+ vp8_sad16x8 = vp8_sad16x8_c;
+ if (flags & HAS_MMX) vp8_sad16x8 = vp8_sad16x8_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x8 = vp8_sad16x8_wmt;
+
+ vp8_sad16x16 = vp8_sad16x16_c;
+ if (flags & HAS_MMX) vp8_sad16x16 = vp8_sad16x16_mmx;
+ if (flags & HAS_SSE2) vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_c;
+ if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+ vp8_short_fdct4x4 = vp8_short_fdct4x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct4x4 = vp8_short_fdct4x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct4x4 = vp8_short_fdct4x4_sse2;
+
+ vp8_short_fdct8x4 = vp8_short_fdct8x4_c;
+ if (flags & HAS_MMX) vp8_short_fdct8x4 = vp8_short_fdct8x4_mmx;
+ if (flags & HAS_SSE2) vp8_short_fdct8x4 = vp8_short_fdct8x4_sse2;
+
+ vp8_short_walsh4x4 = vp8_short_walsh4x4_c;
+ if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_c;
+ if (flags & HAS_SSE2) vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+ vp8_block_error = vp8_block_error_c;
+ if (flags & HAS_MMX) vp8_block_error = vp8_block_error_mmx;
+ if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_xmm;
+
+ vp8_mbblock_error = vp8_mbblock_error_c;
+ if (flags & HAS_MMX) vp8_mbblock_error = vp8_mbblock_error_mmx;
+ if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_xmm;
+
+ vp8_mbuverror = vp8_mbuverror_c;
+ if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
+ if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_xmm;
+
+ vp8_subtract_b = vp8_subtract_b_c;
+ if (flags & HAS_MMX) vp8_subtract_b = vp8_subtract_b_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_b = vp8_subtract_b_sse2;
+
+ vp8_subtract_mby = vp8_subtract_mby_c;
+ if (flags & HAS_MMX) vp8_subtract_mby = vp8_subtract_mby_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mby = vp8_subtract_mby_sse2;
+
+ vp8_subtract_mbuv = vp8_subtract_mbuv_c;
+ if (flags & HAS_MMX) vp8_subtract_mbuv = vp8_subtract_mbuv_mmx;
+ if (flags & HAS_SSE2) vp8_subtract_mbuv = vp8_subtract_mbuv_sse2;
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_version.h b/third_party/libvpx/source/config/win/ia32/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/win/ia32/vpx_version.h
+++ b/third_party/libvpx/source/config/win/ia32/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"
diff --git a/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm b/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm
index b5a9be8..14491db 100644
--- a/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm
+++ b/third_party/libvpx/source/config/win/x64/asm_enc_offsets.asm
@@ -9,7 +9,7 @@
vp8_blockd_qcoeff EQU 0
vp8_blockd_dequant EQU 24
vp8_blockd_dqcoeff EQU 8
-vp8_blockd_eob EQU 64
+vp8_blockd_eob EQU 40
vp8_block_base_src EQU 72
vp8_block_src EQU 80
vp8_block_src_diff EQU 0
@@ -35,9 +35,9 @@
vp8_extra_bit_struct_prob EQU 8
vp8_extra_bit_struct_len EQU 16
vp8_extra_bit_struct_base_val EQU 20
-vp8_comp_tplist EQU 173000
-vp8_comp_common EQU 106496
-vp8_comp_bc EQU 119280
+vp8_comp_tplist EQU 173168
+vp8_comp_common EQU 105920
+vp8_comp_bc EQU 118400
vp8_writer_sz EQU 56
tokenlist_start EQU 0
tokenlist_stop EQU 8
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.asm b/third_party/libvpx/source/config/win/x64/vpx_config.asm
index 02c87dc..5bb3022 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_config.asm
+++ b/third_party/libvpx/source/config/win/x64/vpx_config.asm
@@ -4,9 +4,9 @@
ARCH_X86_64 equ 1
ARCH_PPC32 equ 0
ARCH_PPC64 equ 0
-HAVE_ARMV5TE equ 0
-HAVE_ARMV6 equ 0
-HAVE_ARMV7 equ 0
+HAVE_EDSP equ 0
+HAVE_MEDIA equ 0
+HAVE_NEON equ 0
HAVE_MIPS32 equ 0
HAVE_MMX equ 1
HAVE_SSE equ 1
@@ -55,6 +55,7 @@
CONFIG_STATIC_MSVCRT equ 1
CONFIG_SPATIAL_RESAMPLING equ 1
CONFIG_REALTIME_ONLY equ 1
+CONFIG_ONTHEFLY_BITPACKING equ 0
CONFIG_ERROR_CONCEALMENT equ 1
CONFIG_SHARED equ 0
CONFIG_STATIC equ 1
@@ -63,3 +64,4 @@
CONFIG_OS_SUPPORT equ 1
CONFIG_UNIT_TESTS equ 0
CONFIG_MULTI_RES_ENCODING equ 0
+CONFIG_TEMPORAL_DENOISING equ 1
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.c b/third_party/libvpx/source/config/win/x64/vpx_config.c
index 19c1568..c59d62c 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_config.c
+++ b/third_party/libvpx/source/config/win/x64/vpx_config.c
@@ -5,5 +5,5 @@
/* tree. An additional intellectual property rights grant can be found */
/* in the file PATENTS. All contributing project authors may */
/* be found in the AUTHORS file in the root of the source tree. */
-static const char* const cfg = "--target=x86_64-win64-vs9 --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-examples --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only --enable-static-msvcrt";
+static const char* const cfg = "--target=x86_64-win64-vs9 --enable-pic --enable-error-concealment --disable-install-docs --disable-install-srcs --disable-examples --disable-internal-stats --disable-install-libs --disable-install-bins --enable-realtime-only --enable-static-msvcrt --as=yasm";
const char *vpx_codec_build_config(void) {return cfg;}
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.h b/third_party/libvpx/source/config/win/x64/vpx_config.h
index 70bc430..1a61d9a 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_config.h
+++ b/third_party/libvpx/source/config/win/x64/vpx_config.h
@@ -15,9 +15,9 @@
#define ARCH_X86_64 1
#define ARCH_PPC32 0
#define ARCH_PPC64 0
-#define HAVE_ARMV5TE 0
-#define HAVE_ARMV6 0
-#define HAVE_ARMV7 0
+#define HAVE_EDSP 0
+#define HAVE_MEDIA 0
+#define HAVE_NEON 0
#define HAVE_MIPS32 0
#define HAVE_MMX 1
#define HAVE_SSE 1
@@ -66,6 +66,7 @@
#define CONFIG_STATIC_MSVCRT 1
#define CONFIG_SPATIAL_RESAMPLING 1
#define CONFIG_REALTIME_ONLY 1
+#define CONFIG_ONTHEFLY_BITPACKING 0
#define CONFIG_ERROR_CONCEALMENT 1
#define CONFIG_SHARED 0
#define CONFIG_STATIC 1
@@ -74,4 +75,5 @@
#define CONFIG_OS_SUPPORT 1
#define CONFIG_UNIT_TESTS 0
#define CONFIG_MULTI_RES_ENCODING 0
+#define CONFIG_TEMPORAL_DENOISING 1
#endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/win/x64/vpx_rtcd.h b/third_party/libvpx/source/config/win/x64/vpx_rtcd.h
new file mode 100755
index 0000000..4315fb1
--- /dev/null
+++ b/third_party/libvpx/source/config/win/x64/vpx_rtcd.h
@@ -0,0 +1,635 @@
+#ifndef VPX_RTCD_
+#define VPX_RTCD_
+
+#ifdef RTCD_C
+#define RTCD_EXTERN
+#else
+#define RTCD_EXTERN extern
+#endif
+
+struct blockd;
+struct macroblockd;
+struct loop_filter_info;
+
+/* Encoder forward decls */
+struct block;
+struct macroblock;
+struct variance_vtable;
+union int_mv;
+struct yv12_buffer_config;
+
+void vp8_dequantize_b_c(struct blockd*, short *dqc);
+void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
+#define vp8_dequantize_b vp8_dequantize_b_mmx
+
+void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
+void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, int stride);
+#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
+
+void vp8_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_mmx(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+void vp8_dequant_idct_add_y_block_sse2(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
+#define vp8_dequant_idct_add_y_block vp8_dequant_idct_add_y_block_sse2
+
+void vp8_dequant_idct_add_uv_block_c(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_mmx(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+void vp8_dequant_idct_add_uv_block_sse2(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
+#define vp8_dequant_idct_add_uv_block vp8_dequant_idct_add_uv_block_sse2
+
+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);
+void vp8_loop_filter_mbv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbv vp8_loop_filter_mbv_sse2
+
+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);
+void vp8_loop_filter_bv_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bv_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bv vp8_loop_filter_bv_sse2
+
+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);
+void vp8_loop_filter_mbh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_mbh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_mbh vp8_loop_filter_mbh_sse2
+
+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);
+void vp8_loop_filter_bh_mmx(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+void vp8_loop_filter_bh_sse2(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
+#define vp8_loop_filter_bh vp8_loop_filter_bh_sse2
+
+void vp8_loop_filter_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_vertical_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbv vp8_loop_filter_simple_vertical_edge_sse2
+
+void vp8_loop_filter_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_simple_horizontal_edge_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_mbh vp8_loop_filter_simple_horizontal_edge_sse2
+
+void vp8_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bvs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bv vp8_loop_filter_bvs_sse2
+
+void vp8_loop_filter_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_mmx(unsigned char *y, int ystride, const unsigned char *blimit);
+void vp8_loop_filter_bhs_sse2(unsigned char *y, int ystride, const unsigned char *blimit);
+#define vp8_loop_filter_simple_bh vp8_loop_filter_bhs_sse2
+
+void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
+#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
+
+void vp8_short_inv_walsh4x4_1_c(short *input, short *output);
+#define vp8_short_inv_walsh4x4_1 vp8_short_inv_walsh4x4_1_c
+
+void vp8_short_inv_walsh4x4_c(short *input, short *output);
+void vp8_short_inv_walsh4x4_mmx(short *input, short *output);
+void vp8_short_inv_walsh4x4_sse2(short *input, short *output);
+#define vp8_short_inv_walsh4x4 vp8_short_inv_walsh4x4_sse2
+
+void vp8_dc_only_idct_add_c(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+void vp8_dc_only_idct_add_mmx(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
+#define vp8_dc_only_idct_add vp8_dc_only_idct_add_mmx
+
+void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem16x16_sse2(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem16x16 vp8_copy_mem16x16_sse2
+
+void vp8_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x8_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x8 vp8_copy_mem8x8_mmx
+
+void vp8_copy_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+void vp8_copy_mem8x4_mmx(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
+#define vp8_copy_mem8x4 vp8_copy_mem8x4_mmx
+
+void vp8_build_intra_predictors_mby_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mby_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mby)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
+
+void vp8_build_intra_predictors_mbuv_c(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_sse2(struct macroblockd *x);
+void vp8_build_intra_predictors_mbuv_ssse3(struct macroblockd *x);
+RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv)(struct macroblockd *x);
+
+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);
+#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
+
+void vp8_intra4x4_predict_c(unsigned char *src, int src_stride, int b_mode, unsigned char *dst, int dst_stride);
+#define vp8_intra4x4_predict vp8_intra4x4_predict_c
+
+void vp8_mbpost_proc_down_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_mmx(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_down_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_down vp8_mbpost_proc_down_xmm
+
+void vp8_mbpost_proc_across_ip_c(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+void vp8_mbpost_proc_across_ip_xmm(unsigned char *dst, int pitch, int rows, int cols,int flimit);
+#define vp8_mbpost_proc_across_ip vp8_mbpost_proc_across_ip_xmm
+
+void vp8_post_proc_down_and_across_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_mmx(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+void vp8_post_proc_down_and_across_xmm(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int rows, int cols, int flimit);
+#define vp8_post_proc_down_and_across vp8_post_proc_down_and_across_xmm
+
+void vp8_plane_add_noise_c(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_mmx(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+void vp8_plane_add_noise_wmt(unsigned char *s, char *noise, char blackclamp[16], char whiteclamp[16], char bothclamp[16], unsigned int w, unsigned int h, int pitch);
+#define vp8_plane_add_noise vp8_plane_add_noise_wmt
+
+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);
+#define vp8_blend_mb_inner vp8_blend_mb_inner_c
+
+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);
+#define vp8_blend_mb_outer vp8_blend_mb_outer_c
+
+void vp8_blend_b_c(unsigned char *y, unsigned char *u, unsigned char *v, int y1, int u1, int v1, int alpha, int stride);
+#define vp8_blend_b vp8_blend_b_c
+
+void vp8_sixtap_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict8x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict8x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_sixtap_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_sixtap_predict4x4)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict16x16_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict16x16_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict16x16)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_sse2(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x8_ssse3(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+RTCD_EXTERN void (*vp8_bilinear_predict8x8)(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+
+void vp8_bilinear_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
+
+void vp8_bilinear_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+void vp8_bilinear_predict4x4_mmx(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
+#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_mmx
+
+unsigned int vp8_variance4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance4x4 vp8_variance4x4_wmt
+
+unsigned int vp8_variance8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x8 vp8_variance8x8_wmt
+
+unsigned int vp8_variance8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance8x16 vp8_variance8x16_wmt
+
+unsigned int vp8_variance16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x8 vp8_variance16x8_wmt
+
+unsigned int vp8_variance16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance16x16 vp8_variance16x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance4x4_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance4x4_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance8x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance8x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_wmt
+
+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);
+unsigned int vp8_sub_pixel_variance16x8_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x8_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x8)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_sub_pixel_variance16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_variance16x16_ssse3(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+RTCD_EXTERN unsigned int (*vp8_sub_pixel_variance16x16)(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_h_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_h_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_v_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_v_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_wmt
+
+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);
+unsigned int vp8_variance_halfpixvar16x16_hv_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_variance_halfpixvar16x16_hv_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_wmt
+
+unsigned int vp8_get_mb_ss_c(const short *);
+unsigned int vp8_get_mb_ss_mmx(const short *);
+unsigned int vp8_get_mb_ss_sse2(const short *);
+#define vp8_get_mb_ss vp8_get_mb_ss_sse2
+
+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);
+unsigned int vp8_sub_pixel_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+unsigned int vp8_sub_pixel_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, int xoffset, int yoffset, const unsigned char *ref_ptr, int Refstride, unsigned int *sse);
+#define vp8_sub_pixel_mse16x16 vp8_sub_pixel_mse16x16_wmt
+
+unsigned int vp8_mse16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+unsigned int vp8_mse16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sse);
+#define vp8_mse16x16 vp8_mse16x16_wmt
+
+unsigned int vp8_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+unsigned int vp8_get4x4sse_cs_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
+#define vp8_get4x4sse_cs vp8_get4x4sse_cs_mmx
+
+unsigned int vp8_sad4x4_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad4x4_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad4x4 vp8_sad4x4_wmt
+
+unsigned int vp8_sad8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x8 vp8_sad8x8_wmt
+
+unsigned int vp8_sad8x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad8x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad8x16 vp8_sad8x16_wmt
+
+unsigned int vp8_sad16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x8_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+#define vp8_sad16x8 vp8_sad16x8_wmt
+
+unsigned int vp8_sad16x16_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_mmx(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_wmt(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+unsigned int vp8_sad16x16_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+RTCD_EXTERN unsigned int (*vp8_sad16x16)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int max_sad);
+
+void vp8_sad4x4x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x3_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x3_ssse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x3)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned int *sad_array);
+
+void vp8_sad4x4x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad4x4x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad8x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad8x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x8x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x8x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad16x16x8_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+void vp8_sad16x16x8_sse4(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x8)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array);
+
+void vp8_sad4x4x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad4x4x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad4x4x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad8x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad8x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad8x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x8x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x8x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x8x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_sad16x16x4d_c(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+void vp8_sad16x16x4d_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+RTCD_EXTERN void (*vp8_sad16x16x4d)(const unsigned char *src_ptr, int source_stride, unsigned char *ref_ptr[4], int ref_stride, unsigned int *sad_array);
+
+void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride, int n);
+
+void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct4x4 vp8_short_fdct4x4_sse2
+
+void vp8_short_fdct8x4_c(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_mmx(short *input, short *output, int pitch);
+void vp8_short_fdct8x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_fdct8x4 vp8_short_fdct8x4_sse2
+
+void vp8_short_walsh4x4_c(short *input, short *output, int pitch);
+void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
+#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
+
+void vp8_regular_quantize_b_c(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_regular_quantize_b_sse4(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
+
+void vp8_fast_quantize_b_c(struct block *, struct blockd *);
+void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
+void vp8_fast_quantize_b_ssse3(struct block *, struct blockd *);
+RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
+
+void vp8_regular_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_regular_quantize_b_pair vp8_regular_quantize_b_pair_c
+
+void vp8_fast_quantize_b_pair_c(struct block *b1, struct block *b2, struct blockd *d1, struct blockd *d2);
+#define vp8_fast_quantize_b_pair vp8_fast_quantize_b_pair_c
+
+void vp8_quantize_mb_c(struct macroblock *);
+#define vp8_quantize_mb vp8_quantize_mb_c
+
+void vp8_quantize_mby_c(struct macroblock *);
+#define vp8_quantize_mby vp8_quantize_mby_c
+
+void vp8_quantize_mbuv_c(struct macroblock *);
+#define vp8_quantize_mbuv vp8_quantize_mbuv_c
+
+int vp8_block_error_c(short *coeff, short *dqcoeff);
+int vp8_block_error_mmx(short *coeff, short *dqcoeff);
+int vp8_block_error_xmm(short *coeff, short *dqcoeff);
+#define vp8_block_error vp8_block_error_xmm
+
+int vp8_mbblock_error_c(struct macroblock *mb, int dc);
+int vp8_mbblock_error_mmx(struct macroblock *mb, int dc);
+int vp8_mbblock_error_xmm(struct macroblock *mb, int dc);
+#define vp8_mbblock_error vp8_mbblock_error_xmm
+
+int vp8_mbuverror_c(struct macroblock *mb);
+int vp8_mbuverror_mmx(struct macroblock *mb);
+int vp8_mbuverror_xmm(struct macroblock *mb);
+#define vp8_mbuverror vp8_mbuverror_xmm
+
+void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_mmx(struct block *be, struct blockd *bd, int pitch);
+void vp8_subtract_b_sse2(struct block *be, struct blockd *bd, int pitch);
+#define vp8_subtract_b vp8_subtract_b_sse2
+
+void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_mmx(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+void vp8_subtract_mby_sse2(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
+#define vp8_subtract_mby vp8_subtract_mby_sse2
+
+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);
+void vp8_subtract_mbuv_mmx(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+void vp8_subtract_mbuv_sse2(short *diff, unsigned char *usrc, unsigned char *vsrc, int src_stride, unsigned char *upred, unsigned char *vpred, int pred_stride);
+#define vp8_subtract_mbuv vp8_subtract_mbuv_sse2
+
+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);
+int vp8_full_search_sadx3(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);
+int vp8_full_search_sadx8(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);
+RTCD_EXTERN int (*vp8_full_search_sad)(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);
+
+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);
+int vp8_refining_search_sadx4(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);
+RTCD_EXTERN int (*vp8_refining_search_sad)(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);
+
+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);
+int vp8_diamond_search_sadx4(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);
+RTCD_EXTERN int (*vp8_diamond_search_sad)(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);
+
+void vp8_yv12_copy_partial_frame_c(struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
+#define vp8_yv12_copy_partial_frame vp8_yv12_copy_partial_frame_c
+void vpx_rtcd(void);
+
+#ifdef RTCD_C
+#include "vpx_ports/x86.h"
+void vpx_rtcd(void)
+{
+ int flags = x86_simd_caps();
+
+ (void)flags;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby = vp8_build_intra_predictors_mby_ssse3;
+
+
+ vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_sse2;
+ if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv = vp8_build_intra_predictors_mbuv_ssse3;
+
+
+
+
+
+
+
+
+
+
+ vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_ssse3;
+
+ vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
+
+ vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_sse2;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
+
+ vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_mmx;
+ if (flags & HAS_SSSE3) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_ssse3;
+
+ vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_ssse3;
+
+ vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_sse2;
+ if (flags & HAS_SSSE3) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
+
+ vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
+ if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_sad16x16 = vp8_sad16x16_wmt;
+ if (flags & HAS_SSE3) vp8_sad16x16 = vp8_sad16x16_sse3;
+
+ vp8_sad4x4x3 = vp8_sad4x4x3_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x3 = vp8_sad4x4x3_sse3;
+
+ vp8_sad8x8x3 = vp8_sad8x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x3 = vp8_sad8x8x3_sse3;
+
+ vp8_sad8x16x3 = vp8_sad8x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x3 = vp8_sad8x16x3_sse3;
+
+ vp8_sad16x8x3 = vp8_sad16x8x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x3 = vp8_sad16x8x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x8x3 = vp8_sad16x8x3_ssse3;
+
+ vp8_sad16x16x3 = vp8_sad16x16x3_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x3 = vp8_sad16x16x3_sse3;
+ if (flags & HAS_SSSE3) vp8_sad16x16x3 = vp8_sad16x16x3_ssse3;
+
+ vp8_sad4x4x8 = vp8_sad4x4x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad4x4x8 = vp8_sad4x4x8_sse4;
+
+ vp8_sad8x8x8 = vp8_sad8x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x8x8 = vp8_sad8x8x8_sse4;
+
+ vp8_sad8x16x8 = vp8_sad8x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad8x16x8 = vp8_sad8x16x8_sse4;
+
+ vp8_sad16x8x8 = vp8_sad16x8x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x8x8 = vp8_sad16x8x8_sse4;
+
+ vp8_sad16x16x8 = vp8_sad16x16x8_c;
+ if (flags & HAS_SSE4_1) vp8_sad16x16x8 = vp8_sad16x16x8_sse4;
+
+ vp8_sad4x4x4d = vp8_sad4x4x4d_c;
+ if (flags & HAS_SSE3) vp8_sad4x4x4d = vp8_sad4x4x4d_sse3;
+
+ vp8_sad8x8x4d = vp8_sad8x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x8x4d = vp8_sad8x8x4d_sse3;
+
+ vp8_sad8x16x4d = vp8_sad8x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad8x16x4d = vp8_sad8x16x4d_sse3;
+
+ vp8_sad16x8x4d = vp8_sad16x8x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x8x4d = vp8_sad16x8x4d_sse3;
+
+ vp8_sad16x16x4d = vp8_sad16x16x4d_c;
+ if (flags & HAS_SSE3) vp8_sad16x16x4d = vp8_sad16x16x4d_sse3;
+
+ vp8_copy32xn = vp8_copy32xn_sse2;
+ if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
+
+
+
+
+ vp8_regular_quantize_b = vp8_regular_quantize_b_sse2;
+ if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4;
+
+ vp8_fast_quantize_b = vp8_fast_quantize_b_sse2;
+ if (flags & HAS_SSSE3) vp8_fast_quantize_b = vp8_fast_quantize_b_ssse3;
+
+
+
+
+
+
+
+
+
+
+
+
+ vp8_full_search_sad = vp8_full_search_sad_c;
+ if (flags & HAS_SSE3) vp8_full_search_sad = vp8_full_search_sadx3;
+ if (flags & HAS_SSE4_1) vp8_full_search_sad = vp8_full_search_sadx8;
+
+ vp8_refining_search_sad = vp8_refining_search_sad_c;
+ if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
+
+ vp8_diamond_search_sad = vp8_diamond_search_sad_c;
+ if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
+}
+#endif
+#endif
diff --git a/third_party/libvpx/source/config/win/x64/vpx_version.h b/third_party/libvpx/source/config/win/x64/vpx_version.h
index c685880..5e8336e 100644
--- a/third_party/libvpx/source/config/win/x64/vpx_version.h
+++ b/third_party/libvpx/source/config/win/x64/vpx_version.h
@@ -1,7 +1,7 @@
-#define VERSION_MAJOR 0
-#define VERSION_MINOR 9
-#define VERSION_PATCH 7
-#define VERSION_EXTRA "p1-268-ge479379"
+#define VERSION_MAJOR 1
+#define VERSION_MINOR 0
+#define VERSION_PATCH 0
+#define VERSION_EXTRA "108-g6b66c01"
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
-#define VERSION_STRING_NOSP "v0.9.7-p1-268-ge479379"
-#define VERSION_STRING " v0.9.7-p1-268-ge479379"
+#define VERSION_STRING_NOSP "v1.0.0-108-g6b66c01"
+#define VERSION_STRING " v1.0.0-108-g6b66c01"