summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vp9/common/rtcd_defs.sh15
-rw-r--r--vp9/encoder/generic/csystemdependent.c22
-rw-r--r--vp9/encoder/mcomp.c4
-rw-r--r--vp9/encoder/picklpf.c16
-rw-r--r--vp9/encoder/variance.h2
-rw-r--r--vp9/encoder/x86/x86_csystemdependent.c24
6 files changed, 20 insertions, 63 deletions
diff --git a/vp9/common/rtcd_defs.sh b/vp9/common/rtcd_defs.sh
index 813e93af3..db389500c 100644
--- a/vp9/common/rtcd_defs.sh
+++ b/vp9/common/rtcd_defs.sh
@@ -378,22 +378,22 @@ specialize vp9_sad8x8x8 sse4
prototype void vp9_sad4x4x8 "const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride, unsigned short *sad_array"
specialize vp9_sad4x4x8 sse4
-prototype void vp9_sad32x32x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad32x32x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad32x32x4d
-prototype void vp9_sad16x16x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad16x16x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad16x16x4d sse3
-prototype void vp9_sad16x8x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad16x8x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad16x8x4d sse3
-prototype void vp9_sad8x16x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad8x16x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad8x16x4d sse3
-prototype void vp9_sad8x8x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad8x8x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad8x8x4d sse3
-prototype void vp9_sad4x4x4d "const unsigned char *src_ptr, int src_stride, const unsigned char* const ref_ptr[], int ref_stride, unsigned int *sad_array"
+prototype void vp9_sad4x4x4d "const unsigned char *src_ptr, int src_stride, const unsigned char **ref_ptr, int ref_stride, unsigned int *sad_array"
specialize vp9_sad4x4x4d sse3
#
@@ -507,6 +507,9 @@ vp9_diamond_search_sad_sse3=vp9_diamond_search_sadx4
prototype void vp9_temporal_filter_apply "unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count"
specialize vp9_temporal_filter_apply sse2
+prototype void vp9_yv12_copy_partial_frame "struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc, int fraction"
+specialize vp9_yv12_copy_partial_frame neon
+
fi
# end encoder functions
diff --git a/vp9/encoder/generic/csystemdependent.c b/vp9/encoder/generic/csystemdependent.c
index d49b7d981..411408cad 100644
--- a/vp9/encoder/generic/csystemdependent.c
+++ b/vp9/encoder/generic/csystemdependent.c
@@ -14,30 +14,8 @@
#include "vp9/encoder/onyx_int.h"
-void vp9_arch_x86_encoder_init(VP9_COMP *cpi);
-void vp9_arch_arm_encoder_init(VP9_COMP *cpi);
-
-void (*vp9_yv12_copy_partial_frame_ptr)(YV12_BUFFER_CONFIG *src_ybc,
- YV12_BUFFER_CONFIG *dst_ybc,
- int fraction);
-extern void vp9_yv12_copy_partial_frame(YV12_BUFFER_CONFIG *src_ybc,
- YV12_BUFFER_CONFIG *dst_ybc,
- int fraction);
-
void vp9_cmachine_specific_config(VP9_COMP *cpi) {
#if CONFIG_RUNTIME_CPU_DETECT
cpi->rtcd.common = &cpi->common.rtcd;
#endif
-
- vp9_yv12_copy_partial_frame_ptr = vp9_yv12_copy_partial_frame;
-
-#if ARCH_X86 || ARCH_X86_64
- vp9_arch_x86_encoder_init(cpi);
-#endif
-
-#if ARCH_ARM
- vp9_arch_arm_encoder_init(cpi);
-#endif
-
-
}
diff --git a/vp9/encoder/mcomp.c b/vp9/encoder/mcomp.c
index 90e944f10..54248640b 100644
--- a/vp9/encoder/mcomp.c
+++ b/vp9/encoder/mcomp.c
@@ -1442,7 +1442,7 @@ int vp9_diamond_search_sadx4(MACROBLOCK *x, BLOCK *b, BLOCKD *d,
unsigned int sad_array[4];
for (j = 0; j < x->searches_per_step; j += 4) {
- unsigned char *block_offset[4];
+ const unsigned char *block_offset[4];
for (t = 0; t < 4; t++)
block_offset[t] = ss[i + t].offset + best_address;
@@ -2070,7 +2070,7 @@ int vp9_refining_search_sadx4(MACROBLOCK *x, BLOCK *b, BLOCKD *d,
if (all_in) {
unsigned int sad_array[4];
- unsigned char *block_offset[4];
+ unsigned char const *block_offset[4];
block_offset[0] = best_address - in_what_stride;
block_offset[1] = best_address - 1;
block_offset[2] = best_address + 1;
diff --git a/vp9/encoder/picklpf.c b/vp9/encoder/picklpf.c
index 0107facc3..d5631bd23 100644
--- a/vp9/encoder/picklpf.c
+++ b/vp9/encoder/picklpf.c
@@ -31,12 +31,8 @@ extern void vp8_yv12_copy_frame_yonly_no_extend_frame_borders_neon(YV12_BUFFER_C
#define IF_RTCD(x) NULL
#endif
-extern void(*vp9_yv12_copy_partial_frame_ptr)(YV12_BUFFER_CONFIG *src_ybc,
- YV12_BUFFER_CONFIG *dst_ybc,
- int fraction);
-
-void vp9_yv12_copy_partial_frame(YV12_BUFFER_CONFIG *src_ybc,
- YV12_BUFFER_CONFIG *dst_ybc, int Fraction) {
+void vp9_yv12_copy_partial_frame_c(YV12_BUFFER_CONFIG *src_ybc,
+ YV12_BUFFER_CONFIG *dst_ybc, int Fraction) {
unsigned char *src_y, *dst_y;
int yheight;
int ystride;
@@ -147,7 +143,7 @@ void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi) {
int best_filt_val = cm->filter_level;
// Make a copy of the unfiltered / processed recon buffer
- vp9_yv12_copy_partial_frame_ptr(cm->frame_to_show, &cpi->last_frame_uf, 3);
+ vp9_yv12_copy_partial_frame(cm->frame_to_show, &cpi->last_frame_uf, 3);
if (cm->frame_type == KEY_FRAME)
cm->sharpness_level = 0;
@@ -174,7 +170,7 @@ void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi) {
best_err = calc_partial_ssl_err(sd, cm->frame_to_show, 3);
// Re-instate the unfiltered frame
- vp9_yv12_copy_partial_frame_ptr(&cpi->last_frame_uf, cm->frame_to_show, 3);
+ vp9_yv12_copy_partial_frame(&cpi->last_frame_uf, cm->frame_to_show, 3);
filt_val -= (1 + ((filt_val > 10) ? 1 : 0));
@@ -187,7 +183,7 @@ void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi) {
filt_err = calc_partial_ssl_err(sd, cm->frame_to_show, 3);
// Re-instate the unfiltered frame
- vp9_yv12_copy_partial_frame_ptr(&cpi->last_frame_uf, cm->frame_to_show, 3);
+ vp9_yv12_copy_partial_frame(&cpi->last_frame_uf, cm->frame_to_show, 3);
// Update the best case record or exit loop.
@@ -216,7 +212,7 @@ void vp9_pick_filter_level_fast(YV12_BUFFER_CONFIG *sd, VP9_COMP *cpi) {
filt_err = calc_partial_ssl_err(sd, cm->frame_to_show, 3);
// Re-instate the unfiltered frame
- vp9_yv12_copy_partial_frame_ptr(&cpi->last_frame_uf,
+ vp9_yv12_copy_partial_frame(&cpi->last_frame_uf,
cm->frame_to_show, 3);
// Update the best case record or exit loop.
diff --git a/vp9/encoder/variance.h b/vp9/encoder/variance.h
index 6afbfb7a9..b504fbb17 100644
--- a/vp9/encoder/variance.h
+++ b/vp9/encoder/variance.h
@@ -38,7 +38,7 @@ typedef void (*vp9_sad_multi1_fn_t)(const unsigned char *src_ptr,
typedef void (*vp9_sad_multi_d_fn_t)(const unsigned char *src_ptr,
int source_stride,
- const unsigned char * const ref_ptr[],
+ const unsigned char ** ref_ptr,
int ref_stride, unsigned int *sad_array);
typedef unsigned int (*vp9_variance_fn_t)(const unsigned char *src_ptr,
diff --git a/vp9/encoder/x86/x86_csystemdependent.c b/vp9/encoder/x86/x86_csystemdependent.c
index 38ede74f2..5fc86c101 100644
--- a/vp9/encoder/x86/x86_csystemdependent.c
+++ b/vp9/encoder/x86/x86_csystemdependent.c
@@ -14,7 +14,8 @@
#include "vp9/encoder/variance.h"
#include "vp9/encoder/onyx_int.h"
-
+// TODO(jimbankoski) Consider rewriting the c to take the same values rather
+// than going through these pointer conversions
#if HAVE_MMX
void vp9_short_fdct8x4_mmx(short *input, short *output, int pitch) {
vp9_short_fdct4x4_mmx(input, output, pitch);
@@ -75,24 +76,3 @@ void vp9_subtract_b_sse2(BLOCK *be, BLOCKD *bd, int pitch) {
}
#endif
-
-void vp9_arch_x86_encoder_init(VP9_COMP *cpi) {
-#if CONFIG_RUNTIME_CPU_DETECT
- int flags = x86_simd_caps();
-
- /* Note:
- *
- * This platform can be built without runtime CPU detection as well. If
- * you modify any of the function mappings present in this file, be sure
- * to also update them in static mapings (<arch>/filename_<arch>.h)
- */
-
- /* Override default functions with fastest ones for this CPU. */
-#if HAVE_SSE2
- if (flags & HAS_SSE2) {
- }
-#endif
-
-
-#endif
-}