mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-15 08:53:07 +09:00
Issue #2332 - Update to libvpx 1.6.1
Backport of Bugzilla 1223692 and 1331498
This commit is contained in:
parent
6fdb3ac961
commit
b860c5fe95
1338 changed files with 350431 additions and 155085 deletions
|
|
@ -1,50 +0,0 @@
|
|||
# HG changeset patch
|
||||
# User Gerald Squelart <gsquelart@mozilla.com>
|
||||
# Parent 5f9ba76eb3b1fd9377bbdb4cc2f98a7e75eabdfb
|
||||
Bug 1237848 - Check lookahead ctx - r=rillian
|
||||
|
||||
Copied from https://chromium-review.googlesource.com/324510
|
||||
|
||||
diff --git a/media/libvpx/vp8/encoder/lookahead.c b/media/libvpx/vp8/encoder/lookahead.c
|
||||
--- a/media/libvpx/vp8/encoder/lookahead.c
|
||||
+++ b/media/libvpx/vp8/encoder/lookahead.c
|
||||
@@ -176,16 +176,17 @@ vp8_lookahead_push(struct lookahead_ctx
|
||||
|
||||
|
||||
struct lookahead_entry*
|
||||
vp8_lookahead_pop(struct lookahead_ctx *ctx,
|
||||
int drain)
|
||||
{
|
||||
struct lookahead_entry* buf = NULL;
|
||||
|
||||
+ assert(ctx != NULL);
|
||||
if(ctx->sz && (drain || ctx->sz == ctx->max_sz - 1))
|
||||
{
|
||||
buf = pop(ctx, &ctx->read_idx);
|
||||
ctx->sz--;
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
diff --git a/media/libvpx/vp9/encoder/vp9_lookahead.c b/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
--- a/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
+++ b/media/libvpx/vp9/encoder/vp9_lookahead.c
|
||||
@@ -202,17 +202,17 @@ int vp9_lookahead_push(struct lookahead_
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
struct lookahead_entry *vp9_lookahead_pop(struct lookahead_ctx *ctx,
|
||||
int drain) {
|
||||
struct lookahead_entry *buf = NULL;
|
||||
|
||||
- if (ctx->sz && (drain || ctx->sz == ctx->max_sz - MAX_PRE_FRAMES)) {
|
||||
+ if (ctx && ctx->sz && (drain || ctx->sz == ctx->max_sz - MAX_PRE_FRAMES)) {
|
||||
buf = pop(ctx, &ctx->read_idx);
|
||||
ctx->sz--;
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
struct lookahead_entry *vp9_lookahead_peek(struct lookahead_ctx *ctx,
|
||||
|
|
@ -10,9 +10,12 @@ ifdef VPX_AS_CONVERSION
|
|||
# The ARM asm is written in ARM RVCT syntax, but we actually build it with
|
||||
# gas using GNU syntax. Add some rules to perform the conversion.
|
||||
|
||||
GENERATED_DIRS += $(dir $(ASFILES))
|
||||
# Previously used $(dir $(ASFILES)) to figure out which directories to generate.
|
||||
# However, .S (as opposed to .s) files are not added to ASFILES. There is only
|
||||
# one directory with arm assembly currently so enumerate it manually.
|
||||
GENERATED_DIRS += libvpx/vpx_dsp/arm
|
||||
|
||||
%.asm.s: %.asm $(ASM_OFFSETS)
|
||||
%.asm.S: %.asm $(ASM_OFFSETS)
|
||||
$(VPX_AS_CONVERSION) < $< > $@
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -8,4 +8,4 @@ The libvpx git repository is:
|
|||
|
||||
https://chromium.googlesource.com/webm/libvpx
|
||||
|
||||
The git commit ID used was e67d45d4ce92468ba193288b59093fef0a502662
|
||||
The git commit ID used was v1.6.1
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
diff --git a/media/libvpx/vp8/encoder/block.h b/media/libvpx/vp8/encoder/block.h
|
||||
--- a/media/libvpx/vp8/encoder/block.h
|
||||
+++ b/media/libvpx/vp8/encoder/block.h
|
||||
@@ -93,17 +93,18 @@ typedef struct macroblock
|
||||
int rddiv;
|
||||
int rdmult;
|
||||
unsigned int * mb_activity_ptr;
|
||||
int * mb_norm_activity_ptr;
|
||||
signed int act_zbin_adj;
|
||||
signed int last_act_zbin_adj;
|
||||
|
||||
int *mvcost[2];
|
||||
- int *mvsadcost[2];
|
||||
+ /* MSVC generates code that thinks this is 16-byte aligned */
|
||||
+ DECLARE_ALIGNED(16, int*, mvsadcost[2]);
|
||||
int (*mbmode_cost)[MB_MODE_COUNT];
|
||||
int (*intra_uv_mode_cost)[MB_MODE_COUNT];
|
||||
int (*bmode_costs)[10][10];
|
||||
int *inter_bmode_costs;
|
||||
int (*token_costs)[COEF_BANDS][PREV_COEF_CONTEXTS]
|
||||
[MAX_ENTROPY_TOKENS];
|
||||
|
||||
/* These define limits to motion vector components to prevent
|
||||
diff --git a/media/libvpx/libvpx/vp8/encoder/block.h b/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
--- a/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
+++ b/media/libvpx/libvpx/vp8/encoder/block.h
|
||||
@@ -87,17 +87,18 @@ typedef struct macroblock {
|
||||
int rddiv;
|
||||
int rdmult;
|
||||
unsigned int *mb_activity_ptr;
|
||||
int *mb_norm_activity_ptr;
|
||||
signed int act_zbin_adj;
|
||||
signed int last_act_zbin_adj;
|
||||
|
||||
int *mvcost[2];
|
||||
- int *mvsadcost[2];
|
||||
+ /* MSVC generates code that thinks this is 16-byte aligned */
|
||||
+ DECLARE_ALIGNED(16, int*, mvsadcost[2]);
|
||||
int (*mbmode_cost)[MB_MODE_COUNT];
|
||||
int (*intra_uv_mode_cost)[MB_MODE_COUNT];
|
||||
int (*bmode_costs)[10][10];
|
||||
int *inter_bmode_costs;
|
||||
int (*token_costs)[COEF_BANDS][PREV_COEF_CONTEXTS][MAX_ENTROPY_TOKENS];
|
||||
|
||||
/* These define limits to motion vector components to prevent
|
||||
* them from extending outside the UMV borders.
|
||||
|
|
|
|||
|
|
@ -1,36 +0,0 @@
|
|||
From f00fe25d7eb13ceafbea6a6987d45fdef64cffb3 Mon Sep 17 00:00:00 2001
|
||||
From: Pale Moon <git-repo@palemoon.org>
|
||||
Date: Tue, 11 Sep 2018 08:58:16 +0200
|
||||
Subject: [PATCH] Cherry-pick libvpx upstream
|
||||
52add5896661d186dec284ed646a4b33b607d2c7.
|
||||
|
||||
---
|
||||
media/libvpx/vp8/common/postproc.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/media/libvpx/vp8/common/postproc.c b/media/libvpx/vp8/common/postproc.c
|
||||
index a4e6ae170..3b05bc63e 100644
|
||||
--- a/media/libvpx/vp8/common/postproc.c
|
||||
+++ b/media/libvpx/vp8/common/postproc.c
|
||||
@@ -325,17 +325,17 @@ void vp8_deblock(VP8_COMMON *cm,
|
||||
YV12_BUFFER_CONFIG *post,
|
||||
int q,
|
||||
int low_var_thresh,
|
||||
int flag)
|
||||
{
|
||||
double level = 6.0e-05 * q * q * q - .0067 * q * q + .306 * q + .0065;
|
||||
int ppl = (int)(level + .5);
|
||||
|
||||
- const MODE_INFO *mode_info_context = cm->show_frame_mi;
|
||||
+ const MODE_INFO *mode_info_context = cm->mi;
|
||||
int mbr, mbc;
|
||||
|
||||
/* The pixel thresholds are adjusted according to if or not the macroblock
|
||||
* is a skipped block. */
|
||||
unsigned char *ylimits = cm->pp_limits_buffer;
|
||||
unsigned char *uvlimits = cm->pp_limits_buffer + 16 * cm->mb_cols;
|
||||
(void) low_var_thresh;
|
||||
(void) flag;
|
||||
--
|
||||
2.16.1.windows.4
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
# HG changeset patch
|
||||
# User Gerald Squelart <gsquelart@mozilla.com>
|
||||
# Parent 3d0a39b9f8cd9b07dac0263cfbaa23649d8b3138
|
||||
Bug 1224371 - Cast uint8_t to uint32_t before shift - r=jya
|
||||
|
||||
Note: C-style cast because it is C code.
|
||||
|
||||
diff --git a/media/libvpx/vp9/decoder/vp9_decoder.c b/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
--- a/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
+++ b/media/libvpx/vp9/decoder/vp9_decoder.c
|
||||
@@ -494,16 +494,16 @@ vpx_codec_err_t vp9_parse_superframe_ind
|
||||
decrypt_cb(decrypt_state, x, clear_buffer, frames * mag);
|
||||
x = clear_buffer;
|
||||
}
|
||||
|
||||
for (i = 0; i < frames; ++i) {
|
||||
uint32_t this_sz = 0;
|
||||
|
||||
for (j = 0; j < mag; ++j)
|
||||
- this_sz |= (*x++) << (j * 8);
|
||||
+ this_sz |= (uint32_t)(*x++) << (j * 8);
|
||||
sizes[i] = this_sz;
|
||||
}
|
||||
*count = frames;
|
||||
}
|
||||
}
|
||||
return VPX_CODEC_OK;
|
||||
}
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
# HG changeset patch
|
||||
# User Gerald Squelart <gsquelart@mozilla.com>
|
||||
# Parent a2eeff55028dc78e98a16e1d8840d77378f37408
|
||||
Bug 1224361 - Clamp QIndex also in abs-value mode - r=rillian
|
||||
|
||||
diff --git a/media/libvpx/vp8/decoder/decodeframe.c b/media/libvpx/vp8/decoder/decodeframe.c
|
||||
--- a/media/libvpx/vp8/decoder/decodeframe.c
|
||||
+++ b/media/libvpx/vp8/decoder/decodeframe.c
|
||||
@@ -66,20 +66,19 @@ void vp8_mb_init_dequantizer(VP8D_COMP *
|
||||
if (xd->segmentation_enabled)
|
||||
{
|
||||
/* Abs Value */
|
||||
if (xd->mb_segement_abs_delta == SEGMENT_ABSDATA)
|
||||
QIndex = xd->segment_feature_data[MB_LVL_ALT_Q][mbmi->segment_id];
|
||||
|
||||
/* Delta Value */
|
||||
else
|
||||
- {
|
||||
QIndex = pc->base_qindex + xd->segment_feature_data[MB_LVL_ALT_Q][mbmi->segment_id];
|
||||
- QIndex = (QIndex >= 0) ? ((QIndex <= MAXQ) ? QIndex : MAXQ) : 0; /* Clamp to valid range */
|
||||
- }
|
||||
+
|
||||
+ QIndex = (QIndex >= 0) ? ((QIndex <= MAXQ) ? QIndex : MAXQ) : 0; /* Clamp to valid range */
|
||||
}
|
||||
else
|
||||
QIndex = pc->base_qindex;
|
||||
|
||||
/* Set up the macroblock dequant constants */
|
||||
xd->dequant_y1_dc[0] = 1;
|
||||
xd->dequant_y1[0] = pc->Y1dequant[QIndex][0];
|
||||
xd->dequant_y2[0] = pc->Y2dequant[QIndex][0];
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
# HG changeset patch
|
||||
# User Gerald Squelart <gsquelart@mozilla.com>
|
||||
# Parent b9e641a34c2fb9e6f3d3a02200bc2d800b6ca168
|
||||
Bug 1224363 - Clamp seg_lvl also in abs-value mode - r=rillian
|
||||
|
||||
Even when the segment feature data is in absolute mode, it is still read as a
|
||||
6-bit value with an added sign, so it could have values between -63 and +63.
|
||||
Later, this signed value is used without checks as a filter level, which is
|
||||
used to access an entry in an array of size MAX_LOOP_FILTER+1=64.
|
||||
|
||||
This patch just extends the existing clamping (that was done only to relative-
|
||||
mode data) to absolute mode data, before it is blindly 'memset' in
|
||||
lfi->lvl[seg][0], which was where the out-of-bound filter_value was read in
|
||||
subsequent vp8_loop_filter_row_simple.
|
||||
|
||||
diff --git a/media/libvpx/vp8/common/loopfilter.c b/media/libvpx/vp8/common/loopfilter.c
|
||||
--- a/media/libvpx/vp8/common/loopfilter.c
|
||||
+++ b/media/libvpx/vp8/common/loopfilter.c
|
||||
@@ -136,18 +136,18 @@ void vp8_loop_filter_frame_init(VP8_COMM
|
||||
/* Abs value */
|
||||
if (mbd->mb_segement_abs_delta == SEGMENT_ABSDATA)
|
||||
{
|
||||
lvl_seg = mbd->segment_feature_data[MB_LVL_ALT_LF][seg];
|
||||
}
|
||||
else /* Delta Value */
|
||||
{
|
||||
lvl_seg += mbd->segment_feature_data[MB_LVL_ALT_LF][seg];
|
||||
- lvl_seg = (lvl_seg > 0) ? ((lvl_seg > 63) ? 63: lvl_seg) : 0;
|
||||
}
|
||||
+ lvl_seg = (lvl_seg > 0) ? ((lvl_seg > 63) ? 63: lvl_seg) : 0;
|
||||
}
|
||||
|
||||
if (!mbd->mode_ref_lf_delta_enabled)
|
||||
{
|
||||
/* we could get rid of this if we assume that deltas are set to
|
||||
* zero when not in use; encoder always uses deltas
|
||||
*/
|
||||
memset(lfi->lvl[seg][0], lvl_seg, 4 * 4 );
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
Bug 1233983 - Make libvpx build with clang-cl
|
||||
|
||||
diff --git a/media/libvpx/vp8/common/generic/systemdependent.c b/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
index 4393ced..8ee7e02 100644
|
||||
--- a/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
+++ b/media/libvpx/vp8/common/generic/systemdependent.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <unistd.h>
|
||||
#elif defined(_WIN32)
|
||||
#include <windows.h>
|
||||
+#include <intrin.h>
|
||||
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
|
||||
#elif defined(__OS2__)
|
||||
#define INCL_DOS
|
||||
diff --git a/media/libvpx/vp8/common/rtcd.c b/media/libvpx/vp8/common/rtcd.c
|
||||
index ab0e9b4..98c2ecd 100644
|
||||
--- a/media/libvpx/vp8/common/rtcd.c
|
||||
+++ b/media/libvpx/vp8/common/rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vp8_rtcd.h"
|
||||
#include "vpx_ports/vpx_once.h"
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
|
||||
void vp8_rtcd()
|
||||
diff --git a/media/libvpx/vp8/decoder/threading.c b/media/libvpx/vp8/decoder/threading.c
|
||||
index 6801532..a76672f 100644
|
||||
--- a/media/libvpx/vp8/decoder/threading.c
|
||||
+++ b/media/libvpx/vp8/decoder/threading.c
|
||||
@@ -28,6 +28,9 @@
|
||||
#if CONFIG_ERROR_CONCEALMENT
|
||||
#include "error_concealment.h"
|
||||
#endif
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
#define CALLOC_ARRAY(p, n) CHECK_MEM_ERROR((p), vpx_calloc(sizeof(*(p)), (n)))
|
||||
#define CALLOC_ARRAY_ALIGNED(p, n, algn) do { \
|
||||
diff --git a/media/libvpx/vp8/encoder/encodeframe.c b/media/libvpx/vp8/encoder/encodeframe.c
|
||||
index d381d8d..5e84fb4 100644
|
||||
--- a/media/libvpx/vp8/encoder/encodeframe.c
|
||||
+++ b/media/libvpx/vp8/encoder/encodeframe.c
|
||||
@@ -34,6 +34,9 @@
|
||||
#include "bitstream.h"
|
||||
#endif
|
||||
#include "encodeframe.h"
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
extern void vp8_stuff_mb(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t) ;
|
||||
extern void vp8_calc_ref_frame_costs(int *ref_frame_cost,
|
||||
diff --git a/media/libvpx/vp8/encoder/ethreading.c b/media/libvpx/vp8/encoder/ethreading.c
|
||||
index 4e234cc..519ae73b 100644
|
||||
--- a/media/libvpx/vp8/encoder/ethreading.c
|
||||
+++ b/media/libvpx/vp8/encoder/ethreading.c
|
||||
@@ -14,6 +14,9 @@
|
||||
#include "vp8/common/extend.h"
|
||||
#include "bitstream.h"
|
||||
#include "encodeframe.h"
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
#if CONFIG_MULTITHREAD
|
||||
|
||||
diff --git a/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c b/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
index 5fe27b6..d247603 100644
|
||||
--- a/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
+++ b/media/libvpx/vpx_dsp/vpx_dsp_rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vpx_dsp_rtcd.h"
|
||||
#include "vpx_ports/vpx_once.h"
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
void vpx_dsp_rtcd() {
|
||||
once(setup_rtcd_internal);
|
||||
diff --git a/media/libvpx/vpx_scale/vpx_scale_rtcd.c b/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
index bea603f..65532ba 100644
|
||||
--- a/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
+++ b/media/libvpx/vpx_scale/vpx_scale_rtcd.c
|
||||
@@ -11,6 +11,9 @@
|
||||
#define RTCD_C
|
||||
#include "./vpx_scale_rtcd.h"
|
||||
#include "vpx_ports/vpx_once.h"
|
||||
+#ifdef _MSC_VER
|
||||
+#include <intrin.h>
|
||||
+#endif
|
||||
|
||||
void vpx_scale_rtcd()
|
||||
{
|
||||
|
|
@ -41,15 +41,6 @@ void vp8_bilinear_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int
|
|||
int vp8_block_error_c(short *coeff, short *dqcoeff);
|
||||
#define vp8_block_error vp8_block_error_c
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
#define vp8_build_intra_predictors_mbuv_s vp8_build_intra_predictors_mbuv_s_c
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
#define vp8_build_intra_predictors_mby_s vp8_build_intra_predictors_mby_s_c
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
#define vp8_clear_system_state vp8_clear_system_state_c
|
||||
|
||||
void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
#define vp8_copy_mem16x16 vp8_copy_mem16x16_c
|
||||
|
||||
|
|
@ -89,9 +80,6 @@ void vp8_fast_quantize_b_c(struct block *, struct blockd *);
|
|||
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);
|
||||
#define vp8_full_search_sad vp8_full_search_sad_c
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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);
|
||||
#define vp8_loop_filter_bh vp8_loop_filter_bh_c
|
||||
|
||||
|
|
@ -158,42 +146,9 @@ void vp8_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int y
|
|||
void vp8_sixtap_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
#define vp8_sixtap_predict8x8 vp8_sixtap_predict8x8_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance16x16 vp8_sub_pixel_variance16x16_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance16x8 vp8_sub_pixel_variance16x8_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance8x8 vp8_sub_pixel_variance8x8_c
|
||||
|
||||
void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
|
||||
#define vp8_subtract_b vp8_subtract_b_c
|
||||
|
||||
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);
|
||||
#define vp8_subtract_mbuv vp8_subtract_mbuv_c
|
||||
|
||||
void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
|
||||
#define vp8_subtract_mby vp8_subtract_mby_c
|
||||
|
||||
void vp8_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
#define vp8_temporal_filter_apply vp8_temporal_filter_apply_c
|
||||
|
||||
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);
|
||||
#define vp8_variance_halfpixvar16x16_h vp8_variance_halfpixvar16x16_h_c
|
||||
|
||||
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);
|
||||
#define vp8_variance_halfpixvar16x16_hv vp8_variance_halfpixvar16x16_hv_c
|
||||
|
||||
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);
|
||||
#define vp8_variance_halfpixvar16x16_v vp8_variance_halfpixvar16x16_v_c
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#include "vpx_config.h"
|
||||
94
media/libvpx/config/generic/vp9_rtcd.h
Normal file
94
media/libvpx/config/generic/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define vp9_block_error vp9_block_error_c
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_c
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_diamond_search_sad vp9_diamond_search_sad_c
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_fdct8x8_quant vp9_fdct8x8_quant_c
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht16x16 vp9_fht16x16_c
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht4x4 vp9_fht4x4_c
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_c
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
#define vp9_full_search_sad vp9_full_search_sad_c
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_c
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht4x4_16_add vp9_iht4x4_16_add_c
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht8x8_64_add vp9_iht8x8_64_add_c
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp vp9_quantize_fp_c
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -5,8 +5,6 @@
|
|||
.equ ARCH_MIPS , 0
|
||||
.equ ARCH_X86 , 0
|
||||
.equ ARCH_X86_64 , 0
|
||||
.equ HAVE_EDSP , 0
|
||||
.equ HAVE_MEDIA , 0
|
||||
.equ HAVE_NEON , 0
|
||||
.equ HAVE_NEON_ASM , 0
|
||||
.equ HAVE_MIPS32 , 0
|
||||
|
|
@ -22,24 +20,20 @@
|
|||
.equ HAVE_AVX , 0
|
||||
.equ HAVE_AVX2 , 0
|
||||
.equ HAVE_VPX_PORTS , 1
|
||||
.equ HAVE_STDINT_H , 1
|
||||
.equ HAVE_PTHREAD_H , 1
|
||||
.equ HAVE_SYS_MMAN_H , 1
|
||||
.equ HAVE_UNISTD_H , 1
|
||||
.equ CONFIG_DEPENDENCY_TRACKING , 1
|
||||
.equ CONFIG_EXTERNAL_BUILD , 0
|
||||
.equ CONFIG_EXTERNAL_BUILD , 1
|
||||
.equ CONFIG_INSTALL_DOCS , 0
|
||||
.equ CONFIG_INSTALL_BINS , 1
|
||||
.equ CONFIG_INSTALL_LIBS , 1
|
||||
.equ CONFIG_INSTALL_SRCS , 0
|
||||
.equ CONFIG_USE_X86INC , 0
|
||||
.equ CONFIG_DEBUG , 0
|
||||
.equ CONFIG_GPROF , 0
|
||||
.equ CONFIG_GCOV , 0
|
||||
.equ CONFIG_RVCT , 0
|
||||
.equ CONFIG_GCC , 1
|
||||
.equ CONFIG_MSVS , 0
|
||||
.equ CONFIG_PIC , 0
|
||||
.equ CONFIG_PIC , 1
|
||||
.equ CONFIG_BIG_ENDIAN , 0
|
||||
.equ CONFIG_CODEC_SRCS , 0
|
||||
.equ CONFIG_DEBUG_LIBS , 0
|
||||
|
|
@ -68,7 +62,7 @@
|
|||
.equ CONFIG_SMALL , 0
|
||||
.equ CONFIG_POSTPROC_VISUALIZER , 0
|
||||
.equ CONFIG_OS_SUPPORT , 1
|
||||
.equ CONFIG_UNIT_TESTS , 1
|
||||
.equ CONFIG_UNIT_TESTS , 0
|
||||
.equ CONFIG_WEBM_IO , 1
|
||||
.equ CONFIG_LIBYUV , 1
|
||||
.equ CONFIG_DECODE_PERF_TESTS , 0
|
||||
|
|
@ -78,13 +72,11 @@
|
|||
.equ CONFIG_VP9_TEMPORAL_DENOISING , 0
|
||||
.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0
|
||||
.equ CONFIG_VP9_HIGHBITDEPTH , 0
|
||||
.equ CONFIG_BETTER_HW_COMPATIBILITY , 0
|
||||
.equ CONFIG_EXPERIMENTAL , 0
|
||||
.equ CONFIG_SIZE_LIMIT , 1
|
||||
.equ CONFIG_SPATIAL_SVC , 0
|
||||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_EMULATE_HARDWARE , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
@ This file was created from a .asm file
|
||||
@ using the ads2gas.pl script.
|
||||
.equ DO1STROUNDING, 0
|
||||
.equ CONFIG_MISC_FIXES , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
10
media/libvpx/config/generic/vpx_config.c
Normal file
10
media/libvpx/config/generic/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=generic-gnu --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 0
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,24 +29,20 @@
|
|||
#define HAVE_AVX 0
|
||||
#define HAVE_AVX2 0
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
|
@ -77,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
732
media/libvpx/config/generic/vpx_dsp_rtcd.h
Normal file
732
media/libvpx/config/generic/vpx_dsp_rtcd.h
Normal file
|
|
@ -0,0 +1,732 @@
|
|||
#ifndef VPX_DSP_RTCD_H_
|
||||
#define VPX_DSP_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* DSP
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vpx_dsp/vpx_dsp_common.h"
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
unsigned int vpx_avg_4x4_c(const uint8_t *, int p);
|
||||
#define vpx_avg_4x4 vpx_avg_4x4_c
|
||||
|
||||
unsigned int vpx_avg_8x8_c(const uint8_t *, int p);
|
||||
#define vpx_avg_8x8 vpx_avg_8x8_c
|
||||
|
||||
void vpx_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
|
||||
#define vpx_comp_avg_pred vpx_comp_avg_pred_c
|
||||
|
||||
void vpx_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8 vpx_convolve8_c
|
||||
|
||||
void vpx_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8_avg vpx_convolve8_avg_c
|
||||
|
||||
void vpx_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8_avg_horiz vpx_convolve8_avg_horiz_c
|
||||
|
||||
void vpx_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8_avg_vert vpx_convolve8_avg_vert_c
|
||||
|
||||
void vpx_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8_horiz vpx_convolve8_horiz_c
|
||||
|
||||
void vpx_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve8_vert vpx_convolve8_vert_c
|
||||
|
||||
void vpx_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve_avg vpx_convolve_avg_c
|
||||
|
||||
void vpx_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_convolve_copy vpx_convolve_copy_c
|
||||
|
||||
void vpx_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
|
||||
|
||||
void vpx_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
|
||||
|
||||
void vpx_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
|
||||
|
||||
void vpx_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
|
||||
|
||||
void vpx_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
|
||||
|
||||
void vpx_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
|
||||
|
||||
void vpx_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_c
|
||||
|
||||
void vpx_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
|
||||
|
||||
void vpx_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
|
||||
|
||||
void vpx_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
|
||||
|
||||
void vpx_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
|
||||
|
||||
void vpx_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
|
||||
|
||||
void vpx_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
|
||||
|
||||
void vpx_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
|
||||
|
||||
void vpx_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
|
||||
|
||||
void vpx_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
|
||||
|
||||
void vpx_d207e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207e_predictor_16x16 vpx_d207e_predictor_16x16_c
|
||||
|
||||
void vpx_d207e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207e_predictor_32x32 vpx_d207e_predictor_32x32_c
|
||||
|
||||
void vpx_d207e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207e_predictor_4x4 vpx_d207e_predictor_4x4_c
|
||||
|
||||
void vpx_d207e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d207e_predictor_8x8 vpx_d207e_predictor_8x8_c
|
||||
|
||||
void vpx_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_c
|
||||
|
||||
void vpx_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
|
||||
|
||||
void vpx_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_c
|
||||
|
||||
void vpx_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_c
|
||||
|
||||
void vpx_d45e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45e_predictor_16x16 vpx_d45e_predictor_16x16_c
|
||||
|
||||
void vpx_d45e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45e_predictor_32x32 vpx_d45e_predictor_32x32_c
|
||||
|
||||
void vpx_d45e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
|
||||
|
||||
void vpx_d45e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d45e_predictor_8x8 vpx_d45e_predictor_8x8_c
|
||||
|
||||
void vpx_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
|
||||
|
||||
void vpx_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
|
||||
|
||||
void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
|
||||
|
||||
void vpx_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
|
||||
|
||||
void vpx_d63e_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63e_predictor_16x16 vpx_d63e_predictor_16x16_c
|
||||
|
||||
void vpx_d63e_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63e_predictor_32x32 vpx_d63e_predictor_32x32_c
|
||||
|
||||
void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
|
||||
|
||||
void vpx_d63e_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63e_predictor_8x8 vpx_d63e_predictor_8x8_c
|
||||
|
||||
void vpx_d63f_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_d63f_predictor_4x4 vpx_d63f_predictor_4x4_c
|
||||
|
||||
void vpx_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_c
|
||||
|
||||
void vpx_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_c
|
||||
|
||||
void vpx_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_c
|
||||
|
||||
void vpx_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_c
|
||||
|
||||
void vpx_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_c
|
||||
|
||||
void vpx_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_c
|
||||
|
||||
void vpx_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_c
|
||||
|
||||
void vpx_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_c
|
||||
|
||||
void vpx_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_predictor_16x16 vpx_dc_predictor_16x16_c
|
||||
|
||||
void vpx_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_c
|
||||
|
||||
void vpx_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_c
|
||||
|
||||
void vpx_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_predictor_8x8 vpx_dc_predictor_8x8_c
|
||||
|
||||
void vpx_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_c
|
||||
|
||||
void vpx_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_c
|
||||
|
||||
void vpx_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_c
|
||||
|
||||
void vpx_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_c
|
||||
|
||||
void vpx_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct16x16 vpx_fdct16x16_c
|
||||
|
||||
void vpx_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct16x16_1 vpx_fdct16x16_1_c
|
||||
|
||||
void vpx_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct32x32 vpx_fdct32x32_c
|
||||
|
||||
void vpx_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct32x32_1 vpx_fdct32x32_1_c
|
||||
|
||||
void vpx_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct32x32_rd vpx_fdct32x32_rd_c
|
||||
|
||||
void vpx_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct4x4 vpx_fdct4x4_c
|
||||
|
||||
void vpx_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct4x4_1 vpx_fdct4x4_1_c
|
||||
|
||||
void vpx_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct8x8 vpx_fdct8x8_c
|
||||
|
||||
void vpx_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vpx_fdct8x8_1 vpx_fdct8x8_1_c
|
||||
|
||||
void vpx_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
#define vpx_get16x16var vpx_get16x16var_c
|
||||
|
||||
unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int source_stride, const unsigned char *ref_ptr, int ref_stride);
|
||||
#define vpx_get4x4sse_cs vpx_get4x4sse_cs_c
|
||||
|
||||
void vpx_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
|
||||
#define vpx_get8x8var vpx_get8x8var_c
|
||||
|
||||
unsigned int vpx_get_mb_ss_c(const int16_t *);
|
||||
#define vpx_get_mb_ss vpx_get_mb_ss_c
|
||||
|
||||
void vpx_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_h_predictor_16x16 vpx_h_predictor_16x16_c
|
||||
|
||||
void vpx_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_h_predictor_32x32 vpx_h_predictor_32x32_c
|
||||
|
||||
void vpx_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_h_predictor_4x4 vpx_h_predictor_4x4_c
|
||||
|
||||
void vpx_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_h_predictor_8x8 vpx_h_predictor_8x8_c
|
||||
|
||||
void vpx_hadamard_16x16_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
|
||||
#define vpx_hadamard_16x16 vpx_hadamard_16x16_c
|
||||
|
||||
void vpx_hadamard_8x8_c(const int16_t *src_diff, int src_stride, int16_t *coeff);
|
||||
#define vpx_hadamard_8x8 vpx_hadamard_8x8_c
|
||||
|
||||
void vpx_he_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
|
||||
|
||||
void vpx_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct16x16_10_add vpx_idct16x16_10_add_c
|
||||
|
||||
void vpx_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct16x16_1_add vpx_idct16x16_1_add_c
|
||||
|
||||
void vpx_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct16x16_256_add vpx_idct16x16_256_add_c
|
||||
|
||||
void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct32x32_1024_add vpx_idct32x32_1024_add_c
|
||||
|
||||
void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct32x32_135_add vpx_idct32x32_135_add_c
|
||||
|
||||
void vpx_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct32x32_1_add vpx_idct32x32_1_add_c
|
||||
|
||||
void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct32x32_34_add vpx_idct32x32_34_add_c
|
||||
|
||||
void vpx_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct4x4_16_add vpx_idct4x4_16_add_c
|
||||
|
||||
void vpx_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct4x4_1_add vpx_idct4x4_1_add_c
|
||||
|
||||
void vpx_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct8x8_12_add vpx_idct8x8_12_add_c
|
||||
|
||||
void vpx_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct8x8_1_add vpx_idct8x8_1_add_c
|
||||
|
||||
void vpx_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_idct8x8_64_add vpx_idct8x8_64_add_c
|
||||
|
||||
int16_t vpx_int_pro_col_c(const uint8_t *ref, const int width);
|
||||
#define vpx_int_pro_col vpx_int_pro_col_c
|
||||
|
||||
void vpx_int_pro_row_c(int16_t *hbuf, const uint8_t *ref, const int ref_stride, const int height);
|
||||
#define vpx_int_pro_row vpx_int_pro_row_c
|
||||
|
||||
void vpx_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
|
||||
|
||||
void vpx_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
|
||||
#define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
|
||||
|
||||
void vpx_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_c
|
||||
|
||||
void vpx_lpf_horizontal_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_horizontal_16_dual vpx_lpf_horizontal_16_dual_c
|
||||
|
||||
void vpx_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_horizontal_4 vpx_lpf_horizontal_4_c
|
||||
|
||||
void vpx_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vpx_lpf_horizontal_4_dual vpx_lpf_horizontal_4_dual_c
|
||||
|
||||
void vpx_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_horizontal_8 vpx_lpf_horizontal_8_c
|
||||
|
||||
void vpx_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vpx_lpf_horizontal_8_dual vpx_lpf_horizontal_8_dual_c
|
||||
|
||||
void vpx_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_vertical_16 vpx_lpf_vertical_16_c
|
||||
|
||||
void vpx_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_vertical_16_dual vpx_lpf_vertical_16_dual_c
|
||||
|
||||
void vpx_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_vertical_4 vpx_lpf_vertical_4_c
|
||||
|
||||
void vpx_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vpx_lpf_vertical_4_dual vpx_lpf_vertical_4_dual_c
|
||||
|
||||
void vpx_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
|
||||
#define vpx_lpf_vertical_8 vpx_lpf_vertical_8_c
|
||||
|
||||
void vpx_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
|
||||
#define vpx_lpf_vertical_8_dual vpx_lpf_vertical_8_dual_c
|
||||
|
||||
void vpx_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
|
||||
#define vpx_minmax_8x8 vpx_minmax_8x8_c
|
||||
|
||||
unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse16x16 vpx_mse16x16_c
|
||||
|
||||
unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse16x8 vpx_mse16x8_c
|
||||
|
||||
unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse8x16 vpx_mse8x16_c
|
||||
|
||||
unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int recon_stride, unsigned int *sse);
|
||||
#define vpx_mse8x8 vpx_mse8x8_c
|
||||
|
||||
void vpx_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vpx_quantize_b vpx_quantize_b_c
|
||||
|
||||
void vpx_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vpx_quantize_b_32x32 vpx_quantize_b_32x32_c
|
||||
|
||||
unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x16 vpx_sad16x16_c
|
||||
|
||||
unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x16_avg vpx_sad16x16_avg_c
|
||||
|
||||
void vpx_sad16x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x16x3 vpx_sad16x16x3_c
|
||||
|
||||
void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x16x4d vpx_sad16x16x4d_c
|
||||
|
||||
void vpx_sad16x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x16x8 vpx_sad16x16x8_c
|
||||
|
||||
unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x32 vpx_sad16x32_c
|
||||
|
||||
unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x32_avg vpx_sad16x32_avg_c
|
||||
|
||||
void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x32x4d vpx_sad16x32x4d_c
|
||||
|
||||
unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad16x8 vpx_sad16x8_c
|
||||
|
||||
unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad16x8_avg vpx_sad16x8_avg_c
|
||||
|
||||
void vpx_sad16x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x8x3 vpx_sad16x8x3_c
|
||||
|
||||
void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x8x4d vpx_sad16x8x4d_c
|
||||
|
||||
void vpx_sad16x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad16x8x8 vpx_sad16x8x8_c
|
||||
|
||||
unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad32x16 vpx_sad32x16_c
|
||||
|
||||
unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad32x16_avg vpx_sad32x16_avg_c
|
||||
|
||||
void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x16x4d vpx_sad32x16x4d_c
|
||||
|
||||
unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad32x32 vpx_sad32x32_c
|
||||
|
||||
unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad32x32_avg vpx_sad32x32_avg_c
|
||||
|
||||
void vpx_sad32x32x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x32x3 vpx_sad32x32x3_c
|
||||
|
||||
void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x32x4d vpx_sad32x32x4d_c
|
||||
|
||||
void vpx_sad32x32x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x32x8 vpx_sad32x32x8_c
|
||||
|
||||
unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad32x64 vpx_sad32x64_c
|
||||
|
||||
unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad32x64_avg vpx_sad32x64_avg_c
|
||||
|
||||
void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad32x64x4d vpx_sad32x64x4d_c
|
||||
|
||||
unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad4x4 vpx_sad4x4_c
|
||||
|
||||
unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x4_avg vpx_sad4x4_avg_c
|
||||
|
||||
void vpx_sad4x4x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x4x3 vpx_sad4x4x3_c
|
||||
|
||||
void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x4x4d vpx_sad4x4x4d_c
|
||||
|
||||
void vpx_sad4x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x4x8 vpx_sad4x4x8_c
|
||||
|
||||
unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad4x8 vpx_sad4x8_c
|
||||
|
||||
unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad4x8_avg vpx_sad4x8_avg_c
|
||||
|
||||
void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x4d vpx_sad4x8x4d_c
|
||||
|
||||
void vpx_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad4x8x8 vpx_sad4x8x8_c
|
||||
|
||||
unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad64x32 vpx_sad64x32_c
|
||||
|
||||
unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad64x32_avg vpx_sad64x32_avg_c
|
||||
|
||||
void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x32x4d vpx_sad64x32x4d_c
|
||||
|
||||
unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad64x64 vpx_sad64x64_c
|
||||
|
||||
unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad64x64_avg vpx_sad64x64_avg_c
|
||||
|
||||
void vpx_sad64x64x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x64x3 vpx_sad64x64x3_c
|
||||
|
||||
void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x64x4d vpx_sad64x64x4d_c
|
||||
|
||||
void vpx_sad64x64x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad64x64x8 vpx_sad64x64x8_c
|
||||
|
||||
unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x16 vpx_sad8x16_c
|
||||
|
||||
unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x16_avg vpx_sad8x16_avg_c
|
||||
|
||||
void vpx_sad8x16x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x16x3 vpx_sad8x16x3_c
|
||||
|
||||
void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x16x4d vpx_sad8x16x4d_c
|
||||
|
||||
void vpx_sad8x16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x16x8 vpx_sad8x16x8_c
|
||||
|
||||
unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x4 vpx_sad8x4_c
|
||||
|
||||
unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x4_avg vpx_sad8x4_avg_c
|
||||
|
||||
void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x4d vpx_sad8x4x4d_c
|
||||
|
||||
void vpx_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x4x8 vpx_sad8x4x8_c
|
||||
|
||||
unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
|
||||
#define vpx_sad8x8 vpx_sad8x8_c
|
||||
|
||||
unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
|
||||
#define vpx_sad8x8_avg vpx_sad8x8_avg_c
|
||||
|
||||
void vpx_sad8x8x3_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x8x3 vpx_sad8x8x3_c
|
||||
|
||||
void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t * const ref_ptr[], int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x8x4d vpx_sad8x8x4d_c
|
||||
|
||||
void vpx_sad8x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
|
||||
#define vpx_sad8x8x8 vpx_sad8x8x8_c
|
||||
|
||||
int vpx_satd_c(const int16_t *coeff, int length);
|
||||
#define vpx_satd vpx_satd_c
|
||||
|
||||
void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_2d vpx_scaled_2d_c
|
||||
|
||||
void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
|
||||
|
||||
void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
|
||||
|
||||
void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
|
||||
|
||||
void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_horiz vpx_scaled_horiz_c
|
||||
|
||||
void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
|
||||
#define vpx_scaled_vert vpx_scaled_vert_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance64x64 vpx_sub_pixel_avg_variance64x64_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
|
||||
|
||||
uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
|
||||
#define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance16x16 vpx_sub_pixel_variance16x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance32x32 vpx_sub_pixel_variance32x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
|
||||
|
||||
uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
|
||||
#define vpx_sub_pixel_variance8x8 vpx_sub_pixel_variance8x8_c
|
||||
|
||||
void vpx_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
|
||||
#define vpx_subtract_block vpx_subtract_block_c
|
||||
|
||||
uint64_t vpx_sum_squares_2d_i16_c(const int16_t *src, int stride, int size);
|
||||
#define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
|
||||
|
||||
void vpx_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_c
|
||||
|
||||
void vpx_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_c
|
||||
|
||||
void vpx_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_c
|
||||
|
||||
void vpx_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_c
|
||||
|
||||
void vpx_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_v_predictor_16x16 vpx_v_predictor_16x16_c
|
||||
|
||||
void vpx_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_v_predictor_32x32 vpx_v_predictor_32x32_c
|
||||
|
||||
void vpx_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_v_predictor_4x4 vpx_v_predictor_4x4_c
|
||||
|
||||
void vpx_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_v_predictor_8x8 vpx_v_predictor_8x8_c
|
||||
|
||||
unsigned int vpx_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance16x16 vpx_variance16x16_c
|
||||
|
||||
unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance16x32 vpx_variance16x32_c
|
||||
|
||||
unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance16x8 vpx_variance16x8_c
|
||||
|
||||
unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance32x16 vpx_variance32x16_c
|
||||
|
||||
unsigned int vpx_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance32x32 vpx_variance32x32_c
|
||||
|
||||
unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance32x64 vpx_variance32x64_c
|
||||
|
||||
unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance4x4 vpx_variance4x4_c
|
||||
|
||||
unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance4x8 vpx_variance4x8_c
|
||||
|
||||
unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance64x32 vpx_variance64x32_c
|
||||
|
||||
unsigned int vpx_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance64x64 vpx_variance64x64_c
|
||||
|
||||
unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x16 vpx_variance8x16_c
|
||||
|
||||
unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x4 vpx_variance8x4_c
|
||||
|
||||
unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
|
||||
#define vpx_variance8x8 vpx_variance8x8_c
|
||||
|
||||
void vpx_ve_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
|
||||
#define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
|
||||
|
||||
int vpx_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
|
||||
#define vpx_vector_var vpx_vector_var_c
|
||||
|
||||
void vpx_dsp_rtcd(void);
|
||||
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
|
@ -27,55 +27,37 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_bilinear_predict16x16_neon(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_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_bilinear_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
#define vp8_bilinear_predict4x4 vp8_bilinear_predict4x4_armv6
|
||||
void vp8_bilinear_predict4x4_neon(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);
|
||||
|
||||
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_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_bilinear_predict8x4_neon(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_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_bilinear_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_bilinear_predict8x8_neon(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);
|
||||
|
||||
int vp8_block_error_c(short *coeff, short *dqcoeff);
|
||||
#define vp8_block_error vp8_block_error_c
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_neon(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_neon(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
#define vp8_clear_system_state vp8_clear_system_state_c
|
||||
|
||||
void vp8_copy_mem16x16_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem16x16_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem16x16_neon(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_mem8x4_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem8x4_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem8x4_neon(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_copy_mem8x8_c(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem8x8_v6(unsigned char *src, int src_pitch, unsigned char *dst, int dst_pitch);
|
||||
void vp8_copy_mem8x8_neon(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_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_v6(short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride);
|
||||
void vp8_dc_only_idct_add_neon(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);
|
||||
|
||||
|
|
@ -88,22 +70,18 @@ int vp8_denoiser_filter_uv_neon(unsigned char *mc_running_avg, int mc_avg_stride
|
|||
RTCD_EXTERN int (*vp8_denoiser_filter_uv)(unsigned char *mc_running_avg, int mc_avg_stride, unsigned char *running_avg, int avg_stride, unsigned char *sig, int sig_stride, unsigned int motion_magnitude, int increase_denoising);
|
||||
|
||||
void vp8_dequant_idct_add_c(short *input, short *dq, unsigned char *output, int stride);
|
||||
void vp8_dequant_idct_add_v6(short *input, short *dq, unsigned char *output, int stride);
|
||||
void vp8_dequant_idct_add_neon(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_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_v6(short *q, short *dq, unsigned char *dst_u, unsigned char *dst_v, int stride, char *eobs);
|
||||
void vp8_dequant_idct_add_uv_block_neon(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_dequant_idct_add_y_block_c(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
|
||||
void vp8_dequant_idct_add_y_block_v6(short *q, short *dq, unsigned char *dst, int stride, char *eobs);
|
||||
void vp8_dequant_idct_add_y_block_neon(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_dequantize_b_c(struct blockd*, short *dqc);
|
||||
void vp8_dequantize_b_v6(struct blockd*, short *dqc);
|
||||
void vp8_dequantize_b_neon(struct blockd*, short *dqc);
|
||||
RTCD_EXTERN void (*vp8_dequantize_b)(struct blockd*, short *dqc);
|
||||
|
||||
|
|
@ -117,47 +95,35 @@ RTCD_EXTERN void (*vp8_fast_quantize_b)(struct block *, struct blockd *);
|
|||
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);
|
||||
#define vp8_full_search_sad vp8_full_search_sad_c
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
void vp8_intra4x4_predict_armv6(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_armv6
|
||||
|
||||
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_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
void vp8_loop_filter_bh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
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_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_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
void vp8_loop_filter_bv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
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_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
void vp8_loop_filter_mbh_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
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_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_armv6(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
void vp8_loop_filter_mbv_neon(unsigned char *y, unsigned char *u, unsigned char *v, int ystride, int uv_stride, struct loop_filter_info *lfi);
|
||||
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_bhs_c(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_bhs_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_bhs_neon(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_loop_filter_bvs_c(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_bvs_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_bvs_neon(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_simple_horizontal_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_simple_horizontal_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_mbhs_neon(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_simple_vertical_edge_c(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_simple_vertical_edge_armv6(unsigned char *y, int ystride, const unsigned char *blimit);
|
||||
void vp8_loop_filter_mbvs_neon(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);
|
||||
|
||||
|
|
@ -174,22 +140,18 @@ void vp8_regular_quantize_b_c(struct block *, struct blockd *);
|
|||
#define vp8_regular_quantize_b vp8_regular_quantize_b_c
|
||||
|
||||
void vp8_short_fdct4x4_c(short *input, short *output, int pitch);
|
||||
void vp8_short_fdct4x4_armv6(short *input, short *output, int pitch);
|
||||
void vp8_short_fdct4x4_neon(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_armv6(short *input, short *output, int pitch);
|
||||
void vp8_short_fdct8x4_neon(short *input, short *output, int pitch);
|
||||
RTCD_EXTERN void (*vp8_short_fdct8x4)(short *input, short *output, int pitch);
|
||||
|
||||
void vp8_short_idct4x4llm_c(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
|
||||
void vp8_short_idct4x4llm_v6_dual(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
|
||||
void vp8_short_idct4x4llm_neon(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_c(short *input, short *output);
|
||||
void vp8_short_inv_walsh4x4_v6(short *input, short *output);
|
||||
void vp8_short_inv_walsh4x4_neon(short *input, short *output);
|
||||
RTCD_EXTERN void (*vp8_short_inv_walsh4x4)(short *input, short *output);
|
||||
|
||||
|
|
@ -197,74 +159,25 @@ 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_walsh4x4_c(short *input, short *output, int pitch);
|
||||
void vp8_short_walsh4x4_armv6(short *input, short *output, int pitch);
|
||||
void vp8_short_walsh4x4_neon(short *input, short *output, int pitch);
|
||||
RTCD_EXTERN void (*vp8_short_walsh4x4)(short *input, short *output, int pitch);
|
||||
|
||||
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_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict16x16_neon(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_predict4x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict4x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
#define vp8_sixtap_predict4x4 vp8_sixtap_predict4x4_armv6
|
||||
void vp8_sixtap_predict4x4_neon(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_sixtap_predict8x4_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict8x4_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict8x4_neon(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_predict8x8_c(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict8x8_armv6(unsigned char *src, int src_pitch, int xofst, int yofst, unsigned char *dst, int dst_pitch);
|
||||
void vp8_sixtap_predict8x8_neon(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);
|
||||
|
||||
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_armv6(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_neon(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_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);
|
||||
#define vp8_sub_pixel_variance16x8 vp8_sub_pixel_variance16x8_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance4x4 vp8_sub_pixel_variance4x4_c
|
||||
|
||||
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);
|
||||
#define vp8_sub_pixel_variance8x16 vp8_sub_pixel_variance8x16_c
|
||||
|
||||
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_armv6(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_armv6
|
||||
|
||||
void vp8_subtract_b_c(struct block *be, struct blockd *bd, int pitch);
|
||||
void vp8_subtract_b_neon(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_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_neon(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);
|
||||
|
||||
void vp8_subtract_mby_c(short *diff, unsigned char *src, int src_stride, unsigned char *pred, int pred_stride);
|
||||
void vp8_subtract_mby_neon(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);
|
||||
|
||||
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_armv6(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_neon(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_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_armv6(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_neon(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_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_armv6(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_neon(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);
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#include "vpx_config.h"
|
||||
|
|
@ -277,84 +190,70 @@ static void setup_rtcd_internal(void)
|
|||
|
||||
(void)flags;
|
||||
|
||||
vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_armv6;
|
||||
vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_c;
|
||||
if (flags & HAS_NEON) vp8_bilinear_predict16x16 = vp8_bilinear_predict16x16_neon;
|
||||
vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_armv6;
|
||||
vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_c;
|
||||
if (flags & HAS_NEON) vp8_bilinear_predict4x4 = vp8_bilinear_predict4x4_neon;
|
||||
vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
|
||||
if (flags & HAS_NEON) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_neon;
|
||||
vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_armv6;
|
||||
vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_c;
|
||||
if (flags & HAS_NEON) vp8_bilinear_predict8x8 = vp8_bilinear_predict8x8_neon;
|
||||
vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_c;
|
||||
if (flags & HAS_NEON) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_neon;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_c;
|
||||
if (flags & HAS_NEON) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_neon;
|
||||
vp8_copy_mem16x16 = vp8_copy_mem16x16_v6;
|
||||
vp8_copy_mem16x16 = vp8_copy_mem16x16_c;
|
||||
if (flags & HAS_NEON) vp8_copy_mem16x16 = vp8_copy_mem16x16_neon;
|
||||
vp8_copy_mem8x4 = vp8_copy_mem8x4_v6;
|
||||
vp8_copy_mem8x4 = vp8_copy_mem8x4_c;
|
||||
if (flags & HAS_NEON) vp8_copy_mem8x4 = vp8_copy_mem8x4_neon;
|
||||
vp8_copy_mem8x8 = vp8_copy_mem8x8_v6;
|
||||
vp8_copy_mem8x8 = vp8_copy_mem8x8_c;
|
||||
if (flags & HAS_NEON) vp8_copy_mem8x8 = vp8_copy_mem8x8_neon;
|
||||
vp8_dc_only_idct_add = vp8_dc_only_idct_add_v6;
|
||||
vp8_dc_only_idct_add = vp8_dc_only_idct_add_c;
|
||||
if (flags & HAS_NEON) vp8_dc_only_idct_add = vp8_dc_only_idct_add_neon;
|
||||
vp8_denoiser_filter = vp8_denoiser_filter_c;
|
||||
if (flags & HAS_NEON) vp8_denoiser_filter = vp8_denoiser_filter_neon;
|
||||
vp8_denoiser_filter_uv = vp8_denoiser_filter_uv_c;
|
||||
if (flags & HAS_NEON) vp8_denoiser_filter_uv = vp8_denoiser_filter_uv_neon;
|
||||
vp8_dequant_idct_add = vp8_dequant_idct_add_v6;
|
||||
vp8_dequant_idct_add = vp8_dequant_idct_add_c;
|
||||
if (flags & HAS_NEON) vp8_dequant_idct_add = vp8_dequant_idct_add_neon;
|
||||
vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_v6;
|
||||
vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_c;
|
||||
if (flags & HAS_NEON) vp8_dequant_idct_add_uv_block = vp8_dequant_idct_add_uv_block_neon;
|
||||
vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_v6;
|
||||
vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_c;
|
||||
if (flags & HAS_NEON) vp8_dequant_idct_add_y_block = vp8_dequant_idct_add_y_block_neon;
|
||||
vp8_dequantize_b = vp8_dequantize_b_v6;
|
||||
vp8_dequantize_b = vp8_dequantize_b_c;
|
||||
if (flags & HAS_NEON) vp8_dequantize_b = vp8_dequantize_b_neon;
|
||||
vp8_fast_quantize_b = vp8_fast_quantize_b_c;
|
||||
if (flags & HAS_NEON) vp8_fast_quantize_b = vp8_fast_quantize_b_neon;
|
||||
vp8_loop_filter_bh = vp8_loop_filter_bh_armv6;
|
||||
vp8_loop_filter_bh = vp8_loop_filter_bh_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_bh = vp8_loop_filter_bh_neon;
|
||||
vp8_loop_filter_bv = vp8_loop_filter_bv_armv6;
|
||||
vp8_loop_filter_bv = vp8_loop_filter_bv_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_bv = vp8_loop_filter_bv_neon;
|
||||
vp8_loop_filter_mbh = vp8_loop_filter_mbh_armv6;
|
||||
vp8_loop_filter_mbh = vp8_loop_filter_mbh_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_mbh = vp8_loop_filter_mbh_neon;
|
||||
vp8_loop_filter_mbv = vp8_loop_filter_mbv_armv6;
|
||||
vp8_loop_filter_mbv = vp8_loop_filter_mbv_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_mbv = vp8_loop_filter_mbv_neon;
|
||||
vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_armv6;
|
||||
vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_simple_bh = vp8_loop_filter_bhs_neon;
|
||||
vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_armv6;
|
||||
vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_simple_bv = vp8_loop_filter_bvs_neon;
|
||||
vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_armv6;
|
||||
vp8_loop_filter_simple_mbh = vp8_loop_filter_simple_horizontal_edge_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_simple_mbh = vp8_loop_filter_mbhs_neon;
|
||||
vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_armv6;
|
||||
vp8_loop_filter_simple_mbv = vp8_loop_filter_simple_vertical_edge_c;
|
||||
if (flags & HAS_NEON) vp8_loop_filter_simple_mbv = vp8_loop_filter_mbvs_neon;
|
||||
vp8_short_fdct4x4 = vp8_short_fdct4x4_armv6;
|
||||
vp8_short_fdct4x4 = vp8_short_fdct4x4_c;
|
||||
if (flags & HAS_NEON) vp8_short_fdct4x4 = vp8_short_fdct4x4_neon;
|
||||
vp8_short_fdct8x4 = vp8_short_fdct8x4_armv6;
|
||||
vp8_short_fdct8x4 = vp8_short_fdct8x4_c;
|
||||
if (flags & HAS_NEON) vp8_short_fdct8x4 = vp8_short_fdct8x4_neon;
|
||||
vp8_short_idct4x4llm = vp8_short_idct4x4llm_v6_dual;
|
||||
vp8_short_idct4x4llm = vp8_short_idct4x4llm_c;
|
||||
if (flags & HAS_NEON) vp8_short_idct4x4llm = vp8_short_idct4x4llm_neon;
|
||||
vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_v6;
|
||||
vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_c;
|
||||
if (flags & HAS_NEON) vp8_short_inv_walsh4x4 = vp8_short_inv_walsh4x4_neon;
|
||||
vp8_short_walsh4x4 = vp8_short_walsh4x4_armv6;
|
||||
vp8_short_walsh4x4 = vp8_short_walsh4x4_c;
|
||||
if (flags & HAS_NEON) vp8_short_walsh4x4 = vp8_short_walsh4x4_neon;
|
||||
vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_armv6;
|
||||
vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_c;
|
||||
if (flags & HAS_NEON) vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_neon;
|
||||
vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_armv6;
|
||||
vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_c;
|
||||
if (flags & HAS_NEON) vp8_sixtap_predict4x4 = vp8_sixtap_predict4x4_neon;
|
||||
vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_c;
|
||||
if (flags & HAS_NEON) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_neon;
|
||||
vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_armv6;
|
||||
vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_c;
|
||||
if (flags & HAS_NEON) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_neon;
|
||||
vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_armv6;
|
||||
if (flags & HAS_NEON) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_neon;
|
||||
vp8_subtract_b = vp8_subtract_b_c;
|
||||
if (flags & HAS_NEON) vp8_subtract_b = vp8_subtract_b_neon;
|
||||
vp8_subtract_mbuv = vp8_subtract_mbuv_c;
|
||||
if (flags & HAS_NEON) vp8_subtract_mbuv = vp8_subtract_mbuv_neon;
|
||||
vp8_subtract_mby = vp8_subtract_mby_c;
|
||||
if (flags & HAS_NEON) vp8_subtract_mby = vp8_subtract_mby_neon;
|
||||
vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_armv6;
|
||||
if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_h = vp8_variance_halfpixvar16x16_h_neon;
|
||||
vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_armv6;
|
||||
if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_hv = vp8_variance_halfpixvar16x16_hv_neon;
|
||||
vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_armv6;
|
||||
if (flags & HAS_NEON) vp8_variance_halfpixvar16x16_v = vp8_variance_halfpixvar16x16_v_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
114
media/libvpx/config/linux/arm/vp9_rtcd.h
Normal file
114
media/libvpx/config/linux/arm/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
#define vp9_block_error vp9_block_error_c
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_neon(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
#define vp9_diamond_search_sad vp9_diamond_search_sad_c
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_neon(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht16x16 vp9_fht16x16_c
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht4x4 vp9_fht4x4_c
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_c
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
#define vp9_full_search_sad vp9_full_search_sad_c
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_c
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_neon(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
#define vp9_scale_and_extend_frame vp9_scale_and_extend_frame_c
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/arm.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = arm_cpu_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_NEON) vp9_block_error_fp = vp9_block_error_fp_neon;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_c;
|
||||
if (flags & HAS_NEON) vp9_fdct8x8_quant = vp9_fdct8x8_quant_neon;
|
||||
vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
|
||||
if (flags & HAS_NEON) vp9_iht4x4_16_add = vp9_iht4x4_16_add_neon;
|
||||
vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
|
||||
if (flags & HAS_NEON) vp9_iht8x8_64_add = vp9_iht8x8_64_add_neon;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_NEON) vp9_quantize_fp = vp9_quantize_fp_neon;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -5,8 +5,6 @@
|
|||
.equ ARCH_MIPS , 0
|
||||
.equ ARCH_X86 , 0
|
||||
.equ ARCH_X86_64 , 0
|
||||
.equ HAVE_EDSP , 0
|
||||
.equ HAVE_MEDIA , 1
|
||||
.equ HAVE_NEON , 1
|
||||
.equ HAVE_NEON_ASM , 1
|
||||
.equ HAVE_MIPS32 , 0
|
||||
|
|
@ -22,17 +20,13 @@
|
|||
.equ HAVE_AVX , 0
|
||||
.equ HAVE_AVX2 , 0
|
||||
.equ HAVE_VPX_PORTS , 1
|
||||
.equ HAVE_STDINT_H , 1
|
||||
.equ HAVE_PTHREAD_H , 1
|
||||
.equ HAVE_SYS_MMAN_H , 1
|
||||
.equ HAVE_UNISTD_H , 1
|
||||
.equ CONFIG_DEPENDENCY_TRACKING , 1
|
||||
.equ CONFIG_EXTERNAL_BUILD , 0
|
||||
.equ CONFIG_EXTERNAL_BUILD , 1
|
||||
.equ CONFIG_INSTALL_DOCS , 0
|
||||
.equ CONFIG_INSTALL_BINS , 1
|
||||
.equ CONFIG_INSTALL_LIBS , 1
|
||||
.equ CONFIG_INSTALL_SRCS , 0
|
||||
.equ CONFIG_USE_X86INC , 0
|
||||
.equ CONFIG_DEBUG , 0
|
||||
.equ CONFIG_GPROF , 0
|
||||
.equ CONFIG_GCOV , 0
|
||||
|
|
@ -78,13 +72,11 @@
|
|||
.equ CONFIG_VP9_TEMPORAL_DENOISING , 0
|
||||
.equ CONFIG_COEFFICIENT_RANGE_CHECKING , 0
|
||||
.equ CONFIG_VP9_HIGHBITDEPTH , 0
|
||||
.equ CONFIG_BETTER_HW_COMPATIBILITY , 0
|
||||
.equ CONFIG_EXPERIMENTAL , 0
|
||||
.equ CONFIG_SIZE_LIMIT , 1
|
||||
.equ CONFIG_SPATIAL_SVC , 0
|
||||
.equ CONFIG_FP_MB_STATS , 0
|
||||
.equ CONFIG_EMULATE_HARDWARE , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
@ This file was created from a .asm file
|
||||
@ using the ads2gas.pl script.
|
||||
.equ DO1STROUNDING, 0
|
||||
.equ CONFIG_MISC_FIXES , 0
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
10
media/libvpx/config/linux/arm/vpx_config.c
Normal file
10
media/libvpx/config/linux/arm/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=armv7-linux-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-runtime-cpu-detect --enable-realtime-only";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 0
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 1
|
||||
#define HAVE_NEON 1
|
||||
#define HAVE_NEON_ASM 1
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,17 +29,13 @@
|
|||
#define HAVE_AVX 0
|
||||
#define HAVE_AVX2 0
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1055
media/libvpx/config/linux/arm/vpx_dsp_rtcd.h
Normal file
1055
media/libvpx/config/linux/arm/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
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_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);
|
||||
|
|
@ -56,31 +54,15 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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);
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
RTCD_EXTERN void (*vp8_clear_system_state)();
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
|
||||
|
||||
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_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);
|
||||
|
||||
|
|
@ -147,77 +127,46 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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);
|
||||
|
||||
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);
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
|
||||
|
||||
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_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);
|
||||
|
||||
int vp8_mbuverror_c(struct macroblock *mb);
|
||||
int vp8_mbuverror_mmx(struct macroblock *mb);
|
||||
int vp8_mbuverror_xmm(struct macroblock *mb);
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
|
||||
|
||||
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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
RTCD_EXTERN void (*vp8_post_proc_down_and_across_mb_row)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
|
||||
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);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ 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_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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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);
|
||||
|
||||
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_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);
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
RTCD_EXTERN void (*vp8_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);
|
||||
|
||||
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_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_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);
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -348,7 +234,6 @@ static void setup_rtcd_internal(void)
|
|||
(void)flags;
|
||||
|
||||
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_predict4x4 = vp8_bilinear_predict4x4_c;
|
||||
|
|
@ -356,25 +241,14 @@ static void setup_rtcd_internal(void)
|
|||
vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
|
||||
if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
|
||||
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_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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_clear_system_state = vp8_clear_system_state_c;
|
||||
if (flags & HAS_MMX) vp8_clear_system_state = vpx_reset_mmx_state;
|
||||
if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_sse2;
|
||||
vp8_copy32xn = vp8_copy32xn_c;
|
||||
if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
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_mem8x4 = vp8_copy_mem8x4_c;
|
||||
if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
|
||||
|
|
@ -389,15 +263,13 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_dequantize_b = vp8_dequantize_b_c;
|
||||
if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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;
|
||||
|
|
@ -409,115 +281,54 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_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_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_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_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_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_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_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_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;
|
||||
if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_sse2;
|
||||
vp8_mbuverror = vp8_mbuverror_c;
|
||||
if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_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_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_c;
|
||||
if (flags & HAS_SSE2) vp8_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_sse2;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_sse2;
|
||||
vp8_refining_search_sad = vp8_refining_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
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_1;
|
||||
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_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_short_walsh4x4 = vp8_short_walsh4x4_c;
|
||||
if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
|
||||
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_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_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_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_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_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_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_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_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_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_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_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_temporal_filter_apply = vp8_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp8_temporal_filter_apply = vp8_temporal_filter_apply_sse2;
|
||||
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_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_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;
|
||||
}
|
||||
#endif
|
||||
|
||||
160
media/libvpx/config/linux/ia32/vp9_rtcd.h
Normal file
160
media/libvpx/config/linux/ia32/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
RTCD_EXTERN void (*vp9_fwht4x4)(const int16_t *input, tran_low_t *output, int stride);
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_c;
|
||||
if (flags & HAS_SSE2) vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_fht16x16 = vp9_fht16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_fht16x16 = vp9_fht16x16_sse2;
|
||||
vp9_fht4x4 = vp9_fht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_fwht4x4 = vp9_fwht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fwht4x4 = vp9_fwht4x4_sse2;
|
||||
vp9_iht16x16_256_add = vp9_iht16x16_256_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2;
|
||||
vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2;
|
||||
vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
vp9_temporal_filter_apply = vp9_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/linux/ia32/vpx_config.asm
Normal file
78
media/libvpx/config/linux/ia32/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/linux/ia32/vpx_config.c
Normal file
10
media/libvpx/config/linux/ia32/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-linux-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 1
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,17 +29,13 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 0
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
|
@ -56,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -77,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1469
media/libvpx/config/linux/ia32/vpx_dsp_rtcd.h
Normal file
1469
media/libvpx/config/linux/ia32/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
|
||||
|
||||
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);
|
||||
|
|
@ -56,23 +54,8 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
#define vp8_clear_system_state vpx_reset_mmx_state
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
#define vp8_block_error vp8_block_error_sse2
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
|
@ -80,7 +63,6 @@ void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned
|
|||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
|
||||
|
||||
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_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
|
||||
|
||||
|
|
@ -124,7 +104,7 @@ void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
|
|||
|
||||
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);
|
||||
#define vp8_diamond_search_sad vp8_diamond_search_sadx4
|
||||
|
||||
void vp8_fast_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -147,80 +127,49 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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
|
||||
|
||||
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
|
||||
|
||||
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_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
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
#define vp8_mbblock_error vp8_mbblock_error_sse2
|
||||
|
||||
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_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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
#define vp8_post_proc_down_and_across_mb_row vp8_post_proc_down_and_across_mb_row_sse2
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
#define vp8_mbuverror vp8_mbuverror_sse2
|
||||
|
||||
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);
|
||||
#define vp8_refining_search_sad vp8_refining_search_sadx4
|
||||
|
||||
void vp8_regular_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
|
|||
#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
|
||||
|
||||
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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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
|
||||
|
||||
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_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
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
#define vp8_temporal_filter_apply vp8_temporal_filter_apply_sse2
|
||||
|
||||
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_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_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
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -351,21 +237,13 @@ static void setup_rtcd_internal(void)
|
|||
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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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_regular_quantize_b = vp8_regular_quantize_b_sse2;
|
||||
if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4_1;
|
||||
vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
|
||||
|
|
@ -376,10 +254,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
|
||||
vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
|
||||
vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
|
||||
vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
140
media/libvpx/config/linux/x64/vp9_rtcd.h
Normal file
140
media/libvpx/config/linux/x64/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_sse2
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht16x16 vp9_fht16x16_sse2
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht4x4 vp9_fht4x4_sse2
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_sse2
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
#define vp9_iht16x16_256_add vp9_iht16x16_256_add_sse2
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_32x32_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3;
|
||||
vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/linux/x64/vpx_config.asm
Normal file
78
media/libvpx/config/linux/x64/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/linux/x64/vpx_config.c
Normal file
10
media/libvpx/config/linux/x64/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-linux-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 0
|
||||
#define ARCH_X86_64 1
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,17 +29,13 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
|
@ -56,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -77,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1207
media/libvpx/config/linux/x64/vpx_dsp_rtcd.h
Normal file
1207
media/libvpx/config/linux/x64/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
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_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);
|
||||
|
|
@ -56,31 +54,15 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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);
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
RTCD_EXTERN void (*vp8_clear_system_state)();
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
|
||||
|
||||
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_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);
|
||||
|
||||
|
|
@ -147,77 +127,46 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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);
|
||||
|
||||
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);
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
|
||||
|
||||
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_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);
|
||||
|
||||
int vp8_mbuverror_c(struct macroblock *mb);
|
||||
int vp8_mbuverror_mmx(struct macroblock *mb);
|
||||
int vp8_mbuverror_xmm(struct macroblock *mb);
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
|
||||
|
||||
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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
RTCD_EXTERN void (*vp8_post_proc_down_and_across_mb_row)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
|
||||
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);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ 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_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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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);
|
||||
|
||||
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_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);
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
RTCD_EXTERN void (*vp8_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);
|
||||
|
||||
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_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_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);
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -348,7 +234,6 @@ static void setup_rtcd_internal(void)
|
|||
(void)flags;
|
||||
|
||||
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_predict4x4 = vp8_bilinear_predict4x4_c;
|
||||
|
|
@ -356,25 +241,14 @@ static void setup_rtcd_internal(void)
|
|||
vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
|
||||
if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
|
||||
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_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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_clear_system_state = vp8_clear_system_state_c;
|
||||
if (flags & HAS_MMX) vp8_clear_system_state = vpx_reset_mmx_state;
|
||||
if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_sse2;
|
||||
vp8_copy32xn = vp8_copy32xn_c;
|
||||
if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
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_mem8x4 = vp8_copy_mem8x4_c;
|
||||
if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
|
||||
|
|
@ -389,15 +263,13 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_dequantize_b = vp8_dequantize_b_c;
|
||||
if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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;
|
||||
|
|
@ -409,115 +281,54 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_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_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_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_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_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_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_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_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;
|
||||
if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_sse2;
|
||||
vp8_mbuverror = vp8_mbuverror_c;
|
||||
if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_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_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_c;
|
||||
if (flags & HAS_SSE2) vp8_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_sse2;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_sse2;
|
||||
vp8_refining_search_sad = vp8_refining_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
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_1;
|
||||
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_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_short_walsh4x4 = vp8_short_walsh4x4_c;
|
||||
if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
|
||||
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_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_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_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_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_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_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_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_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_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_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_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_temporal_filter_apply = vp8_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp8_temporal_filter_apply = vp8_temporal_filter_apply_sse2;
|
||||
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_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_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;
|
||||
}
|
||||
#endif
|
||||
|
||||
160
media/libvpx/config/mac/ia32/vp9_rtcd.h
Normal file
160
media/libvpx/config/mac/ia32/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
RTCD_EXTERN void (*vp9_fwht4x4)(const int16_t *input, tran_low_t *output, int stride);
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_c;
|
||||
if (flags & HAS_SSE2) vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_fht16x16 = vp9_fht16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_fht16x16 = vp9_fht16x16_sse2;
|
||||
vp9_fht4x4 = vp9_fht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_fwht4x4 = vp9_fwht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fwht4x4 = vp9_fwht4x4_sse2;
|
||||
vp9_iht16x16_256_add = vp9_iht16x16_256_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2;
|
||||
vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2;
|
||||
vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
vp9_temporal_filter_apply = vp9_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/mac/ia32/vpx_config.asm
Normal file
78
media/libvpx/config/mac/ia32/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/mac/ia32/vpx_config.c
Normal file
10
media/libvpx/config/mac/ia32/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-darwin9-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 1
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,17 +29,13 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
|
@ -56,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -77,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1469
media/libvpx/config/mac/ia32/vpx_dsp_rtcd.h
Normal file
1469
media/libvpx/config/mac/ia32/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
|
||||
|
||||
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);
|
||||
|
|
@ -56,23 +54,8 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
#define vp8_clear_system_state vpx_reset_mmx_state
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
#define vp8_block_error vp8_block_error_sse2
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
|
@ -80,7 +63,6 @@ void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned
|
|||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
|
||||
|
||||
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_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
|
||||
|
||||
|
|
@ -124,7 +104,7 @@ void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
|
|||
|
||||
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);
|
||||
#define vp8_diamond_search_sad vp8_diamond_search_sadx4
|
||||
|
||||
void vp8_fast_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -147,80 +127,49 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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
|
||||
|
||||
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
|
||||
|
||||
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_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
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
#define vp8_mbblock_error vp8_mbblock_error_sse2
|
||||
|
||||
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_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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
#define vp8_post_proc_down_and_across_mb_row vp8_post_proc_down_and_across_mb_row_sse2
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
#define vp8_mbuverror vp8_mbuverror_sse2
|
||||
|
||||
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);
|
||||
#define vp8_refining_search_sad vp8_refining_search_sadx4
|
||||
|
||||
void vp8_regular_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
|
|||
#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
|
||||
|
||||
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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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
|
||||
|
||||
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_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
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
#define vp8_temporal_filter_apply vp8_temporal_filter_apply_sse2
|
||||
|
||||
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_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_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
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -351,21 +237,13 @@ static void setup_rtcd_internal(void)
|
|||
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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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_regular_quantize_b = vp8_regular_quantize_b_sse2;
|
||||
if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4_1;
|
||||
vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
|
||||
|
|
@ -376,10 +254,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
|
||||
vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
|
||||
vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
|
||||
vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
140
media/libvpx/config/mac/x64/vp9_rtcd.h
Normal file
140
media/libvpx/config/mac/x64/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_sse2
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht16x16 vp9_fht16x16_sse2
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht4x4 vp9_fht4x4_sse2
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_sse2
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
#define vp9_iht16x16_256_add vp9_iht16x16_256_add_sse2
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_32x32_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3;
|
||||
vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/mac/x64/vpx_config.asm
Normal file
78
media/libvpx/config/mac/x64/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 1
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/mac/x64/vpx_config.c
Normal file
10
media/libvpx/config/mac/x64/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-darwin9-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 0
|
||||
#define ARCH_X86_64 1
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,17 +29,13 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_PTHREAD_H 1
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
|
|
@ -56,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -77,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -87,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1207
media/libvpx/config/mac/x64/vpx_dsp_rtcd.h
Normal file
1207
media/libvpx/config/mac/x64/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -40,11 +40,11 @@ void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12
|
|||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_borders vp9_extend_frame_borders_c
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vp9_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp9_extend_frame_inner_borders vp9_extend_frame_inner_borders_c
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
7
media/libvpx/config/vpx_version.h
Normal file
7
media/libvpx/config/vpx_version.h
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 6
|
||||
#define VERSION_PATCH 1
|
||||
#define VERSION_EXTRA ""
|
||||
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
|
||||
#define VERSION_STRING_NOSP "v1.6.1"
|
||||
#define VERSION_STRING " v1.6.1"
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
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_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);
|
||||
|
|
@ -56,31 +54,15 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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);
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
RTCD_EXTERN int (*vp8_block_error)(short *coeff, short *dqcoeff);
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
RTCD_EXTERN void (*vp8_clear_system_state)();
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
RTCD_EXTERN void (*vp8_dequant_idct_add)(short *input, short *dq, unsigned char *output, int stride);
|
||||
|
||||
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_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);
|
||||
|
||||
|
|
@ -147,77 +127,46 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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);
|
||||
|
||||
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);
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
RTCD_EXTERN int (*vp8_mbblock_error)(struct macroblock *mb, int dc);
|
||||
|
||||
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_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);
|
||||
|
||||
int vp8_mbuverror_c(struct macroblock *mb);
|
||||
int vp8_mbuverror_mmx(struct macroblock *mb);
|
||||
int vp8_mbuverror_xmm(struct macroblock *mb);
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
RTCD_EXTERN int (*vp8_mbuverror)(struct macroblock *mb);
|
||||
|
||||
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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
RTCD_EXTERN void (*vp8_post_proc_down_and_across_mb_row)(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
|
||||
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);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
RTCD_EXTERN void (*vp8_short_idct4x4llm)(short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride);
|
||||
|
||||
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);
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ 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_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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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);
|
||||
|
||||
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_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);
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
RTCD_EXTERN void (*vp8_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);
|
||||
|
||||
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_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_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);
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -348,7 +234,6 @@ static void setup_rtcd_internal(void)
|
|||
(void)flags;
|
||||
|
||||
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_predict4x4 = vp8_bilinear_predict4x4_c;
|
||||
|
|
@ -356,25 +241,14 @@ static void setup_rtcd_internal(void)
|
|||
vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_c;
|
||||
if (flags & HAS_MMX) vp8_bilinear_predict8x4 = vp8_bilinear_predict8x4_mmx;
|
||||
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_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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_c;
|
||||
if (flags & HAS_SSE2) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_clear_system_state = vp8_clear_system_state_c;
|
||||
if (flags & HAS_MMX) vp8_clear_system_state = vpx_reset_mmx_state;
|
||||
if (flags & HAS_SSE2) vp8_block_error = vp8_block_error_sse2;
|
||||
vp8_copy32xn = vp8_copy32xn_c;
|
||||
if (flags & HAS_SSE2) vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
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_mem8x4 = vp8_copy_mem8x4_c;
|
||||
if (flags & HAS_MMX) vp8_copy_mem8x4 = vp8_copy_mem8x4_mmx;
|
||||
|
|
@ -389,15 +263,13 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_dequantize_b = vp8_dequantize_b_c;
|
||||
if (flags & HAS_MMX) vp8_dequantize_b = vp8_dequantize_b_mmx;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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;
|
||||
|
|
@ -409,115 +281,54 @@ static void setup_rtcd_internal(void)
|
|||
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_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_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_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_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_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_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_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_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_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_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;
|
||||
if (flags & HAS_SSE2) vp8_mbblock_error = vp8_mbblock_error_sse2;
|
||||
vp8_mbuverror = vp8_mbuverror_c;
|
||||
if (flags & HAS_MMX) vp8_mbuverror = vp8_mbuverror_mmx;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_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_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_c;
|
||||
if (flags & HAS_SSE2) vp8_post_proc_down_and_across_mb_row = vp8_post_proc_down_and_across_mb_row_sse2;
|
||||
if (flags & HAS_SSE2) vp8_mbuverror = vp8_mbuverror_sse2;
|
||||
vp8_refining_search_sad = vp8_refining_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
if (flags & HAS_SSE2) vp8_refining_search_sad = vp8_refining_search_sadx4;
|
||||
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_1;
|
||||
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_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_short_walsh4x4 = vp8_short_walsh4x4_c;
|
||||
if (flags & HAS_SSE2) vp8_short_walsh4x4 = vp8_short_walsh4x4_sse2;
|
||||
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_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_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_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_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_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_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_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_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_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_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_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_temporal_filter_apply = vp8_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp8_temporal_filter_apply = vp8_temporal_filter_apply_sse2;
|
||||
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_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_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;
|
||||
}
|
||||
#endif
|
||||
|
||||
160
media/libvpx/config/win/ia32/vp9_rtcd.h
Normal file
160
media/libvpx/config/win/ia32/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error_fp)(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht16x16)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht4x4)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_fht8x8)(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight16x16)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
RTCD_EXTERN void (*vp9_filter_by_weight8x8)(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
RTCD_EXTERN void (*vp9_fwht4x4)(const int16_t *input, tran_low_t *output, int stride);
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht16x16_256_add)(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
#define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
RTCD_EXTERN void (*vp9_temporal_filter_apply)(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_block_error_fp = vp9_block_error_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_block_error_fp = vp9_block_error_fp_sse2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_c;
|
||||
if (flags & HAS_SSE2) vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_fht16x16 = vp9_fht16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_fht16x16 = vp9_fht16x16_sse2;
|
||||
vp9_fht4x4 = vp9_fht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fht4x4 = vp9_fht4x4_sse2;
|
||||
vp9_fht8x8 = vp9_fht8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_fht8x8 = vp9_fht8x8_sse2;
|
||||
vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight16x16 = vp9_filter_by_weight16x16_sse2;
|
||||
vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_c;
|
||||
if (flags & HAS_SSE2) vp9_filter_by_weight8x8 = vp9_filter_by_weight8x8_sse2;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_fwht4x4 = vp9_fwht4x4_c;
|
||||
if (flags & HAS_SSE2) vp9_fwht4x4 = vp9_fwht4x4_sse2;
|
||||
vp9_iht16x16_256_add = vp9_iht16x16_256_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2;
|
||||
vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2;
|
||||
vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
|
||||
if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2;
|
||||
vp9_quantize_fp = vp9_quantize_fp_c;
|
||||
if (flags & HAS_SSE2) vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
vp9_temporal_filter_apply = vp9_temporal_filter_apply_c;
|
||||
if (flags & HAS_SSE2) vp9_temporal_filter_apply = vp9_temporal_filter_apply_sse2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/win/ia32/vpx_config.asm
Normal file
78
media/libvpx/config/win/ia32/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 1
|
||||
%define ARCH_X86_64 0
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 1
|
||||
%define CONFIG_MSVS 0
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/win/ia32/vpx_config.c
Normal file
10
media/libvpx/config/win/ia32/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86-win32-gcc --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 1
|
||||
#define ARCH_X86_64 0
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,25 +29,20 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#undef HAVE_PTHREAD_H
|
||||
#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 0
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 1
|
||||
#define CONFIG_MSVS 0
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
|
@ -57,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -78,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -88,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1469
media/libvpx/config/win/ia32/vpx_dsp_rtcd.h
Normal file
1469
media/libvpx/config/win/ia32/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
69
media/libvpx/config/win/ia32/vpx_scale_rtcd.h
Normal file
69
media/libvpx/config/win/ia32/vpx_scale_rtcd.h
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#ifndef VPX_SCALE_RTCD_H_
|
||||
#define VPX_SCALE_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
|
||||
|
||||
void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
|
||||
|
||||
void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
|
||||
|
||||
void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
|
||||
|
||||
void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
|
||||
|
||||
void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
|
||||
|
||||
void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
|
||||
|
||||
void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
|
||||
|
||||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
||||
void vpx_scale_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -27,7 +27,6 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
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);
|
||||
|
|
@ -41,7 +40,6 @@ void vp8_bilinear_predict8x4_mmx(unsigned char *src, int src_pitch, int xofst, i
|
|||
#define vp8_bilinear_predict8x4 vp8_bilinear_predict8x4_mmx
|
||||
|
||||
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);
|
||||
|
|
@ -56,23 +54,8 @@ void vp8_blend_mb_outer_c(unsigned char *y, unsigned char *u, unsigned char *v,
|
|||
#define vp8_blend_mb_outer vp8_blend_mb_outer_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
|
||||
|
||||
void vp8_build_intra_predictors_mbuv_s_c(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_sse2(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
void vp8_build_intra_predictors_mbuv_s_ssse3(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mbuv_s)(struct macroblockd *x, unsigned char * uabove_row, unsigned char * vabove_row, unsigned char *uleft, unsigned char *vleft, int left_stride, unsigned char * upred_ptr, unsigned char * vpred_ptr, int pred_stride);
|
||||
|
||||
void vp8_build_intra_predictors_mby_s_c(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_sse2(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
void vp8_build_intra_predictors_mby_s_ssse3(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
RTCD_EXTERN void (*vp8_build_intra_predictors_mby_s)(struct macroblockd *x, unsigned char * yabove_row, unsigned char * yleft, int left_stride, unsigned char * ypred_ptr, int y_stride);
|
||||
|
||||
void vp8_clear_system_state_c();
|
||||
void vpx_reset_mmx_state();
|
||||
#define vp8_clear_system_state vpx_reset_mmx_state
|
||||
int vp8_block_error_sse2(short *coeff, short *dqcoeff);
|
||||
#define vp8_block_error vp8_block_error_sse2
|
||||
|
||||
void vp8_copy32xn_c(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
void vp8_copy32xn_sse2(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
|
@ -80,7 +63,6 @@ void vp8_copy32xn_sse3(const unsigned char *src_ptr, int source_stride, unsigned
|
|||
RTCD_EXTERN void (*vp8_copy32xn)(const unsigned char *src_ptr, int source_stride, unsigned char *dst_ptr, int dst_stride, int n);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -109,12 +91,10 @@ void vp8_dequant_idct_add_mmx(short *input, short *dq, unsigned char *output, in
|
|||
#define vp8_dequant_idct_add vp8_dequant_idct_add_mmx
|
||||
|
||||
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_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
|
||||
|
||||
|
|
@ -124,7 +104,7 @@ void vp8_dequantize_b_mmx(struct blockd*, short *dqc);
|
|||
|
||||
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);
|
||||
#define vp8_diamond_search_sad vp8_diamond_search_sadx4
|
||||
|
||||
void vp8_fast_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_fast_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -147,80 +127,49 @@ int vp8_full_search_sadx3(struct macroblock *x, struct block *b, struct blockd *
|
|||
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);
|
||||
|
||||
void vp8_intra4x4_predict_c(unsigned char *Above, unsigned char *yleft, int left_stride, int b_mode, unsigned char *dst, int dst_stride, unsigned char top_left);
|
||||
#define vp8_intra4x4_predict vp8_intra4x4_predict_c
|
||||
|
||||
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_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_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_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_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_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_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
|
||||
|
||||
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
|
||||
|
||||
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_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
|
||||
int vp8_mbblock_error_sse2(struct macroblock *mb, int dc);
|
||||
#define vp8_mbblock_error vp8_mbblock_error_sse2
|
||||
|
||||
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_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_post_proc_down_and_across_mb_row_c(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
void vp8_post_proc_down_and_across_mb_row_sse2(unsigned char *src, unsigned char *dst, int src_pitch, int dst_pitch, int cols, unsigned char *flimits, int size);
|
||||
#define vp8_post_proc_down_and_across_mb_row vp8_post_proc_down_and_across_mb_row_sse2
|
||||
int vp8_mbuverror_sse2(struct macroblock *mb);
|
||||
#define vp8_mbuverror vp8_mbuverror_sse2
|
||||
|
||||
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);
|
||||
#define vp8_refining_search_sad vp8_refining_search_sadx4
|
||||
|
||||
void vp8_regular_quantize_b_c(struct block *, struct blockd *);
|
||||
void vp8_regular_quantize_b_sse2(struct block *, struct blockd *);
|
||||
|
|
@ -228,12 +177,10 @@ void vp8_regular_quantize_b_sse4_1(struct block *, struct blockd *);
|
|||
RTCD_EXTERN void (*vp8_regular_quantize_b)(struct block *, struct blockd *);
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -242,7 +189,6 @@ void vp8_short_idct4x4llm_mmx(short *input, unsigned char *pred, int pitch, unsi
|
|||
#define vp8_short_idct4x4llm vp8_short_idct4x4llm_mmx
|
||||
|
||||
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
|
||||
|
||||
|
|
@ -254,7 +200,6 @@ void vp8_short_walsh4x4_sse2(short *input, short *output, int pitch);
|
|||
#define vp8_short_walsh4x4 vp8_short_walsh4x4_sse2
|
||||
|
||||
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);
|
||||
|
|
@ -265,78 +210,19 @@ void vp8_sixtap_predict4x4_ssse3(unsigned char *src, int src_pitch, int xofst, i
|
|||
RTCD_EXTERN void (*vp8_sixtap_predict4x4)(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_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);
|
||||
|
||||
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_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_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_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_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
|
||||
|
||||
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_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
|
||||
|
||||
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_temporal_filter_apply_c(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
void vp8_temporal_filter_apply_sse2(unsigned char *frame1, unsigned int stride, unsigned char *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, unsigned short *count);
|
||||
#define vp8_temporal_filter_apply vp8_temporal_filter_apply_sse2
|
||||
|
||||
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_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_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
|
||||
|
||||
void vp8_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
|
|
@ -351,21 +237,13 @@ static void setup_rtcd_internal(void)
|
|||
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_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mbuv_s = vp8_build_intra_predictors_mbuv_s_ssse3;
|
||||
vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_build_intra_predictors_mby_s = vp8_build_intra_predictors_mby_s_ssse3;
|
||||
vp8_copy32xn = vp8_copy32xn_sse2;
|
||||
if (flags & HAS_SSE3) vp8_copy32xn = vp8_copy32xn_sse3;
|
||||
vp8_diamond_search_sad = vp8_diamond_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp8_diamond_search_sad = vp8_diamond_search_sadx4;
|
||||
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_regular_quantize_b = vp8_regular_quantize_b_sse2;
|
||||
if (flags & HAS_SSE4_1) vp8_regular_quantize_b = vp8_regular_quantize_b_sse4_1;
|
||||
vp8_sixtap_predict16x16 = vp8_sixtap_predict16x16_sse2;
|
||||
|
|
@ -376,10 +254,6 @@ static void setup_rtcd_internal(void)
|
|||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x4 = vp8_sixtap_predict8x4_ssse3;
|
||||
vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_sse2;
|
||||
if (flags & HAS_SSSE3) vp8_sixtap_predict8x8 = vp8_sixtap_predict8x8_ssse3;
|
||||
vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x16 = vp8_sub_pixel_variance16x16_ssse3;
|
||||
vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_wmt;
|
||||
if (flags & HAS_SSSE3) vp8_sub_pixel_variance16x8 = vp8_sub_pixel_variance16x8_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
140
media/libvpx/config/win/x64/vp9_rtcd.h
Normal file
140
media/libvpx/config/win/x64/vp9_rtcd.h
Normal file
|
|
@ -0,0 +1,140 @@
|
|||
#ifndef VP9_RTCD_H_
|
||||
#define VP9_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
/*
|
||||
* VP9
|
||||
*/
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vp9/common/vp9_common.h"
|
||||
#include "vp9/common/vp9_enums.h"
|
||||
|
||||
struct macroblockd;
|
||||
|
||||
/* Encoder forward decls */
|
||||
struct macroblock;
|
||||
struct vp9_variance_vtable;
|
||||
struct search_site_config;
|
||||
struct mv;
|
||||
union int_mv;
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_sse2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
int64_t vp9_block_error_avx2(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
RTCD_EXTERN int64_t (*vp9_block_error)(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
|
||||
|
||||
int64_t vp9_block_error_fp_c(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
int64_t vp9_block_error_fp_sse2(const int16_t *coeff, const int16_t *dqcoeff, int block_size);
|
||||
#define vp9_block_error_fp vp9_block_error_fp_sse2
|
||||
|
||||
int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
int vp9_diamond_search_sad_avx(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
RTCD_EXTERN int (*vp9_diamond_search_sad)(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
|
||||
|
||||
void vp9_fdct8x8_quant_c(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_sse2(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_fdct8x8_quant_ssse3(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_fdct8x8_quant)(const int16_t *input, int stride, tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht16x16_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht16x16 vp9_fht16x16_sse2
|
||||
|
||||
void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht4x4_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht4x4 vp9_fht4x4_sse2
|
||||
|
||||
void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
void vp9_fht8x8_sse2(const int16_t *input, tran_low_t *output, int stride, int tx_type);
|
||||
#define vp9_fht8x8 vp9_fht8x8_sse2
|
||||
|
||||
void vp9_filter_by_weight16x16_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight16x16_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight16x16 vp9_filter_by_weight16x16_sse2
|
||||
|
||||
void vp9_filter_by_weight8x8_c(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
void vp9_filter_by_weight8x8_sse2(const uint8_t *src, int src_stride, uint8_t *dst, int dst_stride, int src_weight);
|
||||
#define vp9_filter_by_weight8x8 vp9_filter_by_weight8x8_sse2
|
||||
|
||||
int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx3(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
int vp9_full_search_sadx8(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
RTCD_EXTERN int (*vp9_full_search_sad)(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
|
||||
|
||||
void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
|
||||
void vp9_fwht4x4_sse2(const int16_t *input, tran_low_t *output, int stride);
|
||||
#define vp9_fwht4x4 vp9_fwht4x4_sse2
|
||||
|
||||
void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
void vp9_iht16x16_256_add_sse2(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
|
||||
#define vp9_iht16x16_256_add vp9_iht16x16_256_add_sse2
|
||||
|
||||
void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht4x4_16_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2
|
||||
|
||||
void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
void vp9_iht8x8_64_add_sse2(const tran_low_t *input, uint8_t *dest, int stride, int tx_type);
|
||||
#define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2
|
||||
|
||||
void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_sse2(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
void vp9_quantize_fp_32x32_ssse3(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
RTCD_EXTERN void (*vp9_quantize_fp_32x32)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
|
||||
|
||||
void vp9_scale_and_extend_frame_c(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
void vp9_scale_and_extend_frame_ssse3(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
RTCD_EXTERN void (*vp9_scale_and_extend_frame)(const struct yv12_buffer_config *src, struct yv12_buffer_config *dst);
|
||||
|
||||
void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
void vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
|
||||
#define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2
|
||||
|
||||
void vp9_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
vp9_block_error = vp9_block_error_sse2;
|
||||
if (flags & HAS_AVX2) vp9_block_error = vp9_block_error_avx2;
|
||||
vp9_diamond_search_sad = vp9_diamond_search_sad_c;
|
||||
if (flags & HAS_AVX) vp9_diamond_search_sad = vp9_diamond_search_sad_avx;
|
||||
vp9_fdct8x8_quant = vp9_fdct8x8_quant_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_fdct8x8_quant = vp9_fdct8x8_quant_ssse3;
|
||||
vp9_full_search_sad = vp9_full_search_sad_c;
|
||||
if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
|
||||
if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
|
||||
vp9_quantize_fp = vp9_quantize_fp_sse2;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp = vp9_quantize_fp_ssse3;
|
||||
vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_c;
|
||||
if (flags & HAS_SSSE3) vp9_quantize_fp_32x32 = vp9_quantize_fp_32x32_ssse3;
|
||||
vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_c;
|
||||
if (flags & HAS_SSSE3) vp9_scale_and_extend_frame = vp9_scale_and_extend_frame_ssse3;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
78
media/libvpx/config/win/x64/vpx_config.asm
Normal file
78
media/libvpx/config/win/x64/vpx_config.asm
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
%define ARCH_ARM 0
|
||||
%define ARCH_MIPS 0
|
||||
%define ARCH_X86 0
|
||||
%define ARCH_X86_64 1
|
||||
%define HAVE_NEON 0
|
||||
%define HAVE_NEON_ASM 0
|
||||
%define HAVE_MIPS32 0
|
||||
%define HAVE_DSPR2 0
|
||||
%define HAVE_MSA 0
|
||||
%define HAVE_MIPS64 0
|
||||
%define HAVE_MMX 1
|
||||
%define HAVE_SSE 1
|
||||
%define HAVE_SSE2 1
|
||||
%define HAVE_SSE3 1
|
||||
%define HAVE_SSSE3 1
|
||||
%define HAVE_SSE4_1 1
|
||||
%define HAVE_AVX 1
|
||||
%define HAVE_AVX2 1
|
||||
%define HAVE_VPX_PORTS 1
|
||||
%define HAVE_PTHREAD_H 0
|
||||
%define CONFIG_DEPENDENCY_TRACKING 1
|
||||
%define CONFIG_EXTERNAL_BUILD 1
|
||||
%define CONFIG_INSTALL_DOCS 0
|
||||
%define CONFIG_INSTALL_BINS 1
|
||||
%define CONFIG_INSTALL_LIBS 1
|
||||
%define CONFIG_INSTALL_SRCS 0
|
||||
%define CONFIG_DEBUG 0
|
||||
%define CONFIG_GPROF 0
|
||||
%define CONFIG_GCOV 0
|
||||
%define CONFIG_RVCT 0
|
||||
%define CONFIG_GCC 0
|
||||
%define CONFIG_MSVS 1
|
||||
%define CONFIG_PIC 1
|
||||
%define CONFIG_BIG_ENDIAN 0
|
||||
%define CONFIG_CODEC_SRCS 0
|
||||
%define CONFIG_DEBUG_LIBS 0
|
||||
%define CONFIG_DEQUANT_TOKENS 0
|
||||
%define CONFIG_DC_RECON 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_POSTPROC 1
|
||||
%define CONFIG_VP9_POSTPROC 1
|
||||
%define CONFIG_MULTITHREAD 1
|
||||
%define CONFIG_INTERNAL_STATS 0
|
||||
%define CONFIG_VP8_ENCODER 1
|
||||
%define CONFIG_VP8_DECODER 1
|
||||
%define CONFIG_VP9_ENCODER 1
|
||||
%define CONFIG_VP9_DECODER 1
|
||||
%define CONFIG_VP8 1
|
||||
%define CONFIG_VP9 1
|
||||
%define CONFIG_ENCODERS 1
|
||||
%define CONFIG_DECODERS 1
|
||||
%define CONFIG_STATIC_MSVCRT 0
|
||||
%define CONFIG_SPATIAL_RESAMPLING 1
|
||||
%define CONFIG_REALTIME_ONLY 0
|
||||
%define CONFIG_ONTHEFLY_BITPACKING 0
|
||||
%define CONFIG_ERROR_CONCEALMENT 0
|
||||
%define CONFIG_SHARED 0
|
||||
%define CONFIG_STATIC 1
|
||||
%define CONFIG_SMALL 0
|
||||
%define CONFIG_POSTPROC_VISUALIZER 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
%define CONFIG_UNIT_TESTS 0
|
||||
%define CONFIG_WEBM_IO 1
|
||||
%define CONFIG_LIBYUV 1
|
||||
%define CONFIG_DECODE_PERF_TESTS 0
|
||||
%define CONFIG_ENCODE_PERF_TESTS 0
|
||||
%define CONFIG_MULTI_RES_ENCODING 1
|
||||
%define CONFIG_TEMPORAL_DENOISING 1
|
||||
%define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
%define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
%define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
%define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
%define CONFIG_EXPERIMENTAL 0
|
||||
%define CONFIG_SIZE_LIMIT 1
|
||||
%define CONFIG_SPATIAL_SVC 0
|
||||
%define CONFIG_FP_MB_STATS 0
|
||||
%define CONFIG_EMULATE_HARDWARE 0
|
||||
%define CONFIG_MISC_FIXES 0
|
||||
10
media/libvpx/config/win/x64/vpx_config.c
Normal file
10
media/libvpx/config/win/x64/vpx_config.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* Copyright (c) 2011 The WebM project authors. All Rights Reserved. */
|
||||
/* */
|
||||
/* Use of this source code is governed by a BSD-style license */
|
||||
/* that can be found in the LICENSE file in the root of the source */
|
||||
/* 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. */
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "--target=x86_64-win64-vs12 --enable-external-build --disable-examples --disable-install-docs --disable-unit-tests --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic --enable-postproc --enable-vp9-postproc --as=yasm";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
#define ARCH_MIPS 0
|
||||
#define ARCH_X86 0
|
||||
#define ARCH_X86_64 1
|
||||
#define HAVE_EDSP 0
|
||||
#define HAVE_MEDIA 0
|
||||
#define HAVE_NEON 0
|
||||
#define HAVE_NEON_ASM 0
|
||||
#define HAVE_MIPS32 0
|
||||
|
|
@ -31,27 +29,20 @@
|
|||
#define HAVE_AVX 1
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#ifdef HAVE_STDINT_H
|
||||
#undef HAVE_STDINT_H
|
||||
#endif
|
||||
#define HAVE_STDINT_H 0
|
||||
#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 0
|
||||
#define HAVE_UNISTD_H 0
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
#define CONFIG_EXTERNAL_BUILD 1
|
||||
#define CONFIG_INSTALL_DOCS 0
|
||||
#define CONFIG_INSTALL_BINS 1
|
||||
#define CONFIG_INSTALL_LIBS 1
|
||||
#define CONFIG_INSTALL_SRCS 0
|
||||
#define CONFIG_USE_X86INC 1
|
||||
#define CONFIG_DEBUG 0
|
||||
#define CONFIG_GPROF 0
|
||||
#define CONFIG_GCOV 0
|
||||
#define CONFIG_RVCT 0
|
||||
#define CONFIG_GCC 0
|
||||
#define CONFIG_MSVS 1
|
||||
#define CONFIG_PIC 0
|
||||
#define CONFIG_PIC 1
|
||||
#define CONFIG_BIG_ENDIAN 0
|
||||
#define CONFIG_CODEC_SRCS 0
|
||||
#define CONFIG_DEBUG_LIBS 0
|
||||
|
|
@ -59,7 +50,7 @@
|
|||
#define CONFIG_DC_RECON 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_POSTPROC 1
|
||||
#define CONFIG_VP9_POSTPROC 0
|
||||
#define CONFIG_VP9_POSTPROC 1
|
||||
#define CONFIG_MULTITHREAD 1
|
||||
#define CONFIG_INTERNAL_STATS 0
|
||||
#define CONFIG_VP8_ENCODER 1
|
||||
|
|
@ -80,7 +71,7 @@
|
|||
#define CONFIG_SMALL 0
|
||||
#define CONFIG_POSTPROC_VISUALIZER 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
#define CONFIG_UNIT_TESTS 1
|
||||
#define CONFIG_UNIT_TESTS 0
|
||||
#define CONFIG_WEBM_IO 1
|
||||
#define CONFIG_LIBYUV 1
|
||||
#define CONFIG_DECODE_PERF_TESTS 0
|
||||
|
|
@ -90,11 +81,13 @@
|
|||
#define CONFIG_VP9_TEMPORAL_DENOISING 0
|
||||
#define CONFIG_COEFFICIENT_RANGE_CHECKING 0
|
||||
#define CONFIG_VP9_HIGHBITDEPTH 0
|
||||
#define CONFIG_BETTER_HW_COMPATIBILITY 0
|
||||
#define CONFIG_EXPERIMENTAL 0
|
||||
#define CONFIG_SIZE_LIMIT 1
|
||||
#define CONFIG_SPATIAL_SVC 0
|
||||
#define CONFIG_FP_MB_STATS 0
|
||||
#define CONFIG_EMULATE_HARDWARE 0
|
||||
#define CONFIG_MISC_FIXES 0
|
||||
#define DECODE_WIDTH_LIMIT 8192
|
||||
#define DECODE_HEIGHT_LIMIT 4608
|
||||
#endif /* VPX_CONFIG_H */
|
||||
1207
media/libvpx/config/win/x64/vpx_dsp_rtcd.h
Normal file
1207
media/libvpx/config/win/x64/vpx_dsp_rtcd.h
Normal file
File diff suppressed because it is too large
Load diff
69
media/libvpx/config/win/x64/vpx_scale_rtcd.h
Normal file
69
media/libvpx/config/win/x64/vpx_scale_rtcd.h
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
#ifndef VPX_SCALE_RTCD_H_
|
||||
#define VPX_SCALE_RTCD_H_
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
struct yv12_buffer_config;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void vp8_horizontal_line_2_1_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_2_1_scale vp8_horizontal_line_2_1_scale_c
|
||||
|
||||
void vp8_horizontal_line_5_3_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_5_3_scale vp8_horizontal_line_5_3_scale_c
|
||||
|
||||
void vp8_horizontal_line_5_4_scale_c(const unsigned char *source, unsigned int source_width, unsigned char *dest, unsigned int dest_width);
|
||||
#define vp8_horizontal_line_5_4_scale vp8_horizontal_line_5_4_scale_c
|
||||
|
||||
void vp8_vertical_band_2_1_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_2_1_scale vp8_vertical_band_2_1_scale_c
|
||||
|
||||
void vp8_vertical_band_2_1_scale_i_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_2_1_scale_i vp8_vertical_band_2_1_scale_i_c
|
||||
|
||||
void vp8_vertical_band_5_3_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_5_3_scale vp8_vertical_band_5_3_scale_c
|
||||
|
||||
void vp8_vertical_band_5_4_scale_c(unsigned char *source, unsigned int src_pitch, unsigned char *dest, unsigned int dest_pitch, unsigned int dest_width);
|
||||
#define vp8_vertical_band_5_4_scale vp8_vertical_band_5_4_scale_c
|
||||
|
||||
void vp8_yv12_copy_frame_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vp8_yv12_copy_frame vp8_yv12_copy_frame_c
|
||||
|
||||
void vp8_yv12_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vp8_yv12_extend_frame_borders vp8_yv12_extend_frame_borders_c
|
||||
|
||||
void vpx_extend_frame_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_borders vpx_extend_frame_borders_c
|
||||
|
||||
void vpx_extend_frame_inner_borders_c(struct yv12_buffer_config *ybf);
|
||||
#define vpx_extend_frame_inner_borders vpx_extend_frame_inner_borders_c
|
||||
|
||||
void vpx_yv12_copy_y_c(const struct yv12_buffer_config *src_ybc, struct yv12_buffer_config *dst_ybc);
|
||||
#define vpx_yv12_copy_y vpx_yv12_copy_y_c
|
||||
|
||||
void vpx_scale_rtcd(void);
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From: Jacek Caban <jacek@codeweavers.com>
|
||||
Don't use pthread for libvpx in mingw builds.
|
||||
|
||||
|
||||
diff --git a/media/libvpx/vpx_config_x86-win32-gcc.h b/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
index 5bc3efb..e60f84d 100644
|
||||
--- a/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
+++ b/media/libvpx/vpx_config_x86-win32-gcc.h
|
||||
@@ -32,7 +32,8 @@
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
-#define HAVE_PTHREAD_H 1
|
||||
+#undef HAVE_PTHREAD_H
|
||||
+#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
diff --git a/media/libvpx/vpx_config_x86_64-win64-gcc.h b/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
index 4ff4339..b056a0e 100644
|
||||
--- a/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
+++ b/media/libvpx/vpx_config_x86_64-win64-gcc.h
|
||||
@@ -32,7 +32,8 @@
|
||||
#define HAVE_AVX2 1
|
||||
#define HAVE_VPX_PORTS 1
|
||||
#define HAVE_STDINT_H 1
|
||||
-#define HAVE_PTHREAD_H 1
|
||||
+#undef HAVE_PTHREAD_H
|
||||
+#define HAVE_PTHREAD_H 0
|
||||
#define HAVE_SYS_MMAN_H 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define CONFIG_DEPENDENCY_TRACKING 1
|
||||
274
media/libvpx/generate_sources_mozbuild.sh
Normal file
274
media/libvpx/generate_sources_mozbuild.sh
Normal file
|
|
@ -0,0 +1,274 @@
|
|||
#!/bin/bash -e
|
||||
#
|
||||
# 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.
|
||||
|
||||
# Modified from chromium/src/third_party/libvpx/generate_gni.sh
|
||||
|
||||
# This script is used to generate sources.mozbuild and files in the
|
||||
# config/platform directories needed to build libvpx.
|
||||
# Every time libvpx source code is updated just run this script.
|
||||
#
|
||||
# Usage:
|
||||
# $ ./generate_sources_mozbuild.sh
|
||||
|
||||
export LC_ALL=C
|
||||
BASE_DIR=$(pwd)
|
||||
LIBVPX_SRC_DIR="libvpx"
|
||||
LIBVPX_CONFIG_DIR="config"
|
||||
|
||||
# Print license header.
|
||||
# $1 - Output base name
|
||||
function write_license {
|
||||
echo "# This file is generated. Do not edit." >> $1
|
||||
echo "" >> $1
|
||||
}
|
||||
|
||||
# Search for source files with the same basename in vp8, vp9, and vpx_dsp. The
|
||||
# build does not support duplicate file names.
|
||||
function find_duplicates {
|
||||
local readonly duplicate_file_names=$(find \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp \
|
||||
-type f -name \*.c | xargs -I {} basename {} | sort | uniq -d \
|
||||
)
|
||||
|
||||
if [ -n "${duplicate_file_names}" ]; then
|
||||
echo "ERROR: DUPLICATE FILES FOUND"
|
||||
for file in ${duplicate_file_names}; do
|
||||
find \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9 \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp \
|
||||
-name $file
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Generate sources.mozbuild with a list of source files.
|
||||
# $1 - Array name for file list. This is processed with 'declare' below to
|
||||
# regenerate the array locally.
|
||||
# $2 - Variable name.
|
||||
# $3 - Output file.
|
||||
function write_sources {
|
||||
# Convert the first argument back in to an array.
|
||||
declare -a file_list=("${!1}")
|
||||
|
||||
echo " '$2': [" >> "$3"
|
||||
for f in $file_list
|
||||
do
|
||||
echo " 'libvpx/$f'," >> "$3"
|
||||
done
|
||||
echo "]," >> "$3"
|
||||
}
|
||||
|
||||
# Convert a list of source files into sources.mozbuild.
|
||||
# $1 - Input file.
|
||||
# $2 - Output prefix.
|
||||
function convert_srcs_to_project_files {
|
||||
# Do the following here:
|
||||
# 1. Filter .c, .h, .s, .S and .asm files.
|
||||
# 3. Convert .asm.s to .asm because moz.build will do the conversion.
|
||||
|
||||
local source_list=$(grep -E '(\.c|\.h|\.S|\.s|\.asm)$' $1)
|
||||
|
||||
# Remove vpx_config.c.
|
||||
source_list=$(echo "$source_list" | grep -v 'vpx_config\.c')
|
||||
|
||||
# The actual ARM files end in .asm. We have rules to translate them to .S
|
||||
source_list=$(echo "$source_list" | sed s/\.asm\.s$/.asm/)
|
||||
|
||||
# Exports - everything in vpx, vpx_mem, vpx_ports, vpx_scale
|
||||
local exports_list=$(echo "$source_list" | \
|
||||
egrep '^(vpx|vpx_mem|vpx_ports|vpx_scale)/.*h$')
|
||||
# but not anything in one level down, like 'internal'
|
||||
exports_list=$(echo "$exports_list" | egrep -v '/(internal|src)/')
|
||||
# or any of the other internal-ish header files.
|
||||
exports_list=$(echo "$exports_list" | egrep -v '/(emmintrin_compat.h|mem_.*|msvc.h|vpx_once.h)$')
|
||||
|
||||
# Remove these files from the main list.
|
||||
source_list=$(comm -23 <(echo "$source_list") <(echo "$exports_list"))
|
||||
|
||||
# Write a single file that includes all source files for all archs.
|
||||
local c_sources=$(echo "$source_list" | egrep '.(asm|c)$')
|
||||
local exports_sources=$(echo "$exports_list" | egrep '.h$')
|
||||
|
||||
write_sources exports_sources ${2}_EXPORTS "$BASE_DIR/sources.mozbuild"
|
||||
write_sources c_sources ${2}_SOURCES "$BASE_DIR/sources.mozbuild"
|
||||
}
|
||||
|
||||
# Clean files from previous make.
|
||||
function make_clean {
|
||||
make clean > /dev/null
|
||||
rm -f libvpx_srcs.txt
|
||||
}
|
||||
|
||||
# Print the configuration.
|
||||
# $1 - Header file directory.
|
||||
function print_config {
|
||||
$BASE_DIR/lint_config.sh -p \
|
||||
-h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \
|
||||
-a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm
|
||||
}
|
||||
|
||||
# Generate *_rtcd.h files.
|
||||
# $1 - Header file directory.
|
||||
# $2 - Architecture.
|
||||
# $3 - Optional - any additional arguments to pass through.
|
||||
function gen_rtcd_header {
|
||||
echo "Generate $LIBVPX_CONFIG_DIR/$1/*_rtcd.h files."
|
||||
|
||||
rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
$BASE_DIR/lint_config.sh -p \
|
||||
-h $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.h \
|
||||
-a $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_config.asm \
|
||||
-o $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vp8_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp8/common/rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp8_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vp9_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vp9/common/vp9_rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vp9_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vpx_scale_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_scale/vpx_scale_rtcd.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_scale_rtcd.h
|
||||
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/build/make/rtcd.pl \
|
||||
--arch=$2 \
|
||||
--sym=vpx_dsp_rtcd $DISABLE_AVX $3 \
|
||||
--config=$BASE_DIR/$TEMP_DIR/libvpx.config \
|
||||
$BASE_DIR/$LIBVPX_SRC_DIR/vpx_dsp/vpx_dsp_rtcd_defs.pl \
|
||||
> $BASE_DIR/$LIBVPX_CONFIG_DIR/$1/vpx_dsp_rtcd.h
|
||||
|
||||
rm -rf $BASE_DIR/$TEMP_DIR/libvpx.config
|
||||
}
|
||||
|
||||
# Generate Config files. "--enable-external-build" must be set to skip
|
||||
# detection of capabilities on specific targets.
|
||||
# $1 - Header file directory.
|
||||
# $2 - Config command line.
|
||||
function gen_config_files {
|
||||
./configure $2 > /dev/null
|
||||
|
||||
# Disable HAVE_UNISTD_H.
|
||||
( echo '/HAVE_UNISTD_H'; echo 'd' ; echo 'w' ; echo 'q' ) | ed -s vpx_config.h
|
||||
|
||||
local ASM_CONV=ads2gas.pl
|
||||
|
||||
# Generate vpx_config.asm.
|
||||
if [[ "$1" == *x64* ]] || [[ "$1" == *ia32* ]]; then
|
||||
egrep "#define [A-Z0-9_]+ [01]" vpx_config.h | awk '{print "%define " $2 " " $3}' > vpx_config.asm
|
||||
else
|
||||
egrep "#define [A-Z0-9_]+ [01]" vpx_config.h | awk '{print $2 " EQU " $3}' | perl $BASE_DIR/$LIBVPX_SRC_DIR/build/make/$ASM_CONV > vpx_config.asm
|
||||
fi
|
||||
|
||||
cp vpx_config.* $BASE_DIR/$LIBVPX_CONFIG_DIR/$1
|
||||
make_clean
|
||||
rm -rf vpx_config.*
|
||||
}
|
||||
|
||||
find_duplicates
|
||||
|
||||
echo "Create temporary directory."
|
||||
TEMP_DIR="$LIBVPX_SRC_DIR.temp"
|
||||
rm -rf $TEMP_DIR
|
||||
cp -R $LIBVPX_SRC_DIR $TEMP_DIR
|
||||
cd $TEMP_DIR
|
||||
|
||||
echo "Generate config files."
|
||||
all_platforms="--enable-external-build --disable-examples --disable-install-docs --disable-unit-tests"
|
||||
all_platforms="${all_platforms} --enable-multi-res-encoding --size-limit=8192x4608 --enable-pic"
|
||||
x86_platforms="--enable-postproc --enable-vp9-postproc --as=yasm"
|
||||
arm_platforms="--enable-runtime-cpu-detect --enable-realtime-only"
|
||||
gen_config_files linux/x64 "--target=x86_64-linux-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files linux/ia32 "--target=x86-linux-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files mac/x64 "--target=x86_64-darwin9-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files mac/ia32 "--target=x86-darwin9-gcc ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files win/x64 "--target=x86_64-win64-vs12 ${all_platforms} ${x86_platforms}"
|
||||
gen_config_files win/ia32 "--target=x86-win32-gcc ${all_platforms} ${x86_platforms}"
|
||||
|
||||
gen_config_files linux/arm "--target=armv7-linux-gcc ${all_platforms} ${arm_platforms}"
|
||||
|
||||
gen_config_files generic "--target=generic-gnu ${all_platforms}"
|
||||
|
||||
echo "Remove temporary directory."
|
||||
cd $BASE_DIR
|
||||
rm -rf $TEMP_DIR
|
||||
|
||||
echo "Create temporary directory."
|
||||
TEMP_DIR="$LIBVPX_SRC_DIR.temp"
|
||||
rm -rf $TEMP_DIR
|
||||
cp -R $LIBVPX_SRC_DIR $TEMP_DIR
|
||||
cd $TEMP_DIR
|
||||
|
||||
gen_rtcd_header linux/x64 x86_64
|
||||
gen_rtcd_header linux/ia32 x86
|
||||
gen_rtcd_header mac/x64 x86_64
|
||||
gen_rtcd_header mac/ia32 x86
|
||||
gen_rtcd_header win/x64 x86_64
|
||||
gen_rtcd_header win/ia32 x86
|
||||
|
||||
gen_rtcd_header linux/arm armv7
|
||||
|
||||
gen_rtcd_header generic generic
|
||||
|
||||
echo "Prepare Makefile."
|
||||
./configure --target=generic-gnu > /dev/null
|
||||
make_clean
|
||||
|
||||
# Remove existing source files.
|
||||
rm -rf $BASE_DIR/sources.mozbuild
|
||||
write_license $BASE_DIR/sources.mozbuild
|
||||
echo "files = {" >> $BASE_DIR/sources.mozbuild
|
||||
|
||||
echo "Generate X86_64 source list."
|
||||
config=$(print_config linux/x64)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt X64
|
||||
|
||||
# Copy vpx_version.h once. The file is the same for all platforms.
|
||||
cp vpx_version.h $BASE_DIR/$LIBVPX_CONFIG_DIR
|
||||
|
||||
echo "Generate IA32 source list."
|
||||
config=$(print_config linux/ia32)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt IA32
|
||||
|
||||
echo "Generate ARM source list."
|
||||
config=$(print_config linux/arm)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt ARM
|
||||
|
||||
echo "Generate generic source list."
|
||||
config=$(print_config generic)
|
||||
make_clean
|
||||
make libvpx_srcs.txt target=libs $config > /dev/null
|
||||
convert_srcs_to_project_files libvpx_srcs.txt GENERIC
|
||||
|
||||
echo "}" >> $BASE_DIR/sources.mozbuild
|
||||
|
||||
echo "Remove temporary directory."
|
||||
cd $BASE_DIR
|
||||
rm -rf $TEMP_DIR
|
||||
|
||||
cd $BASE_DIR/$LIBVPX_SRC_DIR
|
||||
|
||||
cd $BASE_DIR
|
||||
|
|
@ -5,42 +5,40 @@ Bug 1263384: validate input frames against configured resolution in vp8 r=rillia
|
|||
|
||||
MozReview-Commit-ID: BxDCnJe0mzs
|
||||
|
||||
diff --git a/media/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -916,21 +916,30 @@ static vpx_codec_err_t vp8e_encode(vpx_c
|
||||
/* vp8 use 10,000,000 ticks/second as time stamp */
|
||||
dst_time_stamp = pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
dst_end_time_stamp = (pts + duration) * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
diff --git a/media/libvpx/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -855,20 +855,29 @@ static vpx_codec_err_t vp8e_encode(vpx_codec_alg_priv_t *ctx,
|
||||
dst_time_stamp =
|
||||
pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
dst_end_time_stamp = (pts + duration) * 10000000 * ctx->cfg.g_timebase.num /
|
||||
ctx->cfg.g_timebase.den;
|
||||
|
||||
if (img != NULL) {
|
||||
res = image2yuvconfig(img, &sd);
|
||||
|
||||
if (img != NULL)
|
||||
{
|
||||
res = image2yuvconfig(img, &sd);
|
||||
|
||||
- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
||||
- &sd, dst_time_stamp, dst_end_time_stamp))
|
||||
- {
|
||||
- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||
- res = update_error_state(ctx, &cpi->common.error);
|
||||
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
||||
+ /* from vp8_encoder.h for g_w/g_h:
|
||||
+ "Note that the frames passed as input to the encoder must have this resolution"
|
||||
+ */
|
||||
+ ctx->base.err_detail = "Invalid input frame resolution";
|
||||
+ res = VPX_CODEC_INVALID_PARAM;
|
||||
+ } else {
|
||||
+
|
||||
+ if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
||||
+ &sd, dst_time_stamp, dst_end_time_stamp))
|
||||
+ {
|
||||
+ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||
+ res = update_error_state(ctx, &cpi->common.error);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* reset for next frame */
|
||||
ctx->next_frame_flag = 0;
|
||||
}
|
||||
|
||||
cx_data = ctx->cx_data;
|
||||
cx_data_sz = ctx->cx_data_sz;
|
||||
- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags, &sd,
|
||||
- dst_time_stamp, dst_end_time_stamp)) {
|
||||
- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||
- res = update_error_state(ctx, &cpi->common.error);
|
||||
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
||||
+ /* from vpx_encoder.h for g_w/g_h:
|
||||
+ "Note that the frames passed as input to the encoder must have this
|
||||
+ resolution"
|
||||
+ */
|
||||
+ ctx->base.err_detail = "Invalid input frame resolution";
|
||||
+ res = VPX_CODEC_INVALID_PARAM;
|
||||
+ } else {
|
||||
+ if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
||||
+ &sd, dst_time_stamp, dst_end_time_stamp)) {
|
||||
+ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi;
|
||||
+ res = update_error_state(ctx, &cpi->common.error);
|
||||
+ }
|
||||
}
|
||||
|
||||
/* reset for next frame */
|
||||
ctx->next_frame_flag = 0;
|
||||
}
|
||||
|
||||
cx_data = ctx->cx_data;
|
||||
cx_data_sz = ctx->cx_data_sz;
|
||||
|
|
|
|||
|
|
@ -3,63 +3,42 @@
|
|||
# Parent 87841f3bfc9d99a37e31cd43b2e2d03c325af84f
|
||||
Bug 1315288: Add input checks for VP9 r=rillian
|
||||
|
||||
diff --git a/media/libvpx/vp8/vp8_cx_iface.c b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
--- a/media/libvpx/vp8/vp8_cx_iface.c
|
||||
+++ b/media/libvpx/vp8/vp8_cx_iface.c
|
||||
@@ -917,17 +917,17 @@ static vpx_codec_err_t vp8e_encode(vpx_c
|
||||
dst_time_stamp = pts * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
dst_end_time_stamp = (pts + duration) * 10000000 * ctx->cfg.g_timebase.num / ctx->cfg.g_timebase.den;
|
||||
|
||||
if (img != NULL)
|
||||
{
|
||||
res = image2yuvconfig(img, &sd);
|
||||
|
||||
if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
||||
- /* from vp8_encoder.h for g_w/g_h:
|
||||
+ /* from vpx_encoder.h for g_w/g_h:
|
||||
"Note that the frames passed as input to the encoder must have this resolution"
|
||||
*/
|
||||
ctx->base.err_detail = "Invalid input frame resolution";
|
||||
res = VPX_CODEC_INVALID_PARAM;
|
||||
} else {
|
||||
if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags,
|
||||
&sd, dst_time_stamp, dst_end_time_stamp))
|
||||
{
|
||||
diff --git a/media/libvpx/vp9/vp9_cx_iface.c b/media/libvpx/vp9/vp9_cx_iface.c
|
||||
--- a/media/libvpx/vp9/vp9_cx_iface.c
|
||||
+++ b/media/libvpx/vp9/vp9_cx_iface.c
|
||||
@@ -989,21 +989,29 @@ static vpx_codec_err_t encoder_encode(vp
|
||||
|
||||
diff --git a/media/libvpx/libvpx/vp9/vp9_cx_iface.c b/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
--- a/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
+++ b/media/libvpx/libvpx/vp9/vp9_cx_iface.c
|
||||
@@ -1129,21 +1129,30 @@ static vpx_codec_err_t encoder_encode(vpx_codec_alg_priv_t *ctx,
|
||||
unsigned char *cx_data;
|
||||
|
||||
// Set up internal flags
|
||||
if (ctx->base.init_flags & VPX_CODEC_USE_PSNR)
|
||||
cpi->b_calculate_psnr = 1;
|
||||
|
||||
if (ctx->base.init_flags & VPX_CODEC_USE_PSNR) cpi->b_calculate_psnr = 1;
|
||||
|
||||
if (img != NULL) {
|
||||
res = image2yuvconfig(img, &sd);
|
||||
|
||||
|
||||
- // Store the original flags in to the frame buffer. Will extract the
|
||||
- // key frame flag when we actually encode this frame.
|
||||
- if (vp9_receive_raw_frame(cpi, flags | ctx->next_frame_flags,
|
||||
- &sd, dst_time_stamp, dst_end_time_stamp)) {
|
||||
- if (vp9_receive_raw_frame(cpi, flags | ctx->next_frame_flags, &sd,
|
||||
- dst_time_stamp, dst_end_time_stamp)) {
|
||||
- res = update_error_state(ctx, &cpi->common.error);
|
||||
+ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) {
|
||||
+ /* from vpx_encoder.h for g_w/g_h:
|
||||
+ "Note that the frames passed as input to the encoder must have this resolution"
|
||||
+ "Note that the frames passed as input to the encoder must have this
|
||||
+ resolution"
|
||||
+ */
|
||||
+ ctx->base.err_detail = "Invalid input frame resolution";
|
||||
+ res = VPX_CODEC_INVALID_PARAM;
|
||||
+ } else {
|
||||
+ // Store the original flags in to the frame buffer. Will extract the
|
||||
+ // key frame flag when we actually encode this frame.
|
||||
+ if (vp9_receive_raw_frame(cpi, flags | ctx->next_frame_flags,
|
||||
+ &sd, dst_time_stamp, dst_end_time_stamp)) {
|
||||
+ if (vp9_receive_raw_frame(cpi, flags | ctx->next_frame_flags, &sd,
|
||||
+ dst_time_stamp, dst_end_time_stamp)) {
|
||||
+ res = update_error_state(ctx, &cpi->common.error);
|
||||
+ }
|
||||
}
|
||||
ctx->next_frame_flags = 0;
|
||||
}
|
||||
|
||||
|
||||
cx_data = ctx->cx_data;
|
||||
cx_data_sz = ctx->cx_data_sz;
|
||||
|
||||
|
||||
/* Any pending invisible frames? */
|
||||
|
|
|
|||
91
media/libvpx/libvpx/.clang-format
Normal file
91
media/libvpx/libvpx/.clang-format
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
---
|
||||
Language: Cpp
|
||||
# BasedOnStyle: Google
|
||||
# Generated with clang-format 3.8.1
|
||||
AccessModifierOffset: -1
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignConsecutiveAssignments: false
|
||||
AlignConsecutiveDeclarations: false
|
||||
AlignEscapedNewlinesLeft: true
|
||||
AlignOperands: true
|
||||
AlignTrailingComments: true
|
||||
AllowAllParametersOfDeclarationOnNextLine: true
|
||||
AllowShortBlocksOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: true
|
||||
AllowShortFunctionsOnASingleLine: All
|
||||
AllowShortIfStatementsOnASingleLine: true
|
||||
AllowShortLoopsOnASingleLine: true
|
||||
AlwaysBreakAfterDefinitionReturnType: None
|
||||
AlwaysBreakAfterReturnType: None
|
||||
AlwaysBreakBeforeMultilineStrings: true
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
BraceWrapping:
|
||||
AfterClass: false
|
||||
AfterControlStatement: false
|
||||
AfterEnum: false
|
||||
AfterFunction: false
|
||||
AfterNamespace: false
|
||||
AfterObjCDeclaration: false
|
||||
AfterStruct: false
|
||||
AfterUnion: false
|
||||
BeforeCatch: false
|
||||
BeforeElse: false
|
||||
IndentBraces: false
|
||||
BreakBeforeBinaryOperators: None
|
||||
BreakBeforeBraces: Attach
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakConstructorInitializersBeforeComma: false
|
||||
ColumnLimit: 80
|
||||
CommentPragmas: '^ IWYU pragma:'
|
||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||
ConstructorInitializerIndentWidth: 4
|
||||
ContinuationIndentWidth: 4
|
||||
Cpp11BracedListStyle: false
|
||||
DerivePointerAlignment: false
|
||||
DisableFormat: false
|
||||
ExperimentalAutoDetectBinPacking: false
|
||||
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
|
||||
IncludeCategories:
|
||||
- Regex: '^<.*\.h>'
|
||||
Priority: 1
|
||||
- Regex: '^<.*'
|
||||
Priority: 2
|
||||
- Regex: '.*'
|
||||
Priority: 3
|
||||
IndentCaseLabels: true
|
||||
IndentWidth: 2
|
||||
IndentWrappedFunctionNames: false
|
||||
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||
MacroBlockBegin: ''
|
||||
MacroBlockEnd: ''
|
||||
MaxEmptyLinesToKeep: 1
|
||||
NamespaceIndentation: None
|
||||
ObjCBlockIndentWidth: 2
|
||||
ObjCSpaceAfterProperty: false
|
||||
ObjCSpaceBeforeProtocolList: false
|
||||
PenaltyBreakBeforeFirstCallParameter: 1
|
||||
PenaltyBreakComment: 300
|
||||
PenaltyBreakFirstLessLess: 120
|
||||
PenaltyBreakString: 1000
|
||||
PenaltyExcessCharacter: 1000000
|
||||
PenaltyReturnTypeOnItsOwnLine: 200
|
||||
PointerAlignment: Right
|
||||
ReflowComments: true
|
||||
SortIncludes: false
|
||||
SpaceAfterCStyleCast: false
|
||||
SpaceBeforeAssignmentOperators: true
|
||||
SpaceBeforeParens: ControlStatements
|
||||
SpaceInEmptyParentheses: false
|
||||
SpacesBeforeTrailingComments: 2
|
||||
SpacesInAngles: false
|
||||
SpacesInContainerLiterals: true
|
||||
SpacesInCStyleCastParentheses: false
|
||||
SpacesInParentheses: false
|
||||
SpacesInSquareBrackets: false
|
||||
Standard: Auto
|
||||
TabWidth: 8
|
||||
UseTab: Never
|
||||
...
|
||||
|
||||
37
media/libvpx/libvpx/.mailmap
Normal file
37
media/libvpx/libvpx/.mailmap
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
Adrian Grange <agrange@google.com>
|
||||
Aℓex Converse <aconverse@google.com>
|
||||
Aℓex Converse <aconverse@google.com> <alex.converse@gmail.com>
|
||||
Alexis Ballier <aballier@gentoo.org> <alexis.ballier@gmail.com>
|
||||
Alpha Lam <hclam@google.com> <hclam@chromium.org>
|
||||
Daniele Castagna <dcastagna@chromium.org> <dcastagna@google.com>
|
||||
Deb Mukherjee <debargha@google.com>
|
||||
Erik Niemeyer <erik.a.niemeyer@intel.com> <erik.a.niemeyer@gmail.com>
|
||||
Guillaume Martres <gmartres@google.com> <smarter3@gmail.com>
|
||||
Hangyu Kuang <hkuang@google.com>
|
||||
Hui Su <huisu@google.com>
|
||||
Jacky Chen <jackychen@google.com>
|
||||
Jim Bankoski <jimbankoski@google.com>
|
||||
Johann Koenig <johannkoenig@google.com>
|
||||
Johann Koenig <johannkoenig@google.com> <johann.koenig@duck.com>
|
||||
Johann Koenig <johannkoenig@google.com> <johann.koenig@gmail.com>
|
||||
Johann Koenig <johannkoenig@google.com> <johannkoenig@chromium.org>
|
||||
John Koleszar <jkoleszar@google.com>
|
||||
Joshua Litt <joshualitt@google.com> <joshualitt@chromium.org>
|
||||
Marco Paniconi <marpan@google.com>
|
||||
Marco Paniconi <marpan@google.com> <marpan@chromium.org>
|
||||
Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Paul Wilkins <paulwilkins@google.com>
|
||||
Peter de Rivaz <peter.derivaz@gmail.com>
|
||||
Peter de Rivaz <peter.derivaz@gmail.com> <peter.derivaz@argondesign.com>
|
||||
Ralph Giles <giles@xiph.org> <giles@entropywave.com>
|
||||
Ralph Giles <giles@xiph.org> <giles@mozilla.com>
|
||||
Ronald S. Bultje <rsbultje@gmail.com> <rbultje@google.com>
|
||||
Sami Pietilä <samipietila@google.com>
|
||||
Tamar Levy <tamar.levy@intel.com>
|
||||
Tamar Levy <tamar.levy@intel.com> <levytamar82@gmail.com>
|
||||
Tero Rintaluoma <teror@google.com> <tero.rintaluoma@on2.com>
|
||||
Timothy B. Terriberry <tterribe@xiph.org> <tterriberry@mozilla.com>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
Tom Finegan <tomfinegan@google.com> <tomfinegan@chromium.org>
|
||||
Yaowu Xu <yaowu@google.com> <yaowu@xuyaowu.com>
|
||||
Yaowu Xu <yaowu@google.com> <Yaowu Xu>
|
||||
157
media/libvpx/libvpx/AUTHORS
Normal file
157
media/libvpx/libvpx/AUTHORS
Normal file
|
|
@ -0,0 +1,157 @@
|
|||
# This file is automatically generated from the git commit history
|
||||
# by tools/gen_authors.sh.
|
||||
|
||||
Aaron Watry <awatry@gmail.com>
|
||||
Abo Talib Mahfoodh <ab.mahfoodh@gmail.com>
|
||||
Adam Xu <adam@xuyaowu.com>
|
||||
Adrian Grange <agrange@google.com>
|
||||
Aℓex Converse <aconverse@google.com>
|
||||
Ahmad Sharif <asharif@google.com>
|
||||
Aleksey Vasenev <margtu-fivt@ya.ru>
|
||||
Alexander Potapenko <glider@google.com>
|
||||
Alexander Voronov <avoronov@graphics.cs.msu.ru>
|
||||
Alexis Ballier <aballier@gentoo.org>
|
||||
Alok Ahuja <waveletcoeff@gmail.com>
|
||||
Alpha Lam <hclam@google.com>
|
||||
A.Mahfoodh <ab.mahfoodh@gmail.com>
|
||||
Ami Fischman <fischman@chromium.org>
|
||||
Andoni Morales Alastruey <ylatuya@gmail.com>
|
||||
Andres Mejia <mcitadel@gmail.com>
|
||||
Andrew Russell <anrussell@google.com>
|
||||
Angie Chiang <angiebird@google.com>
|
||||
Aron Rosenberg <arosenberg@logitech.com>
|
||||
Attila Nagy <attilanagy@google.com>
|
||||
Brion Vibber <bvibber@wikimedia.org>
|
||||
changjun.yang <changjun.yang@intel.com>
|
||||
Charles 'Buck' Krasic <ckrasic@google.com>
|
||||
chm <chm@rock-chips.com>
|
||||
Christian Duvivier <cduvivier@google.com>
|
||||
Daniele Castagna <dcastagna@chromium.org>
|
||||
Daniel Kang <ddkang@google.com>
|
||||
Deb Mukherjee <debargha@google.com>
|
||||
Deepa K G <deepa.kg@ittiam.com>
|
||||
Dim Temp <dimtemp0@gmail.com>
|
||||
Dmitry Kovalev <dkovalev@google.com>
|
||||
Dragan Mrdjan <dmrdjan@mips.com>
|
||||
Ed Baker <edward.baker@intel.com>
|
||||
Ehsan Akhgari <ehsan.akhgari@gmail.com>
|
||||
Erik Niemeyer <erik.a.niemeyer@intel.com>
|
||||
Fabio Pedretti <fabio.ped@libero.it>
|
||||
Frank Galligan <fgalligan@google.com>
|
||||
Fredrik Söderquist <fs@opera.com>
|
||||
Fritz Koenig <frkoenig@google.com>
|
||||
Gabriel Marin <gmx@chromium.org>
|
||||
Gaute Strokkenes <gaute.strokkenes@broadcom.com>
|
||||
Geza Lore <gezalore@gmail.com>
|
||||
Ghislain MARY <ghislainmary2@gmail.com>
|
||||
Giuseppe Scrivano <gscrivano@gnu.org>
|
||||
Gordana Cmiljanovic <gordana.cmiljanovic@imgtec.com>
|
||||
Guillaume Martres <gmartres@google.com>
|
||||
Guillermo Ballester Valor <gbvalor@gmail.com>
|
||||
Hangyu Kuang <hkuang@google.com>
|
||||
Hanno Böck <hanno@hboeck.de>
|
||||
Henrik Lundin <hlundin@google.com>
|
||||
Hui Su <huisu@google.com>
|
||||
Ivan Krasin <krasin@chromium.org>
|
||||
Ivan Maltz <ivanmaltz@google.com>
|
||||
Jacek Caban <cjacek@gmail.com>
|
||||
Jacky Chen <jackychen@google.com>
|
||||
James Berry <jamesberry@google.com>
|
||||
James Yu <james.yu@linaro.org>
|
||||
James Zern <jzern@google.com>
|
||||
Jan Gerber <j@mailb.org>
|
||||
Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
Janne Salonen <jsalonen@google.com>
|
||||
Jean-Yves Avenard <jyavenard@mozilla.com>
|
||||
Jeff Faust <jfaust@google.com>
|
||||
Jeff Muizelaar <jmuizelaar@mozilla.com>
|
||||
Jeff Petkau <jpet@chromium.org>
|
||||
Jerome Jiang <jianj@google.com>
|
||||
Jia Jia <jia.jia@linaro.org>
|
||||
Jian Zhou <zhoujian@google.com>
|
||||
Jim Bankoski <jimbankoski@google.com>
|
||||
Jingning Han <jingning@google.com>
|
||||
Joey Parrish <joeyparrish@google.com>
|
||||
Johann Koenig <johannkoenig@google.com>
|
||||
John Koleszar <jkoleszar@google.com>
|
||||
Johnny Klonaris <google@jawknee.com>
|
||||
John Stark <jhnstrk@gmail.com>
|
||||
Joshua Bleecher Snyder <josh@treelinelabs.com>
|
||||
Joshua Litt <joshualitt@google.com>
|
||||
Julia Robson <juliamrobson@gmail.com>
|
||||
Justin Clift <justin@salasaga.org>
|
||||
Justin Lebar <justin.lebar@gmail.com>
|
||||
Kaustubh Raste <kaustubh.raste@imgtec.com>
|
||||
KO Myung-Hun <komh@chollian.net>
|
||||
Lawrence Velázquez <larryv@macports.org>
|
||||
Linfeng Zhang <linfengz@google.com>
|
||||
Lou Quillio <louquillio@google.com>
|
||||
Luca Barbato <lu_zero@gentoo.org>
|
||||
Makoto Kato <makoto.kt@gmail.com>
|
||||
Mans Rullgard <mans@mansr.com>
|
||||
Marco Paniconi <marpan@google.com>
|
||||
Mark Mentovai <mark@chromium.org>
|
||||
Martin Ettl <ettl.martin78@googlemail.com>
|
||||
Martin Storsjo <martin@martin.st>
|
||||
Matthew Heaney <matthewjheaney@chromium.org>
|
||||
Michael Kohler <michaelkohler@live.com>
|
||||
Mike Frysinger <vapier@chromium.org>
|
||||
Mike Hommey <mhommey@mozilla.com>
|
||||
Mikhal Shemer <mikhal@google.com>
|
||||
Min Chen <chenm003@gmail.com>
|
||||
Minghai Shang <minghai@google.com>
|
||||
Min Ye <yeemmi@google.com>
|
||||
Morton Jonuschat <yabawock@gmail.com>
|
||||
Nathan E. Egge <negge@mozilla.com>
|
||||
Nico Weber <thakis@chromium.org>
|
||||
Parag Salasakar <img.mips1@gmail.com>
|
||||
Pascal Massimino <pascal.massimino@gmail.com>
|
||||
Patrik Westin <patrik.westin@gmail.com>
|
||||
Paul Wilkins <paulwilkins@google.com>
|
||||
Pavol Rusnak <stick@gk2.sk>
|
||||
Paweł Hajdan <phajdan@google.com>
|
||||
Pengchong Jin <pengchong@google.com>
|
||||
Peter Boström <pbos@google.com>
|
||||
Peter de Rivaz <peter.derivaz@gmail.com>
|
||||
Philip Jägenstedt <philipj@opera.com>
|
||||
Priit Laes <plaes@plaes.org>
|
||||
Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
|
||||
Rafaël Carré <funman@videolan.org>
|
||||
Ralph Giles <giles@xiph.org>
|
||||
Ranjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com>
|
||||
Rob Bradford <rob@linux.intel.com>
|
||||
Ronald S. Bultje <rsbultje@gmail.com>
|
||||
Rui Ueyama <ruiu@google.com>
|
||||
Sami Pietilä <samipietila@google.com>
|
||||
Sarah Parker <sarahparker@google.com>
|
||||
Sasi Inguva <isasi@google.com>
|
||||
Scott Graham <scottmg@chromium.org>
|
||||
Scott LaVarnway <slavarnway@google.com>
|
||||
Sean McGovern <gseanmcg@gmail.com>
|
||||
Sergey Kolomenkin <kolomenkin@gmail.com>
|
||||
Sergey Ulanov <sergeyu@chromium.org>
|
||||
Shimon Doodkin <helpmepro1@gmail.com>
|
||||
Shunyao Li <shunyaoli@google.com>
|
||||
Stefan Holmer <holmer@google.com>
|
||||
Suman Sunkara <sunkaras@google.com>
|
||||
Taekhyun Kim <takim@nvidia.com>
|
||||
Takanori MATSUURA <t.matsuu@gmail.com>
|
||||
Tamar Levy <tamar.levy@intel.com>
|
||||
Tao Bai <michaelbai@chromium.org>
|
||||
Tero Rintaluoma <teror@google.com>
|
||||
Thijs Vermeir <thijsvermeir@gmail.com>
|
||||
Tim Kopp <tkopp@google.com>
|
||||
Timothy B. Terriberry <tterribe@xiph.org>
|
||||
Tom Finegan <tomfinegan@google.com>
|
||||
Tristan Matthews <le.businessman@gmail.com>
|
||||
Urvang Joshi <urvang@google.com>
|
||||
Vignesh Venkatasubramanian <vigneshv@google.com>
|
||||
Yaowu Xu <yaowu@google.com>
|
||||
Yi Luo <luoyi@google.com>
|
||||
Yongzhe Wang <yongzhe@google.com>
|
||||
Yunqing Wang <yunqingwang@google.com>
|
||||
Yury Gitman <yuryg@google.com>
|
||||
Zoe Liu <zoeliu@google.com>
|
||||
Google Inc.
|
||||
The Mozilla Foundation
|
||||
The Xiph.Org Foundation
|
||||
670
media/libvpx/libvpx/CHANGELOG
Normal file
670
media/libvpx/libvpx/CHANGELOG
Normal file
|
|
@ -0,0 +1,670 @@
|
|||
2017-01-09 v1.6.1 "Long Tailed Duck"
|
||||
This release improves upon the VP9 encoder and speeds up the encoding and
|
||||
decoding processes.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI compatible with 1.6.0.
|
||||
|
||||
- Enhancements:
|
||||
Faster VP9 encoding and decoding.
|
||||
High bit depth builds now provide similar speed for 8 bit encode and decode
|
||||
for x86 targets. Other platforms and higher bit depth improvements are in
|
||||
progress.
|
||||
|
||||
- Bug Fixes:
|
||||
A variety of fuzzing issues.
|
||||
|
||||
2016-07-20 v1.6.0 "Khaki Campbell Duck"
|
||||
This release improves upon the VP9 encoder and speeds up the encoding and
|
||||
decoding processes.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with 1.5.0 due to a new 'color_range' enum
|
||||
in vpx_image and some minor changes to the VP8_COMP structure.
|
||||
|
||||
The default key frame interval for VP9 has changed from 128 to 9999.
|
||||
|
||||
- Enhancement:
|
||||
A core focus has been performance for low end Intel processors. SSSE3
|
||||
instructions such as 'pshufb' have been avoided and instructions have been
|
||||
reordered to better accommodate the more constrained pipelines.
|
||||
|
||||
As a result, devices based on Celeron processors have seen substantial
|
||||
decoding improvements. From Indian Runner Duck to Javan Whistling Duck,
|
||||
decoding speed improved between 10 and 30%. Between Javan Whistling Duck
|
||||
and Khaki Campbell Duck, it improved another 10 to 15%.
|
||||
|
||||
While Celeron benefited most, Core-i5 also improved 5% and 10% between the
|
||||
respective releases.
|
||||
|
||||
Realtime performance for WebRTC for both speed and quality has received a
|
||||
lot of attention.
|
||||
|
||||
- Bug Fixes:
|
||||
A number of fuzzing issues, found variously by Mozilla, Chromium and others,
|
||||
have been fixed and we strongly recommend updating.
|
||||
|
||||
2015-11-09 v1.5.0 "Javan Whistling Duck"
|
||||
This release improves upon the VP9 encoder and speeds up the encoding and
|
||||
decoding processes.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with 1.4.0. It drops deprecated VP8
|
||||
controls and adds a variety of VP9 controls for testing.
|
||||
|
||||
The vpxenc utility now prefers VP9 by default.
|
||||
|
||||
- Enhancements:
|
||||
Faster VP9 encoding and decoding
|
||||
Smaller library size by combining functions used by VP8 and VP9
|
||||
|
||||
- Bug Fixes:
|
||||
A variety of fuzzing issues
|
||||
|
||||
2015-04-03 v1.4.0 "Indian Runner Duck"
|
||||
This release includes significant improvements to the VP9 codec.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with 1.3.0. It drops the compatibility
|
||||
layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
|
||||
controls for VP9.
|
||||
|
||||
- Enhancements:
|
||||
Faster VP9 encoding and decoding
|
||||
Multithreaded VP9 decoding (tile and frame-based)
|
||||
Multithreaded VP9 encoding - on by default
|
||||
YUV 4:2:2 and 4:4:4 support in VP9
|
||||
10 and 12bit support in VP9
|
||||
64bit ARM support by replacing ARM assembly with intrinsics
|
||||
|
||||
- Bug Fixes:
|
||||
Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
|
||||
files.
|
||||
|
||||
- Known Issues:
|
||||
Frame Parallel decoding fails for segmented and non-420 files.
|
||||
|
||||
2013-11-15 v1.3.0 "Forest"
|
||||
This release introduces the VP9 codec in a backward-compatible way.
|
||||
All existing users of VP8 can continue to use the library without
|
||||
modification. However, some VP8 options do not map to VP9 in the same manner.
|
||||
|
||||
The VP9 encoder in this release is not feature complete. Users interested in
|
||||
the encoder are advised to use the git master branch and discuss issues on
|
||||
libvpx mailing lists.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this document
|
||||
for that release.
|
||||
|
||||
- Enhancements:
|
||||
Get rid of bashisms in the main build scripts
|
||||
Added usage info on command line options
|
||||
Add lossless compression mode
|
||||
Dll build of libvpx
|
||||
Add additional Mac OS X targets: 10.7, 10.8 and 10.9 (darwin11-13)
|
||||
Add option to disable documentation
|
||||
configure: add --enable-external-build support
|
||||
make: support V=1 as short form of verbose=yes
|
||||
configure: support mingw-w64
|
||||
configure: support hardfloat armv7 CHOSTS
|
||||
configure: add support for android x86
|
||||
Add estimated completion time to vpxenc
|
||||
Don't exit on decode errors in vpxenc
|
||||
vpxenc: support scaling prior to encoding
|
||||
vpxdec: support scaling output
|
||||
vpxenc: improve progress indicators with --skip
|
||||
msvs: Don't link to winmm.lib
|
||||
Add a new script for producing vcxproj files
|
||||
Produce Visual Studio 10 and 11 project files
|
||||
Produce Windows Phone project files
|
||||
msvs-build: use msbuild for vs >= 2005
|
||||
configure: default configure log to config.log
|
||||
Add encoding option --static-thresh
|
||||
|
||||
- Speed:
|
||||
Miscellaneous speed optimizations for VP8 and VP9.
|
||||
|
||||
- Quality:
|
||||
In general, quality is consistent with the Eider release.
|
||||
|
||||
- Bug Fixes:
|
||||
This release represents approximately a year of engineering effort,
|
||||
and contains multiple bug fixes. Please refer to git history for details.
|
||||
|
||||
|
||||
2012-12-21 v1.2.0
|
||||
This release acts as a checkpoint for a large amount of internal refactoring
|
||||
and testing. It also contains a number of small bugfixes, so all users are
|
||||
encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
- Enhancements:
|
||||
VP8 optimizations for MIPS dspr2
|
||||
vpxenc: add -quiet option
|
||||
|
||||
- Speed:
|
||||
Encoder and decoder speed is consistent with the Eider release.
|
||||
|
||||
- Quality:
|
||||
In general, quality is consistent with the Eider release.
|
||||
|
||||
Minor tweaks to ARNR filtering
|
||||
Minor improvements to real time encoding with multiple temporal layers
|
||||
|
||||
- Bug Fixes:
|
||||
Fixes multithreaded encoder race condition in loopfilter
|
||||
Fixes multi-resolution threaded encoding
|
||||
Fix potential encoder dead-lock after picture resize
|
||||
|
||||
|
||||
2012-05-09 v1.1.0 "Eider"
|
||||
This introduces a number of enhancements, mostly focused on real-time
|
||||
encoding. In addition, it fixes a decoder bug (first introduced in
|
||||
Duclair) so all users of that release are encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI and API compatible with Duclair (v1.0.0). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
This release introduces a new temporal denoiser, controlled by the
|
||||
VP8E_SET_NOISE_SENSITIVITY control. The temporal denoiser does not
|
||||
currently take a strength parameter, so the control is effectively
|
||||
a boolean - zero (off) or non-zero (on). For compatibility with
|
||||
existing applications, the values accepted are the same as those
|
||||
for the spatial denoiser (0-6). The temporal denoiser is enabled
|
||||
by default, and the older spatial denoiser may be restored by
|
||||
configuring with --disable-temporal-denoising. The temporal denoiser
|
||||
is more computationally intensive than the spatial one.
|
||||
|
||||
This release removes support for a legacy, decode only API that was
|
||||
supported, but deprecated, at the initial release of libvpx
|
||||
(v0.9.0). This is not expected to have any impact. If you are
|
||||
impacted, you can apply a reversion to commit 2bf8fb58 locally.
|
||||
Please update to the latest libvpx API if you are affected.
|
||||
|
||||
- Enhancements:
|
||||
Adds a motion compensated temporal denoiser to the encoder, which
|
||||
gives higher quality than the older spatial denoiser. (See above
|
||||
for notes on upgrading).
|
||||
|
||||
In addition, support for new compilers and platforms were added,
|
||||
including:
|
||||
improved support for XCode
|
||||
Android x86 NDK build
|
||||
OS/2 support
|
||||
SunCC support
|
||||
|
||||
Changing resolution with vpx_codec_enc_config_set() is now
|
||||
supported. Previously, reinitializing the codec was required to
|
||||
change the input resolution.
|
||||
|
||||
The vpxenc application has initial support for producing multiple
|
||||
encodes from the same input in one call. Resizing is not yet
|
||||
supported, but varying other codec parameters is. Use -- to
|
||||
delineate output streams. Options persist from one stream to the
|
||||
next.
|
||||
|
||||
Also, the vpxenc application will now use a keyframe interval of
|
||||
5 seconds by default. Use the --kf-max-dist option to override.
|
||||
|
||||
- Speed:
|
||||
Decoder performance improved 2.5% versus Duclair. Encoder speed is
|
||||
consistent with Duclair for most material. Two pass encoding of
|
||||
slideshow-like material will see significant improvements.
|
||||
|
||||
Large realtime encoding speed gains at a small quality expense are
|
||||
possible by configuring the on-the-fly bitpacking experiment with
|
||||
--enable-onthefly-bitpacking. Realtime encoder can be up to 13%
|
||||
faster (ARM) depending on the number of threads and bitrate
|
||||
settings. This technique sees constant gain over the 5-16 speed
|
||||
range. For VC style input the loss seen is up to 0.2dB. See commit
|
||||
52cf4dca for further details.
|
||||
|
||||
- Quality:
|
||||
On the whole, quality is consistent with the Duclair release. Some
|
||||
tweaks:
|
||||
|
||||
Reduced blockiness in easy sections by applying a penalty to
|
||||
intra modes.
|
||||
|
||||
Improved quality of static sections (like slideshows) with
|
||||
two pass encoding.
|
||||
|
||||
Improved keyframe sizing with multiple temporal layers
|
||||
|
||||
- Bug Fixes:
|
||||
Corrected alt-ref contribution to frame rate for visible updates
|
||||
to the alt-ref buffer. This affected applications making manual
|
||||
usage of the frame reference flags, or temporal layers.
|
||||
|
||||
Additional constraints were added to disable multi-frame quality
|
||||
enhancement (MFQE) in sections of the frame where there is motion.
|
||||
(#392)
|
||||
|
||||
Fixed corruption issues when vpx_codec_enc_config_set() was called
|
||||
with spatial resampling enabled.
|
||||
|
||||
Fixed a decoder error introduced in Duclair where the segmentation
|
||||
map was not being reinitialized on keyframes (#378)
|
||||
|
||||
|
||||
2012-01-27 v1.0.0 "Duclair"
|
||||
Our fourth named release, focused on performance and features related to
|
||||
real-time encoding. It also fixes a decoder crash bug introduced in
|
||||
v0.9.7, so all users of that release are encouraged to upgrade.
|
||||
|
||||
- Upgrading:
|
||||
This release is ABI incompatible with prior releases of libvpx, so the
|
||||
"major" version number has been bumped to 1. You must recompile your
|
||||
applications against the latest version of the libvpx headers. The
|
||||
API remains compatible, and this should not require code changes in most
|
||||
applications.
|
||||
|
||||
- Enhancements:
|
||||
This release introduces several substantial new features to the encoder,
|
||||
of particular interest to real time streaming applications.
|
||||
|
||||
Temporal scalability allows the encoder to produce a stream that can
|
||||
be decimated to different frame rates, with independent rate targetting
|
||||
for each substream.
|
||||
|
||||
Multiframe quality enhancement postprocessing can make visual quality
|
||||
more consistent in the presence of frames that are substantially
|
||||
different quality than the surrounding frames, as in the temporal
|
||||
scalability case and in some forced keyframe scenarios.
|
||||
|
||||
Multiple-resolution encoding support allows the encoding of the
|
||||
same content at different resolutions faster than encoding them
|
||||
separately.
|
||||
|
||||
- Speed:
|
||||
Optimization targets for this release included the decoder and the real-
|
||||
time modes of the encoder. Decoder speed on x86 has improved 10.5% with
|
||||
this release. Encoder improvements followed a curve where speeds 1-3
|
||||
improved 4.0%-1.5%, speeds 4-8 improved <1%, and speeds 9-16 improved
|
||||
1.5% to 10.5%, respectively. "Best" mode speed is consistent with the
|
||||
Cayuga release.
|
||||
|
||||
- Quality:
|
||||
Encoder quality in the single stream case is consistent with the Cayuga
|
||||
release.
|
||||
|
||||
- Bug Fixes:
|
||||
This release fixes an OOB read decoder crash bug present in v0.9.7
|
||||
related to the clamping of motion vectors in SPLITMV blocks. This
|
||||
behavior could be triggered by corrupt input or by starting
|
||||
decoding from a P-frame.
|
||||
|
||||
|
||||
2011-08-15 v0.9.7-p1 "Cayuga" patch 1
|
||||
This is an incremental bugfix release against Cayuga. All users of that
|
||||
release are strongly encouraged to upgrade.
|
||||
|
||||
- Fix potential OOB reads (cdae03a)
|
||||
|
||||
An unbounded out of bounds read was discovered when the
|
||||
decoder was requested to perform error concealment (new in
|
||||
Cayuga) given a frame with corrupt partition sizes.
|
||||
|
||||
A bounded out of bounds read was discovered affecting all
|
||||
versions of libvpx. Given an multipartition input frame that
|
||||
is truncated between the mode/mv partition and the first
|
||||
residiual paritition (in the block of partition offsets), up
|
||||
to 3 extra bytes could have been read from the source buffer.
|
||||
The code will not take any action regardless of the contents
|
||||
of these undefined bytes, as the truncated buffer is detected
|
||||
immediately following the read based on the calculated
|
||||
starting position of the coefficient partition.
|
||||
|
||||
- Fix potential error concealment crash when the very first frame
|
||||
is missing or corrupt (a609be5)
|
||||
|
||||
- Fix significant artifacts in error concealment (a4c2211, 99d870a)
|
||||
|
||||
- Revert 1-pass CBR rate control changes (e961317)
|
||||
Further testing showed this change produced undesirable visual
|
||||
artifacts, rolling back for now.
|
||||
|
||||
|
||||
2011-08-02 v0.9.7 "Cayuga"
|
||||
Our third named release, focused on a faster, higher quality, encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release is backwards compatible with Aylesbury (v0.9.5) and
|
||||
Bali (v0.9.6). Users of older releases should refer to the Upgrading
|
||||
notes in this document for that release.
|
||||
|
||||
- Enhancements:
|
||||
Stereo 3D format support for vpxenc
|
||||
Runtime detection of available processor cores.
|
||||
Allow specifying --end-usage by enum name
|
||||
vpxdec: test for frame corruption
|
||||
vpxenc: add quantizer histogram display
|
||||
vpxenc: add rate histogram display
|
||||
Set VPX_FRAME_IS_DROPPABLE
|
||||
update configure for ios sdk 4.3
|
||||
Avoid text relocations in ARM vp8 decoder
|
||||
Generate a vpx.pc file for pkg-config.
|
||||
New ways of passing encoded data between encoder and decoder.
|
||||
|
||||
- Speed:
|
||||
This release includes across-the-board speed improvements to the
|
||||
encoder. On x86, these measure at approximately 11.5% in Best mode,
|
||||
21.5% in Good mode (speed 0), and 22.5% in Realtime mode (speed 6).
|
||||
On ARM Cortex A9 with Neon extensions, real-time encoding of video
|
||||
telephony content is 35% faster than Bali on single core and 48%
|
||||
faster on multi-core. On the NVidia Tegra2 platform, real time
|
||||
encoding is 40% faster than Bali.
|
||||
|
||||
Decoder speed was not a priority for this release, but improved
|
||||
approximately 8.4% on x86.
|
||||
|
||||
Reduce motion vector search on alt-ref frame.
|
||||
Encoder loopfilter running in its own thread
|
||||
Reworked loopfilter to precalculate more parameters
|
||||
SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}().
|
||||
Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3.
|
||||
Removed redundant checks
|
||||
Reduced structure sizes
|
||||
utilize preload in ARMv6 MC/LPF/Copy routines
|
||||
ARM optimized quantization, dfct, variance, subtract
|
||||
Increase chrow row alignment to 16 bytes.
|
||||
disable trellis optimization for first pass
|
||||
Write SSSE3 sub-pixel filter function
|
||||
Improve SSE2 half-pixel filter funtions
|
||||
Add vp8_sub_pixel_variance16x8_ssse3 function
|
||||
Reduce unnecessary distortion computation
|
||||
Use diamond search to replace full search
|
||||
Preload reference area in sub-pixel motion search (real-time mode)
|
||||
|
||||
- Quality:
|
||||
This release focused primarily on one-pass use cases, including
|
||||
video conferencing. Low latency data rate control was significantly
|
||||
improved, improving streamability over bandwidth constrained links.
|
||||
Added support for error concealment, allowing frames to maintain
|
||||
visual quality in the presence of substantial packet loss.
|
||||
|
||||
Add rc_max_intra_bitrate_pct control
|
||||
Limit size of initial keyframe in one-pass.
|
||||
Improve framerate adaptation
|
||||
Improved 1-pass CBR rate control
|
||||
Improved KF insertion after fades to still.
|
||||
Improved key frame detection.
|
||||
Improved activity masking (lower PSNR impact for same SSIM boost)
|
||||
Improved interaction between GF and ARFs
|
||||
Adding error-concealment to the decoder.
|
||||
Adding support for independent partitions
|
||||
Adjusted rate-distortion constants
|
||||
|
||||
|
||||
- Bug Fixes:
|
||||
Removed firstpass motion map
|
||||
Fix parallel make install
|
||||
Fix multithreaded encoding for 1 MB wide frame
|
||||
Fixed iwalsh_neon build problems with RVDS4.1
|
||||
Fix semaphore emulation, spin-wait intrinsics on Windows
|
||||
Fix build with xcode4 and simplify GLOBAL.
|
||||
Mark ARM asm objects as allowing a non-executable stack.
|
||||
Fix vpxenc encoding incorrect webm file header on big endian
|
||||
|
||||
|
||||
2011-03-07 v0.9.6 "Bali"
|
||||
Our second named release, focused on a faster, higher quality, encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release is backwards compatible with Aylesbury (v0.9.5). Users
|
||||
of older releases should refer to the Upgrading notes in this
|
||||
document for that release.
|
||||
|
||||
- Enhancements:
|
||||
vpxenc --psnr shows a summary when encode completes
|
||||
--tune=ssim option to enable activity masking
|
||||
improved postproc visualizations for development
|
||||
updated support for Apple iOS to SDK 4.2
|
||||
query decoder to determine which reference frames were updated
|
||||
implemented error tracking in the decoder
|
||||
fix pipe support on windows
|
||||
|
||||
- Speed:
|
||||
Primary focus was on good quality mode, speed 0. Average improvement
|
||||
on x86 about 40%, up to 100% on user-generated content at that speed.
|
||||
Best quality mode speed improved 35%, and realtime speed 10-20%. This
|
||||
release also saw significant improvement in realtime encoding speed
|
||||
on ARM platforms.
|
||||
|
||||
Improved encoder threading
|
||||
Dont pick encoder filter level when loopfilter is disabled.
|
||||
Avoid double copying of key frames into alt and golden buffer
|
||||
FDCT optimizations.
|
||||
x86 sse2 temporal filter
|
||||
SSSE3 version of fast quantizer
|
||||
vp8_rd_pick_best_mbsegmentation code restructure
|
||||
Adjusted breakout RD for SPLITMV
|
||||
Changed segmentation check order
|
||||
Improved rd_pick_intra4x4block
|
||||
Adds armv6 optimized variance calculation
|
||||
ARMv6 optimized sad16x16
|
||||
ARMv6 optimized half pixel variance calculations
|
||||
Full search SAD function optimization in SSE4.1
|
||||
Improve MV prediction accuracy to achieve performance gain
|
||||
Improve MV prediction in vp8_pick_inter_mode() for speed>3
|
||||
|
||||
- Quality:
|
||||
Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
|
||||
also includes support for "activity masking," which greatly improves
|
||||
SSIM at the expense of PSNR. For now, this feature is available with
|
||||
the --tune=ssim option. Further experimentation in this area
|
||||
is ongoing. This release also introduces a new rate control mode
|
||||
called "CQ," which changes the allocation of bits within a clip to
|
||||
the sections where they will have the most visual impact.
|
||||
|
||||
Tuning for the more exact quantizer.
|
||||
Relax rate control for last few frames
|
||||
CQ Mode
|
||||
Limit key frame quantizer for forced key frames.
|
||||
KF/GF Pulsing
|
||||
Add simple version of activity masking.
|
||||
make rdmult adaptive for intra in quantizer RDO
|
||||
cap the best quantizer for 2nd order DC
|
||||
change the threshold of DC check for encode breakout
|
||||
|
||||
- Bug Fixes:
|
||||
Fix crash on Sparc Solaris.
|
||||
Fix counter of fixed keyframe distance
|
||||
ARNR filter pointer update bug fix
|
||||
Fixed use of motion percentage in KF/GF group calc
|
||||
Changed condition for using RD in Intra Mode
|
||||
Fix encoder real-time only configuration.
|
||||
Fix ARM encoder crash with multiple token partitions
|
||||
Fixed bug first cluster timecode of webm file is wrong.
|
||||
Fixed various encoder bugs with odd-sized images
|
||||
vp8e_get_preview fixed when spatial resampling enabled
|
||||
quantizer: fix assertion in fast quantizer path
|
||||
Allocate source buffers to be multiples of 16
|
||||
Fix for manual Golden frame frequency
|
||||
Fix drastic undershoot in long form content
|
||||
|
||||
|
||||
2010-10-28 v0.9.5 "Aylesbury"
|
||||
Our first named release, focused on a faster decoder, and a better encoder.
|
||||
|
||||
- Upgrading:
|
||||
This release incorporates backwards-incompatible changes to the
|
||||
ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
|
||||
|
||||
vpxdec
|
||||
* the -q (quiet) option has been removed, and replaced with
|
||||
-v (verbose). the output is quiet by default. Use -v to see
|
||||
the version number of the binary.
|
||||
|
||||
* The default behavior is now to write output to a single file
|
||||
instead of individual frames. The -y option has been removed.
|
||||
Y4M output is the default.
|
||||
|
||||
* For raw I420/YV12 output instead of Y4M, the --i420 or --yv12
|
||||
options must be specified.
|
||||
|
||||
$ ivfdec -o OUTPUT INPUT
|
||||
$ vpxdec --i420 -o OUTPUT INPUT
|
||||
|
||||
* If an output file is not specified, the default is to write
|
||||
Y4M to stdout. This makes piping more natural.
|
||||
|
||||
$ ivfdec -y -o - INPUT | ...
|
||||
$ vpxdec INPUT | ...
|
||||
|
||||
* The output file has additional flexibility for formatting the
|
||||
filename. It supports escape characters for constructing a
|
||||
filename from the width, height, and sequence number. This
|
||||
replaces the -p option. To get the equivalent:
|
||||
|
||||
$ ivfdec -p frame INPUT
|
||||
$ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
|
||||
|
||||
vpxenc
|
||||
* The output file must be specified with -o, rather than as the
|
||||
last argument.
|
||||
|
||||
$ ivfenc <options> INPUT OUTPUT
|
||||
$ vpxenc <options> -o OUTPUT INPUT
|
||||
|
||||
* The output defaults to webm. To get IVF output, use the --ivf
|
||||
option.
|
||||
|
||||
$ ivfenc <options> INPUT OUTPUT.ivf
|
||||
$ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
|
||||
|
||||
|
||||
- Enhancements:
|
||||
ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
|
||||
vpxdec supports .webm input
|
||||
vpxdec writes .y4m by default
|
||||
vpxenc writes .webm output by default
|
||||
vpxenc --psnr now shows the average/overall PSNR at the end
|
||||
ARM platforms now support runtime cpu detection
|
||||
vpxdec visualizations added for motion vectors, block modes, references
|
||||
vpxdec now silent by default
|
||||
vpxdec --progress shows frame-by-frame timing information
|
||||
vpxenc supports the distinction between --fps and --timebase
|
||||
NASM is now a supported assembler
|
||||
configure: enable PIC for shared libs by default
|
||||
configure: add --enable-small
|
||||
configure: support for ppc32-linux-gcc
|
||||
configure: support for sparc-solaris-gcc
|
||||
|
||||
- Bugs:
|
||||
Improve handling of invalid frames
|
||||
Fix valgrind errors in the NEON loop filters.
|
||||
Fix loopfilter delta zero transitions
|
||||
Fix valgrind errors in vp8_sixtap_predict8x4_armv6().
|
||||
Build fixes for darwin-icc
|
||||
|
||||
- Speed:
|
||||
20-40% (average 28%) improvement in libvpx decoder speed,
|
||||
including:
|
||||
Rewrite vp8_short_walsh4x4_sse2()
|
||||
Optimizations on the loopfilters.
|
||||
Miscellaneous improvements for Atom
|
||||
Add 4-tap version of 2nd-pass ARMv6 MC filter.
|
||||
Improved multithread utilization
|
||||
Better instruction choices on x86
|
||||
reorder data to use wider instructions
|
||||
Update NEON wide idcts
|
||||
Make block access to frame buffer sequential
|
||||
Improved subset block search
|
||||
Bilinear subpixel optimizations for ssse3.
|
||||
Decrease memory footprint
|
||||
|
||||
Encoder speed improvements (percentage gain not measured):
|
||||
Skip unnecessary search of identical frames
|
||||
Add SSE2 subtract functions
|
||||
Improve bounds checking in vp8_diamond_search_sadx4()
|
||||
Added vp8_fast_quantize_b_sse2
|
||||
|
||||
- Quality:
|
||||
Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
|
||||
encoding mode, and up to 60% improvement on very noisy, still
|
||||
or slow moving source video
|
||||
|
||||
Motion compensated temporal filter for Alt-Ref Noise Reduction
|
||||
Improved use of trellis quantization on 2nd order Y blocks
|
||||
Tune effect of motion on KF/GF boost in two pass
|
||||
Allow coefficient optimization for good quality speed 0.
|
||||
Improved control of active min quantizer for two pass.
|
||||
Enable ARFs for non-lagged compress
|
||||
|
||||
2010-09-02 v0.9.2
|
||||
- Enhancements:
|
||||
Disable frame dropping by default
|
||||
Improved multithreaded performance
|
||||
Improved Force Key Frame Behaviour
|
||||
Increased rate control buffer level precision
|
||||
Fix bug in 1st pass motion compensation
|
||||
ivfenc: correct fixed kf interval, --disable-kf
|
||||
- Speed:
|
||||
Changed above and left context data layout
|
||||
Rework idct calling structure.
|
||||
Removed unnecessary MB_MODE_INFO copies
|
||||
x86: SSSE3 sixtap prediction
|
||||
Reworked IDCT to include reconstruction (add) step
|
||||
Swap alt/gold/new/last frame buffer ptrs instead of copying.
|
||||
Improve SSE2 loopfilter functions
|
||||
Change bitreader to use a larger window.
|
||||
Avoid loopfilter reinitialization when possible
|
||||
- Quality:
|
||||
Normalize quantizer's zero bin and rounding factors
|
||||
Add trellis quantization.
|
||||
Make the quantizer exact.
|
||||
Updates to ARNR filtering algorithm
|
||||
Fix breakout thresh computation for golden & AltRef frames
|
||||
Redo the forward 4x4 dct
|
||||
Improve the accuracy of forward walsh-hadamard transform
|
||||
Further adjustment of RD behaviour with Q and Zbin.
|
||||
- Build System:
|
||||
Allow linking of libs built with MinGW to MSVC
|
||||
Fix target auto-detection on mingw32
|
||||
Allow --cpu= to work for x86.
|
||||
configure: pass original arguments through to make dist
|
||||
Fix builds without runtime CPU detection
|
||||
msvs: fix install of codec sources
|
||||
msvs: Change devenv.com command line for better msys support
|
||||
msvs: Add vs9 targets.
|
||||
Add x86_64-linux-icc target
|
||||
- Bugs:
|
||||
Potential crashes on older MinGW builds
|
||||
Fix two-pass framrate for Y4M input.
|
||||
Fixed simple loop filter, other crashes on ARM v6
|
||||
arm: fix missing dependency with --enable-shared
|
||||
configure: support directories containing .o
|
||||
Replace pinsrw (SSE) with MMX instructions
|
||||
apple: include proper mach primatives
|
||||
Fixed rate control bug with long key frame interval.
|
||||
Fix DSO link errors on x86-64 when not using a version script
|
||||
Fixed buffer selection for UV in AltRef filtering
|
||||
|
||||
|
||||
2010-06-17 v0.9.1
|
||||
- Enhancements:
|
||||
* ivfenc/ivfdec now support YUV4MPEG2 input and pipe I/O
|
||||
* Speed optimizations
|
||||
- Bugfixes:
|
||||
* Rate control
|
||||
* Prevent out-of-bounds accesses on invalid data
|
||||
- Build system updates:
|
||||
* Detect toolchain to be used automatically for native builds
|
||||
* Support building shared libraries
|
||||
* Better autotools emulation (--prefix, --libdir, DESTDIR)
|
||||
- Updated LICENSE
|
||||
* http://webmproject.blogspot.com/2010/06/changes-to-webm-open-source-license.html
|
||||
|
||||
|
||||
2010-05-18 v0.9.0
|
||||
- Initial open source release. Welcome to WebM and VP8!
|
||||
|
||||
150
media/libvpx/libvpx/README
Normal file
150
media/libvpx/libvpx/README
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
README - 9 January 2017
|
||||
|
||||
Welcome to the WebM VP8/VP9 Codec SDK!
|
||||
|
||||
COMPILING THE APPLICATIONS/LIBRARIES:
|
||||
The build system used is similar to autotools. Building generally consists of
|
||||
"configuring" with your desired build options, then using GNU make to build
|
||||
the application.
|
||||
|
||||
1. Prerequisites
|
||||
|
||||
* All x86 targets require the Yasm[1] assembler be installed.
|
||||
* All Windows builds require that Cygwin[2] be installed.
|
||||
* Building the documentation requires Doxygen[3]. If you do not
|
||||
have this package, the install-docs option will be disabled.
|
||||
* Downloading the data for the unit tests requires curl[4] and sha1sum.
|
||||
sha1sum is provided via the GNU coreutils, installed by default on
|
||||
many *nix platforms, as well as MinGW and Cygwin. If coreutils is not
|
||||
available, a compatible version of sha1sum can be built from
|
||||
source[5]. These requirements are optional if not running the unit
|
||||
tests.
|
||||
|
||||
[1]: http://www.tortall.net/projects/yasm
|
||||
[2]: http://www.cygwin.com
|
||||
[3]: http://www.doxygen.org
|
||||
[4]: http://curl.haxx.se
|
||||
[5]: http://www.microbrew.org/tools/md5sha1sum/
|
||||
|
||||
2. Out-of-tree builds
|
||||
Out of tree builds are a supported method of building the application. For
|
||||
an out of tree build, the source tree is kept separate from the object
|
||||
files produced during compilation. For instance:
|
||||
|
||||
$ mkdir build
|
||||
$ cd build
|
||||
$ ../libvpx/configure <options>
|
||||
$ make
|
||||
|
||||
3. Configuration options
|
||||
The 'configure' script supports a number of options. The --help option can be
|
||||
used to get a list of supported options:
|
||||
$ ../libvpx/configure --help
|
||||
|
||||
4. Cross development
|
||||
For cross development, the most notable option is the --target option. The
|
||||
most up-to-date list of supported targets can be found at the bottom of the
|
||||
--help output of the configure script. As of this writing, the list of
|
||||
available targets is:
|
||||
|
||||
arm64-android-gcc
|
||||
arm64-darwin-gcc
|
||||
arm64-linux-gcc
|
||||
armv7-android-gcc
|
||||
armv7-darwin-gcc
|
||||
armv7-linux-rvct
|
||||
armv7-linux-gcc
|
||||
armv7-none-rvct
|
||||
armv7-win32-vs11
|
||||
armv7-win32-vs12
|
||||
armv7-win32-vs14
|
||||
armv7s-darwin-gcc
|
||||
armv8-linux-gcc
|
||||
mips32-linux-gcc
|
||||
mips64-linux-gcc
|
||||
sparc-solaris-gcc
|
||||
x86-android-gcc
|
||||
x86-darwin8-gcc
|
||||
x86-darwin8-icc
|
||||
x86-darwin9-gcc
|
||||
x86-darwin9-icc
|
||||
x86-darwin10-gcc
|
||||
x86-darwin11-gcc
|
||||
x86-darwin12-gcc
|
||||
x86-darwin13-gcc
|
||||
x86-darwin14-gcc
|
||||
x86-darwin15-gcc
|
||||
x86-iphonesimulator-gcc
|
||||
x86-linux-gcc
|
||||
x86-linux-icc
|
||||
x86-os2-gcc
|
||||
x86-solaris-gcc
|
||||
x86-win32-gcc
|
||||
x86-win32-vs10
|
||||
x86-win32-vs11
|
||||
x86-win32-vs12
|
||||
x86-win32-vs14
|
||||
x86_64-android-gcc
|
||||
x86_64-darwin9-gcc
|
||||
x86_64-darwin10-gcc
|
||||
x86_64-darwin11-gcc
|
||||
x86_64-darwin12-gcc
|
||||
x86_64-darwin13-gcc
|
||||
x86_64-darwin14-gcc
|
||||
x86_64-darwin15-gcc
|
||||
x86_64-iphonesimulator-gcc
|
||||
x86_64-linux-gcc
|
||||
x86_64-linux-icc
|
||||
x86_64-solaris-gcc
|
||||
x86_64-win64-gcc
|
||||
x86_64-win64-vs10
|
||||
x86_64-win64-vs11
|
||||
x86_64-win64-vs12
|
||||
x86_64-win64-vs14
|
||||
generic-gnu
|
||||
|
||||
The generic-gnu target, in conjunction with the CROSS environment variable,
|
||||
can be used to cross compile architectures that aren't explicitly listed, if
|
||||
the toolchain is a cross GNU (gcc/binutils) toolchain. Other POSIX toolchains
|
||||
will likely work as well. For instance, to build using the mipsel-linux-uclibc
|
||||
toolchain, the following command could be used (note, POSIX SH syntax, adapt
|
||||
to your shell as necessary):
|
||||
|
||||
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
|
||||
|
||||
In addition, the executables to be invoked can be overridden by specifying the
|
||||
environment variables: CC, AR, LD, AS, STRIP, NM. Additional flags can be
|
||||
passed to these executables with CFLAGS, LDFLAGS, and ASFLAGS.
|
||||
|
||||
5. Configuration errors
|
||||
If the configuration step fails, the first step is to look in the error log.
|
||||
This defaults to config.log. This should give a good indication of what went
|
||||
wrong. If not, contact us for support.
|
||||
|
||||
VP8/VP9 TEST VECTORS:
|
||||
The test vectors can be downloaded and verified using the build system after
|
||||
running configure. To specify an alternate directory the
|
||||
LIBVPX_TEST_DATA_PATH environment variable can be used.
|
||||
|
||||
$ ./configure --enable-unit-tests
|
||||
$ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
|
||||
|
||||
CODE STYLE:
|
||||
The coding style used by this project is enforced with clang-format using the
|
||||
configuration contained in the .clang-format file in the root of the
|
||||
repository.
|
||||
|
||||
Before pushing changes for review you can format your code with:
|
||||
# Apply clang-format to modified .c, .h and .cc files
|
||||
$ clang-format -i --style=file \
|
||||
$(git diff --name-only --diff-filter=ACMR '*.[hc]' '*.cc')
|
||||
|
||||
Check the .clang-format file for the version used to generate it if there is
|
||||
any difference between your local formatting and the review system.
|
||||
|
||||
See also: http://clang.llvm.org/docs/ClangFormat.html
|
||||
|
||||
SUPPORT
|
||||
This library is an open source project supported by its community. Please
|
||||
email webm-discuss@webmproject.org for help.
|
||||
|
||||
215
media/libvpx/libvpx/args.c
Normal file
215
media/libvpx/libvpx/args.c
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <limits.h>
|
||||
#include "args.h"
|
||||
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vpx_ports/msvc.h"
|
||||
|
||||
#if defined(__GNUC__) && __GNUC__
|
||||
extern void die(const char *fmt, ...) __attribute__((noreturn));
|
||||
#else
|
||||
extern void die(const char *fmt, ...);
|
||||
#endif
|
||||
|
||||
struct arg arg_init(char **argv) {
|
||||
struct arg a;
|
||||
|
||||
a.argv = argv;
|
||||
a.argv_step = 1;
|
||||
a.name = NULL;
|
||||
a.val = NULL;
|
||||
a.def = NULL;
|
||||
return a;
|
||||
}
|
||||
|
||||
int arg_match(struct arg *arg_, const struct arg_def *def, char **argv) {
|
||||
struct arg arg;
|
||||
|
||||
if (!argv[0] || argv[0][0] != '-') return 0;
|
||||
|
||||
arg = arg_init(argv);
|
||||
|
||||
if (def->short_name && strlen(arg.argv[0]) == strlen(def->short_name) + 1 &&
|
||||
!strcmp(arg.argv[0] + 1, def->short_name)) {
|
||||
arg.name = arg.argv[0] + 1;
|
||||
arg.val = def->has_val ? arg.argv[1] : NULL;
|
||||
arg.argv_step = def->has_val ? 2 : 1;
|
||||
} else if (def->long_name) {
|
||||
const size_t name_len = strlen(def->long_name);
|
||||
|
||||
if (strlen(arg.argv[0]) >= name_len + 2 && arg.argv[0][1] == '-' &&
|
||||
!strncmp(arg.argv[0] + 2, def->long_name, name_len) &&
|
||||
(arg.argv[0][name_len + 2] == '=' ||
|
||||
arg.argv[0][name_len + 2] == '\0')) {
|
||||
arg.name = arg.argv[0] + 2;
|
||||
arg.val = arg.name[name_len] == '=' ? arg.name + name_len + 1 : NULL;
|
||||
arg.argv_step = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (arg.name && !arg.val && def->has_val)
|
||||
die("Error: option %s requires argument.\n", arg.name);
|
||||
|
||||
if (arg.name && arg.val && !def->has_val)
|
||||
die("Error: option %s requires no argument.\n", arg.name);
|
||||
|
||||
if (arg.name && (arg.val || !def->has_val)) {
|
||||
arg.def = def;
|
||||
*arg_ = arg;
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *arg_next(struct arg *arg) {
|
||||
if (arg->argv[0]) arg->argv += arg->argv_step;
|
||||
|
||||
return *arg->argv;
|
||||
}
|
||||
|
||||
char **argv_dup(int argc, const char **argv) {
|
||||
char **new_argv = malloc((argc + 1) * sizeof(*argv));
|
||||
|
||||
memcpy(new_argv, argv, argc * sizeof(*argv));
|
||||
new_argv[argc] = NULL;
|
||||
return new_argv;
|
||||
}
|
||||
|
||||
void arg_show_usage(FILE *fp, const struct arg_def *const *defs) {
|
||||
char option_text[40] = { 0 };
|
||||
|
||||
for (; *defs; defs++) {
|
||||
const struct arg_def *def = *defs;
|
||||
char *short_val = def->has_val ? " <arg>" : "";
|
||||
char *long_val = def->has_val ? "=<arg>" : "";
|
||||
|
||||
if (def->short_name && def->long_name) {
|
||||
char *comma = def->has_val ? "," : ", ";
|
||||
|
||||
snprintf(option_text, 37, "-%s%s%s --%s%6s", def->short_name, short_val,
|
||||
comma, def->long_name, long_val);
|
||||
} else if (def->short_name)
|
||||
snprintf(option_text, 37, "-%s%s", def->short_name, short_val);
|
||||
else if (def->long_name)
|
||||
snprintf(option_text, 37, " --%s%s", def->long_name, long_val);
|
||||
|
||||
fprintf(fp, " %-37s\t%s\n", option_text, def->desc);
|
||||
|
||||
if (def->enums) {
|
||||
const struct arg_enum_list *listptr;
|
||||
|
||||
fprintf(fp, " %-37s\t ", "");
|
||||
|
||||
for (listptr = def->enums; listptr->name; listptr++)
|
||||
fprintf(fp, "%s%s", listptr->name, listptr[1].name ? ", " : "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsigned int arg_parse_uint(const struct arg *arg) {
|
||||
uint32_t rawval;
|
||||
char *endptr;
|
||||
|
||||
rawval = (uint32_t)strtoul(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval <= UINT_MAX) return rawval;
|
||||
|
||||
die("Option %s: Value %ld out of range for unsigned int\n", arg->name,
|
||||
rawval);
|
||||
}
|
||||
|
||||
die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int arg_parse_int(const struct arg *arg) {
|
||||
int32_t rawval;
|
||||
char *endptr;
|
||||
|
||||
rawval = (int32_t)strtol(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX) return (int)rawval;
|
||||
|
||||
die("Option %s: Value %ld out of range for signed int\n", arg->name,
|
||||
rawval);
|
||||
}
|
||||
|
||||
die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct vpx_rational {
|
||||
int num; /**< fraction numerator */
|
||||
int den; /**< fraction denominator */
|
||||
};
|
||||
struct vpx_rational arg_parse_rational(const struct arg *arg) {
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
struct vpx_rational rat;
|
||||
|
||||
/* parse numerator */
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '/') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX)
|
||||
rat.num = (int)rawval;
|
||||
else
|
||||
die("Option %s: Value %ld out of range for signed int\n", arg->name,
|
||||
rawval);
|
||||
} else
|
||||
die("Option %s: Expected / at '%c'\n", arg->name, *endptr);
|
||||
|
||||
/* parse denominator */
|
||||
rawval = strtol(endptr + 1, &endptr, 10);
|
||||
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
if (rawval >= INT_MIN && rawval <= INT_MAX)
|
||||
rat.den = (int)rawval;
|
||||
else
|
||||
die("Option %s: Value %ld out of range for signed int\n", arg->name,
|
||||
rawval);
|
||||
} else
|
||||
die("Option %s: Invalid character '%c'\n", arg->name, *endptr);
|
||||
|
||||
return rat;
|
||||
}
|
||||
|
||||
int arg_parse_enum(const struct arg *arg) {
|
||||
const struct arg_enum_list *listptr;
|
||||
long int rawval;
|
||||
char *endptr;
|
||||
|
||||
/* First see if the value can be parsed as a raw value */
|
||||
rawval = strtol(arg->val, &endptr, 10);
|
||||
if (arg->val[0] != '\0' && endptr[0] == '\0') {
|
||||
/* Got a raw value, make sure it's valid */
|
||||
for (listptr = arg->def->enums; listptr->name; listptr++)
|
||||
if (listptr->val == rawval) return (int)rawval;
|
||||
}
|
||||
|
||||
/* Next see if it can be parsed as a string */
|
||||
for (listptr = arg->def->enums; listptr->name; listptr++)
|
||||
if (!strcmp(arg->val, listptr->name)) return listptr->val;
|
||||
|
||||
die("Option %s: Invalid value '%s'\n", arg->name, arg->val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int arg_parse_enum_or_int(const struct arg *arg) {
|
||||
if (arg->def->enums) return arg_parse_enum(arg);
|
||||
return arg_parse_int(arg);
|
||||
}
|
||||
63
media/libvpx/libvpx/args.h
Normal file
63
media/libvpx/libvpx/args.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef ARGS_H_
|
||||
#define ARGS_H_
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct arg {
|
||||
char **argv;
|
||||
const char *name;
|
||||
const char *val;
|
||||
unsigned int argv_step;
|
||||
const struct arg_def *def;
|
||||
};
|
||||
|
||||
struct arg_enum_list {
|
||||
const char *name;
|
||||
int val;
|
||||
};
|
||||
#define ARG_ENUM_LIST_END \
|
||||
{ 0 }
|
||||
|
||||
typedef struct arg_def {
|
||||
const char *short_name;
|
||||
const char *long_name;
|
||||
int has_val;
|
||||
const char *desc;
|
||||
const struct arg_enum_list *enums;
|
||||
} arg_def_t;
|
||||
#define ARG_DEF(s, l, v, d) \
|
||||
{ s, l, v, d, NULL }
|
||||
#define ARG_DEF_ENUM(s, l, v, d, e) \
|
||||
{ s, l, v, d, e }
|
||||
#define ARG_DEF_LIST_END \
|
||||
{ 0 }
|
||||
|
||||
struct arg arg_init(char **argv);
|
||||
int arg_match(struct arg *arg_, const struct arg_def *def, char **argv);
|
||||
const char *arg_next(struct arg *arg);
|
||||
void arg_show_usage(FILE *fp, const struct arg_def *const *defs);
|
||||
char **argv_dup(int argc, const char **argv);
|
||||
|
||||
unsigned int arg_parse_uint(const struct arg *arg);
|
||||
int arg_parse_int(const struct arg *arg);
|
||||
struct vpx_rational arg_parse_rational(const struct arg *arg);
|
||||
int arg_parse_enum(const struct arg *arg);
|
||||
int arg_parse_enum_or_int(const struct arg *arg);
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif // ARGS_H_
|
||||
228
media/libvpx/libvpx/build/make/Android.mk
Normal file
228
media/libvpx/libvpx/build/make/Android.mk
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
##
|
||||
## Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
#
|
||||
# This file is to be used for compiling libvpx for Android using the NDK.
|
||||
# In an Android project place a libvpx checkout in the jni directory.
|
||||
# Run the configure script from the jni directory. Base libvpx
|
||||
# encoder/decoder configuration will look similar to:
|
||||
# ./libvpx/configure --target=armv7-android-gcc --disable-examples \
|
||||
# --sdk-path=/opt/android-ndk-r6b/
|
||||
#
|
||||
# When targeting Android, realtime-only is enabled by default. This can
|
||||
# be overridden by adding the command line flag:
|
||||
# --disable-realtime-only
|
||||
#
|
||||
# This will create .mk files that contain variables that contain the
|
||||
# source files to compile.
|
||||
#
|
||||
# Place an Android.mk file in the jni directory that references the
|
||||
# Android.mk file in the libvpx directory:
|
||||
# LOCAL_PATH := $(call my-dir)
|
||||
# include $(CLEAR_VARS)
|
||||
# include jni/libvpx/build/make/Android.mk
|
||||
#
|
||||
# By default libvpx will detect at runtime the existance of NEON extension.
|
||||
# For this we import the 'cpufeatures' module from the NDK sources.
|
||||
# libvpx can also be configured without this runtime detection method.
|
||||
# Configuring with --disable-runtime-cpu-detect will assume presence of NEON.
|
||||
# Configuring with --disable-runtime-cpu-detect --disable-neon \
|
||||
# --disable-neon-asm
|
||||
# will remove any NEON dependency.
|
||||
|
||||
#
|
||||
# Running ndk-build will build libvpx and include it in your project.
|
||||
#
|
||||
|
||||
# Alternatively, building the examples and unit tests can be accomplished in the
|
||||
# following way:
|
||||
#
|
||||
# Create a standalone toolchain from the NDK:
|
||||
# https://developer.android.com/ndk/guides/standalone_toolchain.html
|
||||
#
|
||||
# For example - to test on arm64 devices with clang:
|
||||
# $NDK/build/tools/make_standalone_toolchain.py \
|
||||
# --arch arm64 --install-dir=/tmp/my-android-toolchain
|
||||
# export PATH=/tmp/my-android-toolchain/bin:$PATH
|
||||
# CROSS=aarch64-linux-android- CC=clang CXX=clang++ /path/to/libvpx/configure \
|
||||
# --target=arm64-android-gcc
|
||||
#
|
||||
# Push the resulting binaries to a device and run them:
|
||||
# adb push test_libvpx /data/tmp/test_libvpx
|
||||
# adb shell /data/tmp/test_libvpx --gtest_filter=\*Sixtap\*
|
||||
#
|
||||
# Make sure to push the test data as well and set LIBVPX_TEST_DATA
|
||||
|
||||
CONFIG_DIR := $(LOCAL_PATH)/
|
||||
LIBVPX_PATH := $(LOCAL_PATH)/libvpx
|
||||
ASM_CNV_PATH_LOCAL := $(TARGET_ARCH_ABI)/ads2gas
|
||||
ASM_CNV_PATH := $(LOCAL_PATH)/$(ASM_CNV_PATH_LOCAL)
|
||||
ifneq ($(V),1)
|
||||
qexec := @
|
||||
endif
|
||||
|
||||
# Use the makefiles generated by upstream configure to determine which files to
|
||||
# build. Also set any architecture-specific flags.
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
include $(CONFIG_DIR)libs-armv7-android-gcc.mk
|
||||
LOCAL_ARM_MODE := arm
|
||||
else ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
|
||||
include $(CONFIG_DIR)libs-arm64-android-gcc.mk
|
||||
LOCAL_ARM_MODE := arm
|
||||
else ifeq ($(TARGET_ARCH_ABI),x86)
|
||||
include $(CONFIG_DIR)libs-x86-android-gcc.mk
|
||||
else ifeq ($(TARGET_ARCH_ABI),x86_64)
|
||||
include $(CONFIG_DIR)libs-x86_64-android-gcc.mk
|
||||
else ifeq ($(TARGET_ARCH_ABI),mips)
|
||||
include $(CONFIG_DIR)libs-mips-android-gcc.mk
|
||||
else
|
||||
$(error Not a supported TARGET_ARCH_ABI: $(TARGET_ARCH_ABI))
|
||||
endif
|
||||
|
||||
# Rule that is normally in Makefile created by libvpx
|
||||
# configure. Used to filter out source files based on configuration.
|
||||
enabled=$(filter-out $($(1)-no),$($(1)-yes))
|
||||
|
||||
# Override the relative path that is defined by the libvpx
|
||||
# configure process
|
||||
SRC_PATH_BARE := $(LIBVPX_PATH)
|
||||
|
||||
# Include the list of files to be built
|
||||
include $(LIBVPX_PATH)/libs.mk
|
||||
|
||||
# Optimise the code. May want to revisit this setting in the future.
|
||||
LOCAL_CFLAGS := -O3
|
||||
|
||||
# For x86, include the source code in the search path so it will find files
|
||||
# like x86inc.asm and x86_abi_support.asm
|
||||
LOCAL_ASMFLAGS := -I$(LIBVPX_PATH)
|
||||
|
||||
.PRECIOUS: %.asm.S
|
||||
$(ASM_CNV_PATH)/libvpx/%.asm.S: $(LIBVPX_PATH)/%.asm
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CONFIG_DIR)$(ASM_CONVERSION) <$< > $@
|
||||
|
||||
# For building *_rtcd.h, which have rules in libs.mk
|
||||
TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN)))
|
||||
target := libs
|
||||
|
||||
LOCAL_SRC_FILES += vpx_config.c
|
||||
|
||||
# Remove duplicate entries
|
||||
CODEC_SRCS_UNIQUE = $(sort $(CODEC_SRCS))
|
||||
|
||||
# Pull out C files. vpx_config.c is in the immediate directory and
|
||||
# so it does not need libvpx/ prefixed like the rest of the source files.
|
||||
# The neon files with intrinsics need to have .neon appended so the proper
|
||||
# flags are applied.
|
||||
CODEC_SRCS_C = $(filter %.c, $(CODEC_SRCS_UNIQUE))
|
||||
LOCAL_NEON_SRCS_C = $(filter %_neon.c, $(CODEC_SRCS_C))
|
||||
LOCAL_CODEC_SRCS_C = $(filter-out vpx_config.c %_neon.c, $(CODEC_SRCS_C))
|
||||
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_CODEC_SRCS_C), libvpx/$(file))
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libvpx/$(file).neon)
|
||||
else # If there are neon sources then we are building for arm64 and do not need to specify .neon
|
||||
LOCAL_SRC_FILES += $(foreach file, $(LOCAL_NEON_SRCS_C), libvpx/$(file))
|
||||
endif
|
||||
|
||||
# Pull out assembly files, splitting NEON from the rest. This is
|
||||
# done to specify that the NEON assembly files use NEON assembler flags.
|
||||
# x86 assembly matches %.asm, arm matches %.asm.S
|
||||
|
||||
# x86:
|
||||
|
||||
CODEC_SRCS_ASM_X86 = $(filter %.asm, $(CODEC_SRCS_UNIQUE))
|
||||
LOCAL_SRC_FILES += $(foreach file, $(CODEC_SRCS_ASM_X86), libvpx/$(file))
|
||||
|
||||
# arm:
|
||||
CODEC_SRCS_ASM_ARM_ALL = $(filter %.asm.S, $(CODEC_SRCS_UNIQUE))
|
||||
CODEC_SRCS_ASM_ARM = $(foreach v, \
|
||||
$(CODEC_SRCS_ASM_ARM_ALL), \
|
||||
$(if $(findstring neon,$(v)),,$(v)))
|
||||
CODEC_SRCS_ASM_ADS2GAS = $(patsubst %.S, \
|
||||
$(ASM_CNV_PATH_LOCAL)/libvpx/%.S, \
|
||||
$(CODEC_SRCS_ASM_ARM))
|
||||
LOCAL_SRC_FILES += $(CODEC_SRCS_ASM_ADS2GAS)
|
||||
|
||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||
ASM_INCLUDES := vpx_dsp/arm/idct_neon.asm.S
|
||||
CODEC_SRCS_ASM_NEON = $(foreach v, \
|
||||
$(CODEC_SRCS_ASM_ARM_ALL),\
|
||||
$(if $(findstring neon,$(v)),$(v),))
|
||||
CODEC_SRCS_ASM_NEON := $(filter-out $(addprefix %, $(ASM_INCLUDES)), \
|
||||
$(CODEC_SRCS_ASM_NEON))
|
||||
CODEC_SRCS_ASM_NEON_ADS2GAS = $(patsubst %.S, \
|
||||
$(ASM_CNV_PATH_LOCAL)/libvpx/%.S, \
|
||||
$(CODEC_SRCS_ASM_NEON))
|
||||
LOCAL_SRC_FILES += $(patsubst %.S, \
|
||||
%.S.neon, \
|
||||
$(CODEC_SRCS_ASM_NEON_ADS2GAS))
|
||||
|
||||
NEON_ASM_TARGETS = $(patsubst %.S, \
|
||||
$(ASM_CNV_PATH)/libvpx/%.S, \
|
||||
$(CODEC_SRCS_ASM_NEON))
|
||||
# add a dependency to the full path to the ads2gas output to ensure the
|
||||
# includes are converted first.
|
||||
ifneq ($(strip $(NEON_ASM_TARGETS)),)
|
||||
$(NEON_ASM_TARGETS): $(addprefix $(ASM_CNV_PATH)/libvpx/, $(ASM_INCLUDES))
|
||||
endif
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += \
|
||||
-DHAVE_CONFIG_H=vpx_config.h \
|
||||
-I$(LIBVPX_PATH) \
|
||||
-I$(ASM_CNV_PATH) \
|
||||
-I$(ASM_CNV_PATH)/libvpx
|
||||
|
||||
LOCAL_MODULE := libvpx
|
||||
|
||||
ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes)
|
||||
LOCAL_STATIC_LIBRARIES := cpufeatures
|
||||
endif
|
||||
|
||||
# Add a dependency to force generation of the RTCD files.
|
||||
define rtcd_dep_template
|
||||
rtcd_dep_template_SRCS := $(addprefix $(LOCAL_PATH)/, $(LOCAL_SRC_FILES))
|
||||
rtcd_dep_template_SRCS := $$(rtcd_dep_template_SRCS:.neon=)
|
||||
ifeq ($(CONFIG_VP8), yes)
|
||||
$$(rtcd_dep_template_SRCS): vp8_rtcd.h
|
||||
endif
|
||||
ifeq ($(CONFIG_VP9), yes)
|
||||
$$(rtcd_dep_template_SRCS): vp9_rtcd.h
|
||||
endif
|
||||
$$(rtcd_dep_template_SRCS): vpx_scale_rtcd.h
|
||||
$$(rtcd_dep_template_SRCS): vpx_dsp_rtcd.h
|
||||
|
||||
rtcd_dep_template_CONFIG_ASM_ABIS := x86 x86_64 armeabi-v7a
|
||||
ifneq ($$(findstring $(TARGET_ARCH_ABI),$$(rtcd_dep_template_CONFIG_ASM_ABIS)),)
|
||||
$$(rtcd_dep_template_SRCS): vpx_config.asm
|
||||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call rtcd_dep_template))
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
@echo "Clean: ads2gas files [$(TARGET_ARCH_ABI)]"
|
||||
$(qexec)$(RM) $(CODEC_SRCS_ASM_ADS2GAS) $(CODEC_SRCS_ASM_NEON_ADS2GAS)
|
||||
$(qexec)$(RM) -r $(ASM_CNV_PATH)
|
||||
$(qexec)$(RM) $(CLEAN-OBJS)
|
||||
|
||||
ifeq ($(ENABLE_SHARED),1)
|
||||
LOCAL_CFLAGS += -fPIC
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
else
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_RUNTIME_CPU_DETECT),yes)
|
||||
$(call import-module,android/cpufeatures)
|
||||
endif
|
||||
452
media/libvpx/libvpx/build/make/Makefile
Normal file
452
media/libvpx/libvpx/build/make/Makefile
Normal file
|
|
@ -0,0 +1,452 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
include config.mk
|
||||
quiet?=true
|
||||
ifeq ($(target),)
|
||||
# If a target wasn't specified, invoke for all enabled targets.
|
||||
.DEFAULT:
|
||||
@for t in $(ALL_TARGETS); do \
|
||||
$(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\
|
||||
done
|
||||
all: .DEFAULT
|
||||
clean:: .DEFAULT
|
||||
exampletest: .DEFAULT
|
||||
install:: .DEFAULT
|
||||
test:: .DEFAULT
|
||||
test-no-data-check:: .DEFAULT
|
||||
testdata:: .DEFAULT
|
||||
utiltest: .DEFAULT
|
||||
exampletest-no-data-check utiltest-no-data-check: .DEFAULT
|
||||
test_%: .DEFAULT ;
|
||||
|
||||
# Note: md5sum is not installed on OS X, but openssl is. Openssl may not be
|
||||
# installed on cygwin, so we need to autodetect here.
|
||||
md5sum := $(firstword $(wildcard \
|
||||
$(foreach e,md5sum openssl,\
|
||||
$(foreach p,$(subst :, ,$(PATH)),$(p)/$(e)*))\
|
||||
))
|
||||
md5sum := $(if $(filter %openssl,$(md5sum)),$(md5sum) dgst -md5,$(md5sum))
|
||||
|
||||
TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN)))
|
||||
dist:
|
||||
@for t in $(ALL_TARGETS); do \
|
||||
$(MAKE) --no-print-directory target=$$t $(MAKECMDGOALS) || exit $$?;\
|
||||
done
|
||||
# Run configure for the user with the current toolchain.
|
||||
@if [ -d "$(DIST_DIR)/src" ]; then \
|
||||
mkdir -p "$(DIST_DIR)/build"; \
|
||||
cd "$(DIST_DIR)/build"; \
|
||||
echo "Rerunning configure $(CONFIGURE_ARGS)"; \
|
||||
../src/configure $(CONFIGURE_ARGS); \
|
||||
$(if $(filter vs%,$(TGT_CC)),make NO_LAUNCH_DEVENV=1;) \
|
||||
fi
|
||||
@if [ -d "$(DIST_DIR)" ]; then \
|
||||
echo " [MD5SUM] $(DIST_DIR)"; \
|
||||
cd $(DIST_DIR) && \
|
||||
$(md5sum) `find . -name md5sums.txt -prune -o -type f -print` \
|
||||
| sed -e 's/MD5(\(.*\))= \([0-9a-f]\{32\}\)/\2 \1/' \
|
||||
> md5sums.txt;\
|
||||
fi
|
||||
endif
|
||||
|
||||
# Since we invoke make recursively for multiple targets we need to include the
|
||||
# .mk file for the correct target, but only when $(target) is non-empty.
|
||||
ifneq ($(target),)
|
||||
include $(target)-$(TOOLCHAIN).mk
|
||||
endif
|
||||
BUILD_ROOT?=.
|
||||
VPATH=$(SRC_PATH_BARE)
|
||||
CFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH)
|
||||
CXXFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT) -I$(SRC_PATH)
|
||||
ASFLAGS+=-I$(BUILD_PFX)$(BUILD_ROOT)/ -I$(SRC_PATH)/
|
||||
DIST_DIR?=dist
|
||||
HOSTCC?=gcc
|
||||
TGT_ISA:=$(word 1, $(subst -, ,$(TOOLCHAIN)))
|
||||
TGT_OS:=$(word 2, $(subst -, ,$(TOOLCHAIN)))
|
||||
TGT_CC:=$(word 3, $(subst -, ,$(TOOLCHAIN)))
|
||||
quiet:=$(if $(or $(verbose), $(V)),, yes)
|
||||
qexec=$(if $(quiet),@)
|
||||
|
||||
# Cancel built-in implicit rules
|
||||
%: %.o
|
||||
%.asm:
|
||||
%.a:
|
||||
%: %.cc
|
||||
|
||||
#
|
||||
# Common rules"
|
||||
#
|
||||
.PHONY: all
|
||||
all:
|
||||
|
||||
.PHONY: clean
|
||||
clean::
|
||||
rm -f $(OBJS-yes) $(OBJS-yes:.o=.d) $(OBJS-yes:.asm.S.o=.asm.S)
|
||||
rm -f $(CLEAN-OBJS)
|
||||
|
||||
.PHONY: clean
|
||||
distclean: clean
|
||||
if [ -z "$(target)" ]; then \
|
||||
rm -f Makefile; \
|
||||
rm -f config.log config.mk; \
|
||||
rm -f vpx_config.[hc] vpx_config.asm; \
|
||||
else \
|
||||
rm -f $(target)-$(TOOLCHAIN).mk; \
|
||||
fi
|
||||
|
||||
.PHONY: dist
|
||||
dist:
|
||||
.PHONY: exampletest
|
||||
exampletest:
|
||||
.PHONY: install
|
||||
install::
|
||||
.PHONY: test
|
||||
test::
|
||||
.PHONY: testdata
|
||||
testdata::
|
||||
.PHONY: utiltest
|
||||
utiltest:
|
||||
.PHONY: test-no-data-check exampletest-no-data-check utiltest-no-data-check
|
||||
test-no-data-check::
|
||||
exampletest-no-data-check utiltest-no-data-check:
|
||||
|
||||
# Force to realign stack always on OS/2
|
||||
ifeq ($(TOOLCHAIN), x86-os2-gcc)
|
||||
CFLAGS += -mstackrealign
|
||||
endif
|
||||
|
||||
$(BUILD_PFX)%_mmx.c.d: CFLAGS += -mmmx
|
||||
$(BUILD_PFX)%_mmx.c.o: CFLAGS += -mmmx
|
||||
$(BUILD_PFX)%_sse2.c.d: CFLAGS += -msse2
|
||||
$(BUILD_PFX)%_sse2.c.o: CFLAGS += -msse2
|
||||
$(BUILD_PFX)%_sse3.c.d: CFLAGS += -msse3
|
||||
$(BUILD_PFX)%_sse3.c.o: CFLAGS += -msse3
|
||||
$(BUILD_PFX)%_ssse3.c.d: CFLAGS += -mssse3
|
||||
$(BUILD_PFX)%_ssse3.c.o: CFLAGS += -mssse3
|
||||
$(BUILD_PFX)%_sse4.c.d: CFLAGS += -msse4.1
|
||||
$(BUILD_PFX)%_sse4.c.o: CFLAGS += -msse4.1
|
||||
$(BUILD_PFX)%_avx.c.d: CFLAGS += -mavx
|
||||
$(BUILD_PFX)%_avx.c.o: CFLAGS += -mavx
|
||||
$(BUILD_PFX)%_avx2.c.d: CFLAGS += -mavx2
|
||||
$(BUILD_PFX)%_avx2.c.o: CFLAGS += -mavx2
|
||||
|
||||
$(BUILD_PFX)%.c.d: %.c
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.c.o: %.c
|
||||
$(if $(quiet),@echo " [CC] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CC) $(INTERNAL_CFLAGS) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.cc.d: %.cc
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.cc.o: %.cc
|
||||
$(if $(quiet),@echo " [CXX] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.cpp.d: %.cpp
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -M $< | $(fmt_deps) > $@
|
||||
|
||||
$(BUILD_PFX)%.cpp.o: %.cpp
|
||||
$(if $(quiet),@echo " [CXX] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CXX) $(INTERNAL_CFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.asm.d: %.asm
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \
|
||||
--build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@
|
||||
|
||||
$(BUILD_PFX)%.asm.o: %.asm
|
||||
$(if $(quiet),@echo " [AS] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
$(BUILD_PFX)%.S.d: %.S
|
||||
$(if $(quiet),@echo " [DEP] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(SRC_PATH_BARE)/build/make/gen_asm_deps.sh \
|
||||
--build-pfx=$(BUILD_PFX) --depfile=$@ $(ASFLAGS) $< > $@
|
||||
|
||||
$(BUILD_PFX)%.S.o: %.S
|
||||
$(if $(quiet),@echo " [AS] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(AS) $(ASFLAGS) -o $@ $<
|
||||
|
||||
.PRECIOUS: %.c.S
|
||||
%.c.S: CFLAGS += -DINLINE_ASM
|
||||
$(BUILD_PFX)%.c.S: %.c
|
||||
$(if $(quiet),@echo " [GEN] $@")
|
||||
$(qexec)$(if $(CONFIG_DEPENDENCY_TRACKING),,mkdir -p $(dir $@))
|
||||
$(qexec)$(CC) -S $(CFLAGS) -o $@ $<
|
||||
|
||||
.PRECIOUS: %.asm.S
|
||||
$(BUILD_PFX)%.asm.S: %.asm
|
||||
$(if $(quiet),@echo " [ASM CONVERSION] $@")
|
||||
$(qexec)mkdir -p $(dir $@)
|
||||
$(qexec)$(ASM_CONVERSION) <$< >$@
|
||||
|
||||
# If we're in debug mode, pretend we don't have GNU strip, to fall back to
|
||||
# the copy implementation
|
||||
HAVE_GNU_STRIP := $(if $(CONFIG_DEBUG),,$(HAVE_GNU_STRIP))
|
||||
ifeq ($(HAVE_GNU_STRIP),yes)
|
||||
# Older binutils strip global symbols not needed for relocation processing
|
||||
# when given --strip-unneeded. Using nm and awk to identify globals and
|
||||
# keep them caused command line length issues under mingw and segfaults in
|
||||
# test_libvpx were observed under OS/2: simply use --strip-debug.
|
||||
%.a: %_g.a
|
||||
$(if $(quiet),@echo " [STRIP] $@ < $<")
|
||||
$(qexec)$(STRIP) --strip-debug \
|
||||
-o $@ $<
|
||||
else
|
||||
%.a: %_g.a
|
||||
$(if $(quiet),@echo " [CP] $@ < $<")
|
||||
$(qexec)cp $< $@
|
||||
endif
|
||||
|
||||
#
|
||||
# Utility functions
|
||||
#
|
||||
pairmap=$(if $(strip $(2)),\
|
||||
$(call $(1),$(word 1,$(2)),$(word 2,$(2)))\
|
||||
$(call pairmap,$(1),$(wordlist 3,$(words $(2)),$(2)))\
|
||||
)
|
||||
|
||||
enabled=$(filter-out $($(1)-no),$($(1)-yes))
|
||||
cond_enabled=$(if $(filter yes,$($(1))), $(call enabled,$(2)))
|
||||
|
||||
find_file1=$(word 1,$(wildcard $(subst //,/,$(addsuffix /$(1),$(2)))))
|
||||
find_file=$(foreach f,$(1),$(call find_file1,$(strip $(f)),$(strip $(2))) )
|
||||
obj_pats=.c=.c.o $(AS_SFX)=$(AS_SFX).o .cc=.cc.o .cpp=.cpp.o
|
||||
objs=$(addprefix $(BUILD_PFX),$(foreach p,$(obj_pats),$(filter %.o,$(1:$(p))) ))
|
||||
|
||||
install_map_templates=$(eval $(call install_map_template,$(1),$(2)))
|
||||
|
||||
not=$(subst yes,no,$(1))
|
||||
|
||||
ifeq ($(CONFIG_MSVS),yes)
|
||||
lib_file_name=$(1).lib
|
||||
else
|
||||
lib_file_name=lib$(1).a
|
||||
endif
|
||||
#
|
||||
# Rule Templates
|
||||
#
|
||||
define linker_template
|
||||
$(1): $(filter-out -%,$(2))
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
|
||||
endef
|
||||
define linkerxx_template
|
||||
$(1): $(filter-out -%,$(2))
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(CXX) $$(strip $$(INTERNAL_LDFLAGS) $$(LDFLAGS) -o $$@ $(2) $(3) $$(extralibs))
|
||||
endef
|
||||
# make-3.80 has a bug with expanding large input strings to the eval function,
|
||||
# which was triggered in some cases by the following component of
|
||||
# linker_template:
|
||||
# $(1): $$(call find_file, $(patsubst -l%,lib%.a,$(filter -l%,$(2))),\
|
||||
# $$(patsubst -L%,%,$$(filter -L%,$$(LDFLAGS) $(2))))
|
||||
# This may be useful to revisit in the future (it tries to locate libraries
|
||||
# in a search path and add them as prerequisites
|
||||
|
||||
define install_map_template
|
||||
$(DIST_DIR)/$(1): $(2)
|
||||
$(if $(quiet),@echo " [INSTALL] $$@")
|
||||
$(qexec)mkdir -p $$(dir $$@)
|
||||
$(qexec)cp -p $$< $$@
|
||||
endef
|
||||
|
||||
define archive_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [AR] $$@")
|
||||
$(qexec)$$(AR) $$(ARFLAGS) $$@ $$^
|
||||
endef
|
||||
|
||||
define so_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
#
|
||||
# This needs further abstraction for dealing with non-GNU linkers.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -shared $$(LDFLAGS) \
|
||||
-Wl,--no-undefined -Wl,-soname,$$(SONAME) \
|
||||
-Wl,--version-script,$$(EXPORTS_FILE) -o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs)
|
||||
endef
|
||||
|
||||
define dl_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -dynamiclib $$(LDFLAGS) \
|
||||
-exported_symbols_list $$(EXPORTS_FILE) \
|
||||
-Wl,-headerpad_max_install_names,-compatibility_version,1.0,-current_version,$$(VERSION_MAJOR) \
|
||||
-o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs)
|
||||
endef
|
||||
|
||||
define dll_template
|
||||
# Not using a pattern rule here because we don't want to generate empty
|
||||
# archives when they are listed as a dependency in files not responsible
|
||||
# for creating them.
|
||||
$(1):
|
||||
$(if $(quiet),@echo " [LD] $$@")
|
||||
$(qexec)$$(LD) -Zdll $$(LDFLAGS) \
|
||||
-o $$@ \
|
||||
$$(filter %.o,$$^) $$(extralibs) $$(EXPORTS_FILE)
|
||||
endef
|
||||
|
||||
|
||||
#
|
||||
# Get current configuration
|
||||
#
|
||||
ifneq ($(target),)
|
||||
include $(SRC_PATH_BARE)/$(target:-$(TOOLCHAIN)=).mk
|
||||
endif
|
||||
|
||||
skip_deps := $(filter %clean,$(MAKECMDGOALS))
|
||||
skip_deps += $(findstring testdata,$(MAKECMDGOALS))
|
||||
ifeq ($(strip $(skip_deps)),)
|
||||
ifeq ($(CONFIG_DEPENDENCY_TRACKING),yes)
|
||||
# Older versions of make don't like -include directives with no arguments
|
||||
ifneq ($(filter %.d,$(OBJS-yes:.o=.d)),)
|
||||
-include $(filter %.d,$(OBJS-yes:.o=.d))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Configuration dependent rules
|
||||
#
|
||||
$(call pairmap,install_map_templates,$(INSTALL_MAPS))
|
||||
|
||||
DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,DOCS)
|
||||
.docs: $(DOCS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-DOCS=$(call cond_enabled,CONFIG_INSTALL_DOCS,INSTALL-DOCS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-DOCS+=$(call cond_enabled,CONFIG_INSTALL_DOCS,DIST-DOCS)
|
||||
endif
|
||||
.install-docs: .docs $(addprefix $(DIST_DIR)/,$(INSTALL-DOCS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .docs .install-docs $(DOCS)
|
||||
|
||||
BINS=$(call enabled,BINS)
|
||||
.bins: $(BINS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-BINS=$(call cond_enabled,CONFIG_INSTALL_BINS,INSTALL-BINS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-BINS+=$(call cond_enabled,CONFIG_INSTALL_BINS,DIST-BINS)
|
||||
endif
|
||||
.install-bins: .bins $(addprefix $(DIST_DIR)/,$(INSTALL-BINS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .bins .install-bins $(BINS)
|
||||
|
||||
LIBS=$(call enabled,LIBS)
|
||||
.libs: $(LIBS)
|
||||
@touch $@
|
||||
$(foreach lib,$(filter %_g.a,$(LIBS)),$(eval $(call archive_template,$(lib))))
|
||||
$(foreach lib,$(filter %so.$(SO_VERSION_MAJOR).$(SO_VERSION_MINOR).$(SO_VERSION_PATCH),$(LIBS)),$(eval $(call so_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dylib,$(LIBS)),$(eval $(call dl_template,$(lib))))
|
||||
$(foreach lib,$(filter %$(SO_VERSION_MAJOR).dll,$(LIBS)),$(eval $(call dll_template,$(lib))))
|
||||
|
||||
INSTALL-LIBS=$(call cond_enabled,CONFIG_INSTALL_LIBS,INSTALL-LIBS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-LIBS+=$(call cond_enabled,CONFIG_INSTALL_LIBS,DIST-LIBS)
|
||||
endif
|
||||
.install-libs: .libs $(addprefix $(DIST_DIR)/,$(INSTALL-LIBS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .libs .install-libs $(LIBS)
|
||||
|
||||
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
|
||||
PROJECTS=$(call enabled,PROJECTS)
|
||||
.projects: $(PROJECTS)
|
||||
@touch $@
|
||||
|
||||
INSTALL-PROJECTS=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,INSTALL-PROJECTS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-PROJECTS+=$(call cond_enabled,CONFIG_INSTALL_PROJECTS,DIST-PROJECTS)
|
||||
endif
|
||||
.install-projects: .projects $(addprefix $(DIST_DIR)/,$(INSTALL-PROJECTS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .projects .install-projects $(PROJECTS)
|
||||
endif
|
||||
|
||||
# If there are any source files to be distributed, then include the build
|
||||
# system too.
|
||||
ifneq ($(call enabled,DIST-SRCS),)
|
||||
DIST-SRCS-yes += configure
|
||||
DIST-SRCS-yes += build/make/configure.sh
|
||||
DIST-SRCS-yes += build/make/gen_asm_deps.sh
|
||||
DIST-SRCS-yes += build/make/Makefile
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_def.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_sln.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/gen_msvs_vcxproj.sh
|
||||
DIST-SRCS-$(CONFIG_MSVS) += build/make/msvs_common.sh
|
||||
DIST-SRCS-$(CONFIG_RVCT) += build/make/armlink_adapter.sh
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2gas_apple.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/ads2armasm_ms.pl
|
||||
DIST-SRCS-$(ARCH_ARM) += build/make/thumb.pm
|
||||
DIST-SRCS-yes += $(target:-$(TOOLCHAIN)=).mk
|
||||
endif
|
||||
INSTALL-SRCS := $(call cond_enabled,CONFIG_INSTALL_SRCS,INSTALL-SRCS)
|
||||
ifeq ($(MAKECMDGOALS),dist)
|
||||
INSTALL-SRCS += $(call cond_enabled,CONFIG_INSTALL_SRCS,DIST-SRCS)
|
||||
endif
|
||||
.install-srcs: $(addprefix $(DIST_DIR)/src/,$(INSTALL-SRCS))
|
||||
@touch $@
|
||||
|
||||
clean::
|
||||
rm -f .install-srcs
|
||||
|
||||
ifeq ($(CONFIG_EXTERNAL_BUILD),yes)
|
||||
BUILD_TARGETS += .projects
|
||||
INSTALL_TARGETS += .install-projects
|
||||
endif
|
||||
BUILD_TARGETS += .docs .libs .bins
|
||||
INSTALL_TARGETS += .install-docs .install-srcs .install-libs .install-bins
|
||||
all: $(BUILD_TARGETS)
|
||||
install:: $(INSTALL_TARGETS)
|
||||
dist: $(INSTALL_TARGETS)
|
||||
test::
|
||||
|
||||
.SUFFIXES: # Delete default suffix rules
|
||||
39
media/libvpx/libvpx/build/make/ads2armasm_ms.pl
Normal file
39
media/libvpx/libvpx/build/make/ads2armasm_ms.pl
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env perl
|
||||
##
|
||||
## Copyright (c) 2013 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
use FindBin;
|
||||
use lib $FindBin::Bin;
|
||||
use thumb;
|
||||
|
||||
print "; This file was created from a .asm file\n";
|
||||
print "; using the ads2armasm_ms.pl script.\n";
|
||||
|
||||
while (<STDIN>)
|
||||
{
|
||||
undef $comment;
|
||||
undef $line;
|
||||
|
||||
s/REQUIRE8//;
|
||||
s/PRESERVE8//;
|
||||
s/^\s*ARM\s*$//;
|
||||
s/AREA\s+\|\|(.*)\|\|/AREA |$1|/;
|
||||
s/qsubaddx/qsax/i;
|
||||
s/qaddsubx/qasx/i;
|
||||
|
||||
thumb::FixThumbInstructions($_, 1);
|
||||
|
||||
s/ldrneb/ldrbne/i;
|
||||
s/ldrneh/ldrhne/i;
|
||||
s/^(\s*)ENDP.*/$&\n$1ALIGN 4/;
|
||||
|
||||
print;
|
||||
}
|
||||
|
||||
|
|
@ -138,14 +138,6 @@ while (<STDIN>)
|
|||
s/DCD(.*)/.long $1/;
|
||||
s/DCB(.*)/.byte $1/;
|
||||
|
||||
# RN to .req
|
||||
if (s/RN\s+([Rr]\d+|lr)/.req $1/)
|
||||
{
|
||||
print;
|
||||
print "$comment_sub$comment\n" if defined $comment;
|
||||
next;
|
||||
}
|
||||
|
||||
# Make function visible to linker, and make additional symbol with
|
||||
# prepended underscore
|
||||
s/EXPORT\s+\|([\$\w]*)\|/.global $1 \n\t.type $1, function/;
|
||||
204
media/libvpx/libvpx/build/make/ads2gas_apple.pl
Normal file
204
media/libvpx/libvpx/build/make/ads2gas_apple.pl
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
#!/usr/bin/env perl
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
# ads2gas_apple.pl
|
||||
# Author: Eric Fung (efung (at) acm.org)
|
||||
#
|
||||
# Convert ARM Developer Suite 1.0.1 syntax assembly source to GNU as format
|
||||
#
|
||||
# Usage: cat inputfile | perl ads2gas_apple.pl > outputfile
|
||||
#
|
||||
|
||||
print "@ This file was created from a .asm file\n";
|
||||
print "@ using the ads2gas_apple.pl script.\n\n";
|
||||
print "\t.set WIDE_REFERENCE, 0\n";
|
||||
print "\t.set ARCHITECTURE, 5\n";
|
||||
print "\t.set DO1STROUNDING, 0\n";
|
||||
|
||||
my %register_aliases;
|
||||
my %macro_aliases;
|
||||
|
||||
my @mapping_list = ("\$0", "\$1", "\$2", "\$3", "\$4", "\$5", "\$6", "\$7", "\$8", "\$9");
|
||||
|
||||
my @incoming_array;
|
||||
|
||||
my @imported_functions;
|
||||
|
||||
# Perl trim function to remove whitespace from the start and end of the string
|
||||
sub trim($)
|
||||
{
|
||||
my $string = shift;
|
||||
$string =~ s/^\s+//;
|
||||
$string =~ s/\s+$//;
|
||||
return $string;
|
||||
}
|
||||
|
||||
while (<STDIN>)
|
||||
{
|
||||
# Load and store alignment
|
||||
s/@/,:/g;
|
||||
|
||||
# Comment character
|
||||
s/;/ @/g;
|
||||
|
||||
# Hexadecimal constants prefaced by 0x
|
||||
s/#&/#0x/g;
|
||||
|
||||
# Convert :OR: to |
|
||||
s/:OR:/ | /g;
|
||||
|
||||
# Convert :AND: to &
|
||||
s/:AND:/ & /g;
|
||||
|
||||
# Convert :NOT: to ~
|
||||
s/:NOT:/ ~ /g;
|
||||
|
||||
# Convert :SHL: to <<
|
||||
s/:SHL:/ << /g;
|
||||
|
||||
# Convert :SHR: to >>
|
||||
s/:SHR:/ >> /g;
|
||||
|
||||
# Convert ELSE to .else
|
||||
s/\bELSE\b/.else/g;
|
||||
|
||||
# Convert ENDIF to .endif
|
||||
s/\bENDIF\b/.endif/g;
|
||||
|
||||
# Convert ELSEIF to .elseif
|
||||
s/\bELSEIF\b/.elseif/g;
|
||||
|
||||
# Convert LTORG to .ltorg
|
||||
s/\bLTORG\b/.ltorg/g;
|
||||
|
||||
# Convert IF :DEF:to .if
|
||||
# gcc doesn't have the ability to do a conditional
|
||||
# if defined variable that is set by IF :DEF: on
|
||||
# armasm, so convert it to a normal .if and then
|
||||
# make sure to define a value elesewhere
|
||||
if (s/\bIF :DEF:\b/.if /g)
|
||||
{
|
||||
s/=/==/g;
|
||||
}
|
||||
|
||||
# Convert IF to .if
|
||||
if (s/\bIF\b/.if/g)
|
||||
{
|
||||
s/=/==/g;
|
||||
}
|
||||
|
||||
# Convert INCLUDE to .INCLUDE "file"
|
||||
s/INCLUDE(\s*)(.*)$/.include $1\"$2\"/;
|
||||
|
||||
# Code directive (ARM vs Thumb)
|
||||
s/CODE([0-9][0-9])/.code $1/;
|
||||
|
||||
# No AREA required
|
||||
# But ALIGNs in AREA must be obeyed
|
||||
s/^\s*AREA.*ALIGN=([0-9])$/.text\n.p2align $1/;
|
||||
# If no ALIGN, strip the AREA and align to 4 bytes
|
||||
s/^\s*AREA.*$/.text\n.p2align 2/;
|
||||
|
||||
# DCD to .word
|
||||
# This one is for incoming symbols
|
||||
s/DCD\s+\|(\w*)\|/.long $1/;
|
||||
|
||||
# DCW to .short
|
||||
s/DCW\s+\|(\w*)\|/.short $1/;
|
||||
s/DCW(.*)/.short $1/;
|
||||
|
||||
# Constants defined in scope
|
||||
s/DCD(.*)/.long $1/;
|
||||
s/DCB(.*)/.byte $1/;
|
||||
|
||||
# Make function visible to linker, and make additional symbol with
|
||||
# prepended underscore
|
||||
s/EXPORT\s+\|([\$\w]*)\|/.globl _$1\n\t.globl $1/;
|
||||
|
||||
# Prepend imported functions with _
|
||||
if (s/IMPORT\s+\|([\$\w]*)\|/.globl $1/)
|
||||
{
|
||||
$function = trim($1);
|
||||
push(@imported_functions, $function);
|
||||
}
|
||||
|
||||
foreach $function (@imported_functions)
|
||||
{
|
||||
s/$function/_$function/;
|
||||
}
|
||||
|
||||
# No vertical bars required; make additional symbol with prepended
|
||||
# underscore
|
||||
s/^\|(\$?\w+)\|/_$1\n\t$1:/g;
|
||||
|
||||
# Labels need trailing colon
|
||||
# s/^(\w+)/$1:/ if !/EQU/;
|
||||
# put the colon at the end of the line in the macro
|
||||
s/^([a-zA-Z_0-9\$]+)/$1:/ if !/EQU/;
|
||||
|
||||
# ALIGN directive
|
||||
s/\bALIGN\b/.balign/g;
|
||||
|
||||
# Strip ARM
|
||||
s/\sARM/@ ARM/g;
|
||||
|
||||
# Strip REQUIRE8
|
||||
#s/\sREQUIRE8/@ REQUIRE8/g;
|
||||
s/\sREQUIRE8/@ /g;
|
||||
|
||||
# Strip PRESERVE8
|
||||
s/\sPRESERVE8/@ PRESERVE8/g;
|
||||
|
||||
# Strip PROC and ENDPROC
|
||||
s/\bPROC\b/@/g;
|
||||
s/\bENDP\b/@/g;
|
||||
|
||||
# EQU directive
|
||||
s/(.*)EQU(.*)/.set $1, $2/;
|
||||
|
||||
# Begin macro definition
|
||||
if (/\bMACRO\b/)
|
||||
{
|
||||
# Process next line down, which will be the macro definition
|
||||
$_ = <STDIN>;
|
||||
|
||||
$trimmed = trim($_);
|
||||
|
||||
# remove commas that are separating list
|
||||
$trimmed =~ s/,//g;
|
||||
|
||||
# string to array
|
||||
@incoming_array = split(/\s+/, $trimmed);
|
||||
|
||||
print ".macro @incoming_array[0]\n";
|
||||
|
||||
# remove the first element, as that is the name of the macro
|
||||
shift (@incoming_array);
|
||||
|
||||
@macro_aliases{@incoming_array} = @mapping_list;
|
||||
|
||||
next;
|
||||
}
|
||||
|
||||
while (($key, $value) = each(%macro_aliases))
|
||||
{
|
||||
$key =~ s/\$/\\\$/;
|
||||
s/$key\b/$value/g;
|
||||
}
|
||||
|
||||
# For macros, use \ to reference formal params
|
||||
# s/\$/\\/g; # End macro definition
|
||||
s/\bMEND\b/.endm/; # No need to tell it where to stop assembling
|
||||
next if /^\s*END\s*$/;
|
||||
|
||||
print;
|
||||
}
|
||||
54
media/libvpx/libvpx/build/make/armlink_adapter.sh
Normal file
54
media/libvpx/libvpx/build/make/armlink_adapter.sh
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
verbose=0
|
||||
set -- $*
|
||||
for i; do
|
||||
if [ "$i" = "-o" ]; then
|
||||
on_of=1
|
||||
elif [ "$i" = "-v" ]; then
|
||||
verbose=1
|
||||
elif [ "$i" = "-g" ]; then
|
||||
args="${args} --debug"
|
||||
elif [ "$on_of" = "1" ]; then
|
||||
outfile=$i
|
||||
on_of=0
|
||||
elif [ -f "$i" ]; then
|
||||
infiles="$infiles $i"
|
||||
elif [ "${i#-l}" != "$i" ]; then
|
||||
libs="$libs ${i#-l}"
|
||||
elif [ "${i#-L}" != "$i" ]; then
|
||||
libpaths="${libpaths} ${i#-L}"
|
||||
else
|
||||
args="${args} ${i}"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
# Absolutize library file names
|
||||
for f in $libs; do
|
||||
found=0
|
||||
for d in $libpaths; do
|
||||
[ -f "$d/$f" ] && infiles="$infiles $d/$f" && found=1 && break
|
||||
[ -f "$d/lib${f}.so" ] && infiles="$infiles $d/lib${f}.so" && found=1 && break
|
||||
[ -f "$d/lib${f}.a" ] && infiles="$infiles $d/lib${f}.a" && found=1 && break
|
||||
done
|
||||
[ $found -eq 0 ] && infiles="$infiles $f"
|
||||
done
|
||||
for d in $libpaths; do
|
||||
[ -n "$libsearchpath" ] && libsearchpath="${libsearchpath},"
|
||||
libsearchpath="${libsearchpath}$d"
|
||||
done
|
||||
|
||||
cmd="armlink $args --userlibpath=$libsearchpath --output=$outfile $infiles"
|
||||
[ $verbose -eq 1 ] && echo $cmd
|
||||
$cmd
|
||||
1528
media/libvpx/libvpx/build/make/configure.sh
Normal file
1528
media/libvpx/libvpx/build/make/configure.sh
Normal file
File diff suppressed because it is too large
Load diff
64
media/libvpx/libvpx/build/make/gen_asm_deps.sh
Normal file
64
media/libvpx/libvpx/build/make/gen_asm_deps.sh
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
show_help() {
|
||||
echo "usage: $self [options] <srcfile>"
|
||||
echo
|
||||
echo "Generate Makefile dependency information from assembly code source"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"."
|
||||
echo "See $0 --help for available options."
|
||||
exit 1
|
||||
}
|
||||
for opt do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--build-pfx=*) pfx="${optval}"
|
||||
;;
|
||||
--depfile=*) out="${optval}"
|
||||
;;
|
||||
-I*) raw_inc_paths="${raw_inc_paths} ${opt}"
|
||||
inc_path="${inc_path} ${opt#-I}"
|
||||
;;
|
||||
-h|--help) show_help
|
||||
;;
|
||||
*) [ -f "$opt" ] && srcfile="$opt"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
[ -n "$srcfile" ] || show_help
|
||||
sfx=${sfx:-asm}
|
||||
includes=$(LC_ALL=C egrep -i "include +\"?[a-z0-9_/]+\.${sfx}" $srcfile |
|
||||
perl -p -e "s;.*?([a-z0-9_/]+.${sfx}).*;\1;")
|
||||
#" restore editor state
|
||||
for inc in ${includes}; do
|
||||
found_inc_path=
|
||||
for idir in ${inc_path}; do
|
||||
[ -f "${idir}/${inc}" ] && found_inc_path="${idir}" && break
|
||||
done
|
||||
if [ -f `dirname $srcfile`/$inc ]; then
|
||||
# Handle include files in the same directory as the source
|
||||
$self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} `dirname $srcfile`/$inc
|
||||
elif [ -n "${found_inc_path}" ]; then
|
||||
# Handle include files on the include path
|
||||
$self --build-pfx=$pfx --depfile=$out ${raw_inc_paths} "${found_inc_path}/$inc"
|
||||
else
|
||||
# Handle generated includes in the build root (which may not exist yet)
|
||||
echo ${out} ${out%d}o: "${pfx}${inc}"
|
||||
fi
|
||||
done
|
||||
echo ${out} ${out%d}o: $srcfile
|
||||
83
media/libvpx/libvpx/build/make/gen_msvs_def.sh
Normal file
83
media/libvpx/libvpx/build/make/gen_msvs_def.sh
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
EOL=$'\n'
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} [options] file1 [file2 ...]
|
||||
|
||||
This script generates a MSVC module definition file containing a list of symbols
|
||||
to export from a DLL. Source files are technically bash scripts (and thus may
|
||||
use #comment syntax) but in general, take the form of a list of symbols:
|
||||
|
||||
<kind> symbol1 [symbol2, symbol3, ...]
|
||||
|
||||
where <kind> is either 'text' or 'data'
|
||||
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--out=filename Write output to a file [stdout]
|
||||
--name=project_name Name of the library (required)
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"."
|
||||
echo "See ${self_basename} --help for available options."
|
||||
exit 1
|
||||
}
|
||||
|
||||
text() {
|
||||
for sym in "$@"; do
|
||||
echo " $sym" >> ${outfile}
|
||||
done
|
||||
}
|
||||
|
||||
data() {
|
||||
for sym in "$@"; do
|
||||
printf " %-40s DATA\n" "$sym" >> ${outfile}
|
||||
done
|
||||
}
|
||||
|
||||
# Process command line
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*) file_list[${#file_list[@]}]="$opt"
|
||||
esac
|
||||
done
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
[ -n "$name" ] || die "Library name (--name) must be specified!"
|
||||
|
||||
echo "LIBRARY ${name}" > ${outfile}
|
||||
echo "EXPORTS" >> ${outfile}
|
||||
for f in "${file_list[@]}"; do
|
||||
. $f
|
||||
done
|
||||
260
media/libvpx/libvpx/build/make/gen_msvs_sln.sh
Normal file
260
media/libvpx/libvpx/build/make/gen_msvs_sln.sh
Normal file
|
|
@ -0,0 +1,260 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
EOL=$'\n'
|
||||
EOLDOS=$'\r'
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} [options] file1 [file2 ...]
|
||||
|
||||
This script generates a Visual Studio solution file from a list of project
|
||||
files.
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--out=outfile Redirect output to a file
|
||||
--ver=version Version (7,8,9,10,11,12,14) of visual studio to generate for
|
||||
--target=isa-os-cc Target specifier
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@" >&2
|
||||
[ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"." >&2
|
||||
echo "See ${self_basename} --help for available options." >&2
|
||||
[ -f "${outfile}" ] && rm -f ${outfile}{,.mk}
|
||||
exit 1
|
||||
}
|
||||
|
||||
indent1=$'\t'
|
||||
indent=""
|
||||
indent_push() {
|
||||
indent="${indent}${indent1}"
|
||||
}
|
||||
indent_pop() {
|
||||
indent="${indent%${indent1}}"
|
||||
}
|
||||
|
||||
parse_project() {
|
||||
local file=$1
|
||||
local name=`grep RootNamespace "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
local guid=`grep ProjectGuid "$file" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
|
||||
# save the project GUID to a varaible, normalizing to the basename of the
|
||||
# vcxproj file without the extension
|
||||
local var
|
||||
var=${file##*/}
|
||||
var=${var%%.${sfx}}
|
||||
eval "${var}_file=\"$1\""
|
||||
eval "${var}_name=$name"
|
||||
eval "${var}_guid=$guid"
|
||||
|
||||
cur_config_list=`grep -B1 'Label="Configuration"' $file |
|
||||
grep Condition | cut -d\' -f4`
|
||||
new_config_list=$(for i in $config_list $cur_config_list; do
|
||||
echo $i
|
||||
done | sort | uniq)
|
||||
if [ "$config_list" != "" ] && [ "$config_list" != "$new_config_list" ]; then
|
||||
mixed_platforms=1
|
||||
fi
|
||||
config_list="$new_config_list"
|
||||
eval "${var}_config_list=\"$cur_config_list\""
|
||||
proj_list="${proj_list} ${var}"
|
||||
}
|
||||
|
||||
process_project() {
|
||||
eval "local file=\${$1_file}"
|
||||
eval "local name=\${$1_name}"
|
||||
eval "local guid=\${$1_guid}"
|
||||
|
||||
# save the project GUID to a varaible, normalizing to the basename of the
|
||||
# vcproj file without the extension
|
||||
local var
|
||||
var=${file##*/}
|
||||
var=${var%%.${sfx}}
|
||||
eval "${var}_guid=$guid"
|
||||
|
||||
echo "Project(\"{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}\") = \"$name\", \"$file\", \"$guid\""
|
||||
echo "EndProject"
|
||||
}
|
||||
|
||||
process_global() {
|
||||
echo "Global"
|
||||
indent_push
|
||||
|
||||
#
|
||||
# Solution Configuration Platforms
|
||||
#
|
||||
echo "${indent}GlobalSection(SolutionConfigurationPlatforms) = preSolution"
|
||||
indent_push
|
||||
IFS_bak=${IFS}
|
||||
IFS=$'\r'$'\n'
|
||||
if [ "$mixed_platforms" != "" ]; then
|
||||
config_list="
|
||||
Release|Mixed Platforms
|
||||
Debug|Mixed Platforms"
|
||||
fi
|
||||
for config in ${config_list}; do
|
||||
echo "${indent}$config = $config"
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
#
|
||||
# Project Configuration Platforms
|
||||
#
|
||||
echo "${indent}GlobalSection(ProjectConfigurationPlatforms) = postSolution"
|
||||
indent_push
|
||||
for proj in ${proj_list}; do
|
||||
eval "local proj_guid=\${${proj}_guid}"
|
||||
eval "local proj_config_list=\${${proj}_config_list}"
|
||||
IFS=$'\r'$'\n'
|
||||
for config in ${proj_config_list}; do
|
||||
if [ "$mixed_platforms" != "" ]; then
|
||||
local c=${config%%|*}
|
||||
echo "${indent}${proj_guid}.${c}|Mixed Platforms.ActiveCfg = ${config}"
|
||||
echo "${indent}${proj_guid}.${c}|Mixed Platforms.Build.0 = ${config}"
|
||||
else
|
||||
echo "${indent}${proj_guid}.${config}.ActiveCfg = ${config}"
|
||||
echo "${indent}${proj_guid}.${config}.Build.0 = ${config}"
|
||||
fi
|
||||
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
done
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
#
|
||||
# Solution Properties
|
||||
#
|
||||
echo "${indent}GlobalSection(SolutionProperties) = preSolution"
|
||||
indent_push
|
||||
echo "${indent}HideSolutionNode = FALSE"
|
||||
indent_pop
|
||||
echo "${indent}EndGlobalSection"
|
||||
|
||||
indent_pop
|
||||
echo "EndGlobal"
|
||||
}
|
||||
|
||||
process_makefile() {
|
||||
IFS_bak=${IFS}
|
||||
IFS=$'\r'$'\n'
|
||||
local TAB=$'\t'
|
||||
cat <<EOF
|
||||
MSBUILD_TOOL := msbuild.exe
|
||||
found_devenv := \$(shell which \$(MSBUILD_TOOL) >/dev/null 2>&1 && echo yes)
|
||||
.nodevenv.once:
|
||||
${TAB}@echo " * \$(MSBUILD_TOOL) not found in path."
|
||||
${TAB}@echo " * "
|
||||
${TAB}@echo " * You will have to build all configurations manually using the"
|
||||
${TAB}@echo " * Visual Studio IDE. To allow make to build them automatically,"
|
||||
${TAB}@echo " * add the Common7/IDE directory of your Visual Studio"
|
||||
${TAB}@echo " * installation to your path, eg:"
|
||||
${TAB}@echo " * C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE"
|
||||
${TAB}@echo " * "
|
||||
${TAB}@touch \$@
|
||||
CLEAN-OBJS += \$(if \$(found_devenv),,.nodevenv.once)
|
||||
|
||||
EOF
|
||||
|
||||
for sln_config in ${config_list}; do
|
||||
local config=${sln_config%%|*}
|
||||
local platform=${sln_config##*|}
|
||||
local nows_sln_config=`echo $sln_config | sed -e 's/[^a-zA-Z0-9]/_/g'`
|
||||
cat <<EOF
|
||||
BUILD_TARGETS += \$(if \$(NO_LAUNCH_DEVENV),,$nows_sln_config)
|
||||
clean::
|
||||
${TAB}rm -rf "$platform"/"$config"
|
||||
.PHONY: $nows_sln_config
|
||||
ifneq (\$(found_devenv),)
|
||||
$nows_sln_config: $outfile
|
||||
${TAB}\$(MSBUILD_TOOL) $outfile -m -t:Build \\
|
||||
${TAB}${TAB}-p:Configuration="$config" -p:Platform="$platform"
|
||||
else
|
||||
$nows_sln_config: $outfile .nodevenv.once
|
||||
${TAB}@echo " * Skipping build of $sln_config (\$(MSBUILD_TOOL) not in path)."
|
||||
${TAB}@echo " * "
|
||||
endif
|
||||
|
||||
EOF
|
||||
done
|
||||
IFS=${IFS_bak}
|
||||
}
|
||||
|
||||
# Process command line
|
||||
outfile=/dev/stdout
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--out=*) outfile="${optval}"; mkoutfile="${optval}".mk
|
||||
;;
|
||||
--dep=*) eval "${optval%%:*}_deps=\"\${${optval%%:*}_deps} ${optval##*:}\""
|
||||
;;
|
||||
--ver=*) vs_ver="$optval"
|
||||
case $optval in
|
||||
10|11|12|14)
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*) file_list[${#file_list[@]}]="$opt"
|
||||
esac
|
||||
done
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
mkoutfile=${mkoutfile:-/dev/stdout}
|
||||
case "${vs_ver:-10}" in
|
||||
10) sln_vers="11.00"
|
||||
sln_vers_str="Visual Studio 2010"
|
||||
;;
|
||||
11) sln_vers="12.00"
|
||||
sln_vers_str="Visual Studio 2012"
|
||||
;;
|
||||
12) sln_vers="12.00"
|
||||
sln_vers_str="Visual Studio 2013"
|
||||
;;
|
||||
14) sln_vers="14.00"
|
||||
sln_vers_str="Visual Studio 2015"
|
||||
;;
|
||||
esac
|
||||
sfx=vcxproj
|
||||
|
||||
for f in "${file_list[@]}"; do
|
||||
parse_project $f
|
||||
done
|
||||
cat >${outfile} <<EOF
|
||||
Microsoft Visual Studio Solution File, Format Version $sln_vers${EOLDOS}
|
||||
# $sln_vers_str${EOLDOS}
|
||||
EOF
|
||||
for proj in ${proj_list}; do
|
||||
process_project $proj >>${outfile}
|
||||
done
|
||||
process_global >>${outfile}
|
||||
process_makefile >${mkoutfile}
|
||||
490
media/libvpx/libvpx/build/make/gen_msvs_vcxproj.sh
Normal file
490
media/libvpx/libvpx/build/make/gen_msvs_vcxproj.sh
Normal file
|
|
@ -0,0 +1,490 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2013 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
self=$0
|
||||
self_basename=${self##*/}
|
||||
self_dirname=$(dirname "$0")
|
||||
|
||||
. "$self_dirname/msvs_common.sh"|| exit 127
|
||||
|
||||
show_help() {
|
||||
cat <<EOF
|
||||
Usage: ${self_basename} --name=projname [options] file1 [file2 ...]
|
||||
|
||||
This script generates a Visual Studio project file from a list of source
|
||||
code files.
|
||||
|
||||
Options:
|
||||
--help Print this message
|
||||
--exe Generate a project for building an Application
|
||||
--lib Generate a project for creating a static library
|
||||
--dll Generate a project for creating a dll
|
||||
--static-crt Use the static C runtime (/MT)
|
||||
--enable-werror Treat warnings as errors (/WX)
|
||||
--target=isa-os-cc Target specifier (required)
|
||||
--out=filename Write output to a file [stdout]
|
||||
--name=project_name Name of the project (required)
|
||||
--proj-guid=GUID GUID to use for the project
|
||||
--module-def=filename File containing export definitions (for DLLs)
|
||||
--ver=version Version (10,11,12,14) of visual studio to generate for
|
||||
--src-path-bare=dir Path to root of source tree
|
||||
-Ipath/to/include Additional include directories
|
||||
-DFLAG[=value] Preprocessor macros to define
|
||||
-Lpath/to/lib Additional library search paths
|
||||
-llibname Library to link against
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
tag_content() {
|
||||
local tag=$1
|
||||
local content=$2
|
||||
shift
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
echo "${indent}>${content}</${tag}>"
|
||||
indent_pop
|
||||
else
|
||||
echo "${indent}<${tag}>${content}</${tag}>"
|
||||
fi
|
||||
}
|
||||
|
||||
generate_filter() {
|
||||
local name=$1
|
||||
local pats=$2
|
||||
local file_list_sz
|
||||
local i
|
||||
local f
|
||||
local saveIFS="$IFS"
|
||||
local pack
|
||||
echo "generating filter '$name' from ${#file_list[@]} files" >&2
|
||||
IFS=*
|
||||
|
||||
file_list_sz=${#file_list[@]}
|
||||
for i in ${!file_list[@]}; do
|
||||
f=${file_list[i]}
|
||||
for pat in ${pats//;/$IFS}; do
|
||||
if [ "${f##*.}" == "$pat" ]; then
|
||||
unset file_list[i]
|
||||
|
||||
objf=$(echo ${f%.*}.obj \
|
||||
| sed -e "s,$src_path_bare,," \
|
||||
-e 's/^[\./]\+//g' -e 's,[:/ ],_,g')
|
||||
|
||||
if ([ "$pat" == "asm" ] || [ "$pat" == "s" ] || [ "$pat" == "S" ]) && $asm_use_custom_step; then
|
||||
# Avoid object file name collisions, i.e. vpx_config.c and
|
||||
# vpx_config.asm produce the same object file without
|
||||
# this additional suffix.
|
||||
objf=${objf%.obj}_asm.obj
|
||||
open_tag CustomBuild \
|
||||
Include="$f"
|
||||
for plat in "${platforms[@]}"; do
|
||||
for cfg in Debug Release; do
|
||||
tag_content Message "Assembling %(Filename)%(Extension)" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
tag_content Command "$(eval echo \$asm_${cfg}_cmdline) -o \$(IntDir)$objf" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
tag_content Outputs "\$(IntDir)$objf" \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$cfg|$plat'"
|
||||
done
|
||||
done
|
||||
close_tag CustomBuild
|
||||
elif [ "$pat" == "c" ] || \
|
||||
[ "$pat" == "cc" ] || [ "$pat" == "cpp" ]; then
|
||||
open_tag ClCompile \
|
||||
Include="$f"
|
||||
# Separate file names with Condition?
|
||||
tag_content ObjectFileName "\$(IntDir)$objf"
|
||||
# Check for AVX and turn it on to avoid warnings.
|
||||
if [[ $f =~ avx.?\.c$ ]]; then
|
||||
tag_content AdditionalOptions "/arch:AVX"
|
||||
fi
|
||||
close_tag ClCompile
|
||||
elif [ "$pat" == "h" ] ; then
|
||||
tag ClInclude \
|
||||
Include="$f"
|
||||
elif [ "$pat" == "vcxproj" ] ; then
|
||||
open_tag ProjectReference \
|
||||
Include="$f"
|
||||
depguid=`grep ProjectGuid "$f" | sed 's,.*<.*>\(.*\)</.*>.*,\1,'`
|
||||
tag_content Project "$depguid"
|
||||
tag_content ReferenceOutputAssembly false
|
||||
close_tag ProjectReference
|
||||
else
|
||||
tag None \
|
||||
Include="$f"
|
||||
fi
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
IFS="$saveIFS"
|
||||
}
|
||||
|
||||
# Process command line
|
||||
unset target
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--help|-h) show_help
|
||||
;;
|
||||
--target=*) target="${optval}"
|
||||
;;
|
||||
--out=*) outfile="$optval"
|
||||
;;
|
||||
--name=*) name="${optval}"
|
||||
;;
|
||||
--proj-guid=*) guid="${optval}"
|
||||
;;
|
||||
--module-def=*) module_def="${optval}"
|
||||
;;
|
||||
--exe) proj_kind="exe"
|
||||
;;
|
||||
--dll) proj_kind="dll"
|
||||
;;
|
||||
--lib) proj_kind="lib"
|
||||
;;
|
||||
--src-path-bare=*)
|
||||
src_path_bare=$(fix_path "$optval")
|
||||
src_path_bare=${src_path_bare%/}
|
||||
;;
|
||||
--static-crt) use_static_runtime=true
|
||||
;;
|
||||
--enable-werror) werror=true
|
||||
;;
|
||||
--ver=*)
|
||||
vs_ver="$optval"
|
||||
case "$optval" in
|
||||
10|11|12|14)
|
||||
;;
|
||||
*) die Unrecognized Visual Studio Version in $opt
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I*)
|
||||
opt=${opt##-I}
|
||||
opt=$(fix_path "$opt")
|
||||
opt="${opt%/}"
|
||||
incs="${incs}${incs:+;}"${opt}""
|
||||
yasmincs="${yasmincs} -I"${opt}""
|
||||
;;
|
||||
-D*) defines="${defines}${defines:+;}${opt##-D}"
|
||||
;;
|
||||
-L*) # fudge . to $(OutDir)
|
||||
if [ "${opt##-L}" == "." ]; then
|
||||
libdirs="${libdirs}${libdirs:+;}"\$(OutDir)""
|
||||
else
|
||||
# Also try directories for this platform/configuration
|
||||
opt=${opt##-L}
|
||||
opt=$(fix_path "$opt")
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)/\$(Configuration)""
|
||||
libdirs="${libdirs}${libdirs:+;}"${opt}/\$(PlatformName)""
|
||||
fi
|
||||
;;
|
||||
-l*) libs="${libs}${libs:+ }${opt##-l}.lib"
|
||||
;;
|
||||
-*) die_unknown $opt
|
||||
;;
|
||||
*)
|
||||
# The paths in file_list are fixed outside of the loop.
|
||||
file_list[${#file_list[@]}]="$opt"
|
||||
case "$opt" in
|
||||
*.asm|*.[Ss]) uses_asm=true
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Make one call to fix_path for file_list to improve performance.
|
||||
fix_file_list file_list
|
||||
|
||||
outfile=${outfile:-/dev/stdout}
|
||||
guid=${guid:-`generate_uuid`}
|
||||
asm_use_custom_step=false
|
||||
uses_asm=${uses_asm:-false}
|
||||
case "${vs_ver:-11}" in
|
||||
10|11|12|14)
|
||||
asm_use_custom_step=$uses_asm
|
||||
;;
|
||||
esac
|
||||
|
||||
[ -n "$name" ] || die "Project name (--name) must be specified!"
|
||||
[ -n "$target" ] || die "Target (--target) must be specified!"
|
||||
|
||||
if ${use_static_runtime:-false}; then
|
||||
release_runtime=MultiThreaded
|
||||
debug_runtime=MultiThreadedDebug
|
||||
lib_sfx=mt
|
||||
else
|
||||
release_runtime=MultiThreadedDLL
|
||||
debug_runtime=MultiThreadedDebugDLL
|
||||
lib_sfx=md
|
||||
fi
|
||||
|
||||
# Calculate debug lib names: If a lib ends in ${lib_sfx}.lib, then rename
|
||||
# it to ${lib_sfx}d.lib. This precludes linking to release libs from a
|
||||
# debug exe, so this may need to be refactored later.
|
||||
for lib in ${libs}; do
|
||||
if [ "$lib" != "${lib%${lib_sfx}.lib}" ]; then
|
||||
lib=${lib%.lib}d.lib
|
||||
fi
|
||||
debug_libs="${debug_libs}${debug_libs:+ }${lib}"
|
||||
done
|
||||
debug_libs=${debug_libs// /;}
|
||||
libs=${libs// /;}
|
||||
|
||||
|
||||
# List of all platforms supported for this target
|
||||
case "$target" in
|
||||
x86_64*)
|
||||
platforms[0]="x64"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win64 ${yasmincs} "%(FullPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win64 ${yasmincs} "%(FullPath)""
|
||||
;;
|
||||
x86*)
|
||||
platforms[0]="Win32"
|
||||
asm_Debug_cmdline="yasm -Xvc -g cv8 -f win32 ${yasmincs} "%(FullPath)""
|
||||
asm_Release_cmdline="yasm -Xvc -f win32 ${yasmincs} "%(FullPath)""
|
||||
;;
|
||||
arm*)
|
||||
platforms[0]="ARM"
|
||||
asm_Debug_cmdline="armasm -nologo -oldit "%(FullPath)""
|
||||
asm_Release_cmdline="armasm -nologo -oldit "%(FullPath)""
|
||||
;;
|
||||
*) die "Unsupported target $target!"
|
||||
;;
|
||||
esac
|
||||
|
||||
generate_vcxproj() {
|
||||
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
|
||||
open_tag Project \
|
||||
DefaultTargets="Build" \
|
||||
ToolsVersion="4.0" \
|
||||
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" \
|
||||
|
||||
open_tag ItemGroup \
|
||||
Label="ProjectConfigurations"
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Debug Release; do
|
||||
open_tag ProjectConfiguration \
|
||||
Include="$config|$plat"
|
||||
tag_content Configuration $config
|
||||
tag_content Platform $plat
|
||||
close_tag ProjectConfiguration
|
||||
done
|
||||
done
|
||||
close_tag ItemGroup
|
||||
|
||||
open_tag PropertyGroup \
|
||||
Label="Globals"
|
||||
tag_content ProjectGuid "{${guid}}"
|
||||
tag_content RootNamespace ${name}
|
||||
tag_content Keyword ManagedCProj
|
||||
if [ $vs_ver -ge 12 ] && [ "${platforms[0]}" = "ARM" ]; then
|
||||
tag_content AppContainerApplication true
|
||||
# The application type can be one of "Windows Store",
|
||||
# "Windows Phone" or "Windows Phone Silverlight". The
|
||||
# actual value doesn't matter from the libvpx point of view,
|
||||
# since a static library built for one works on the others.
|
||||
# The PlatformToolset field needs to be set in sync with this;
|
||||
# for Windows Store and Windows Phone Silverlight it should be
|
||||
# v120 while it should be v120_wp81 if the type is Windows Phone.
|
||||
tag_content ApplicationType "Windows Store"
|
||||
tag_content ApplicationTypeRevision 8.1
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.Default.props"
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Release Debug; do
|
||||
open_tag PropertyGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'" \
|
||||
Label="Configuration"
|
||||
if [ "$proj_kind" = "exe" ]; then
|
||||
tag_content ConfigurationType Application
|
||||
elif [ "$proj_kind" = "dll" ]; then
|
||||
tag_content ConfigurationType DynamicLibrary
|
||||
else
|
||||
tag_content ConfigurationType StaticLibrary
|
||||
fi
|
||||
if [ "$vs_ver" = "11" ]; then
|
||||
if [ "$plat" = "ARM" ]; then
|
||||
# Setting the wp80 toolchain automatically sets the
|
||||
# WINAPI_FAMILY define, which is required for building
|
||||
# code for arm with the windows headers. Alternatively,
|
||||
# one could add AppContainerApplication=true in the Globals
|
||||
# section and add PrecompiledHeader=NotUsing and
|
||||
# CompileAsWinRT=false in ClCompile and SubSystem=Console
|
||||
# in Link.
|
||||
tag_content PlatformToolset v110_wp80
|
||||
else
|
||||
tag_content PlatformToolset v110
|
||||
fi
|
||||
fi
|
||||
if [ "$vs_ver" = "12" ]; then
|
||||
# Setting a PlatformToolset indicating windows phone isn't
|
||||
# enough to build code for arm with MSVC 2013, one strictly
|
||||
# has to enable AppContainerApplication as well.
|
||||
tag_content PlatformToolset v120
|
||||
fi
|
||||
if [ "$vs_ver" = "14" ]; then
|
||||
tag_content PlatformToolset v140
|
||||
fi
|
||||
tag_content CharacterSet Unicode
|
||||
if [ "$config" = "Release" ]; then
|
||||
tag_content WholeProgramOptimization true
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
done
|
||||
done
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.props"
|
||||
|
||||
open_tag ImportGroup \
|
||||
Label="PropertySheets"
|
||||
tag Import \
|
||||
Project="\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props" \
|
||||
Condition="exists('\$(UserRootDir)\\Microsoft.Cpp.\$(Platform).user.props')" \
|
||||
Label="LocalAppDataPlatform"
|
||||
close_tag ImportGroup
|
||||
|
||||
tag PropertyGroup \
|
||||
Label="UserMacros"
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
plat_no_ws=`echo $plat | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
for config in Debug Release; do
|
||||
open_tag PropertyGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'"
|
||||
tag_content OutDir "\$(SolutionDir)$plat_no_ws\\\$(Configuration)\\"
|
||||
tag_content IntDir "$plat_no_ws\\\$(Configuration)\\${name}\\"
|
||||
if [ "$proj_kind" == "lib" ]; then
|
||||
if [ "$config" == "Debug" ]; then
|
||||
config_suffix=d
|
||||
else
|
||||
config_suffix=""
|
||||
fi
|
||||
tag_content TargetName "${name}${lib_sfx}${config_suffix}"
|
||||
fi
|
||||
close_tag PropertyGroup
|
||||
done
|
||||
done
|
||||
|
||||
for plat in "${platforms[@]}"; do
|
||||
for config in Debug Release; do
|
||||
open_tag ItemDefinitionGroup \
|
||||
Condition="'\$(Configuration)|\$(Platform)'=='$config|$plat'"
|
||||
if [ "$name" == "vpx" ]; then
|
||||
hostplat=$plat
|
||||
if [ "$hostplat" == "ARM" ]; then
|
||||
hostplat=Win32
|
||||
fi
|
||||
fi
|
||||
open_tag ClCompile
|
||||
if [ "$config" = "Debug" ]; then
|
||||
opt=Disabled
|
||||
runtime=$debug_runtime
|
||||
curlibs=$debug_libs
|
||||
debug=_DEBUG
|
||||
else
|
||||
opt=MaxSpeed
|
||||
runtime=$release_runtime
|
||||
curlibs=$libs
|
||||
tag_content FavorSizeOrSpeed Speed
|
||||
debug=NDEBUG
|
||||
fi
|
||||
extradefines=";$defines"
|
||||
tag_content Optimization $opt
|
||||
tag_content AdditionalIncludeDirectories "$incs;%(AdditionalIncludeDirectories)"
|
||||
tag_content PreprocessorDefinitions "WIN32;$debug;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE$extradefines;%(PreprocessorDefinitions)"
|
||||
tag_content RuntimeLibrary $runtime
|
||||
tag_content WarningLevel Level3
|
||||
if ${werror:-false}; then
|
||||
tag_content TreatWarningAsError true
|
||||
fi
|
||||
if [ $vs_ver -ge 11 ]; then
|
||||
# We need to override the defaults for these settings
|
||||
# if AppContainerApplication is set.
|
||||
tag_content CompileAsWinRT false
|
||||
tag_content PrecompiledHeader NotUsing
|
||||
tag_content SDLCheck false
|
||||
fi
|
||||
close_tag ClCompile
|
||||
case "$proj_kind" in
|
||||
exe)
|
||||
open_tag Link
|
||||
tag_content GenerateDebugInformation true
|
||||
# Console is the default normally, but if
|
||||
# AppContainerApplication is set, we need to override it.
|
||||
tag_content SubSystem Console
|
||||
close_tag Link
|
||||
;;
|
||||
dll)
|
||||
open_tag Link
|
||||
tag_content GenerateDebugInformation true
|
||||
tag_content ModuleDefinitionFile $module_def
|
||||
close_tag Link
|
||||
;;
|
||||
lib)
|
||||
;;
|
||||
esac
|
||||
close_tag ItemDefinitionGroup
|
||||
done
|
||||
|
||||
done
|
||||
|
||||
open_tag ItemGroup
|
||||
generate_filter "Source Files" "c;cc;cpp;def;odl;idl;hpj;bat;asm;asmx;s;S"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "Header Files" "h;hm;inl;inc;xsd"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "Build Files" "mk"
|
||||
close_tag ItemGroup
|
||||
open_tag ItemGroup
|
||||
generate_filter "References" "vcxproj"
|
||||
close_tag ItemGroup
|
||||
|
||||
tag Import \
|
||||
Project="\$(VCTargetsPath)\\Microsoft.Cpp.targets"
|
||||
|
||||
open_tag ImportGroup \
|
||||
Label="ExtensionTargets"
|
||||
close_tag ImportGroup
|
||||
|
||||
close_tag Project
|
||||
|
||||
# This must be done from within the {} subshell
|
||||
echo "Ignored files list (${#file_list[@]} items) is:" >&2
|
||||
for f in "${file_list[@]}"; do
|
||||
echo " $f" >&2
|
||||
done
|
||||
}
|
||||
|
||||
# This regexp doesn't catch most of the strings in the vcxproj format,
|
||||
# since they're like <tag>path</tag> instead of <tag attr="path" />
|
||||
# as previously. It still seems to work ok despite this.
|
||||
generate_vcxproj |
|
||||
sed -e '/"/s;\([^ "]\)/;\1\\;g' |
|
||||
sed -e '/xmlns/s;\\;/;g' > ${outfile}
|
||||
|
||||
exit
|
||||
37
media/libvpx/libvpx/build/make/ios-Info.plist
Normal file
37
media/libvpx/libvpx/build/make/ios-Info.plist
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>VPX</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.webmproject.VPX</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>VPX</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${VERSION}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>${VERSION}</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>${IOS_VERSION_MIN}</string>
|
||||
<key>UIDeviceFamily</key>
|
||||
<array>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
</array>
|
||||
<key>VPXFullVersion</key>
|
||||
<string>${FULLVERSION}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
383
media/libvpx/libvpx/build/make/iosbuild.sh
Normal file
383
media/libvpx/libvpx/build/make/iosbuild.sh
Normal file
|
|
@ -0,0 +1,383 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2014 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
##
|
||||
## This script generates 'VPX.framework'. An iOS app can encode and decode VPx
|
||||
## video by including 'VPX.framework'.
|
||||
##
|
||||
## Run iosbuild.sh to create 'VPX.framework' in the current directory.
|
||||
##
|
||||
set -e
|
||||
devnull='> /dev/null 2>&1'
|
||||
|
||||
BUILD_ROOT="_iosbuild"
|
||||
CONFIGURE_ARGS="--disable-docs
|
||||
--disable-examples
|
||||
--disable-libyuv
|
||||
--disable-unit-tests"
|
||||
DIST_DIR="_dist"
|
||||
FRAMEWORK_DIR="VPX.framework"
|
||||
FRAMEWORK_LIB="VPX.framework/VPX"
|
||||
HEADER_DIR="${FRAMEWORK_DIR}/Headers/vpx"
|
||||
SCRIPT_DIR=$(dirname "$0")
|
||||
LIBVPX_SOURCE_DIR=$(cd ${SCRIPT_DIR}/../..; pwd)
|
||||
LIPO=$(xcrun -sdk iphoneos${SDK} -find lipo)
|
||||
ORIG_PWD="$(pwd)"
|
||||
ARM_TARGETS="arm64-darwin-gcc
|
||||
armv7-darwin-gcc
|
||||
armv7s-darwin-gcc"
|
||||
SIM_TARGETS="x86-iphonesimulator-gcc
|
||||
x86_64-iphonesimulator-gcc"
|
||||
OSX_TARGETS="x86-darwin15-gcc
|
||||
x86_64-darwin15-gcc"
|
||||
TARGETS="${ARM_TARGETS} ${SIM_TARGETS}"
|
||||
|
||||
# Configures for the target specified by $1, and invokes make with the dist
|
||||
# target using $DIST_DIR as the distribution output directory.
|
||||
build_target() {
|
||||
local target="$1"
|
||||
local old_pwd="$(pwd)"
|
||||
local target_specific_flags=""
|
||||
|
||||
vlog "***Building target: ${target}***"
|
||||
|
||||
case "${target}" in
|
||||
x86-*)
|
||||
target_specific_flags="--enable-pic"
|
||||
vlog "Enabled PIC for ${target}"
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir "${target}"
|
||||
cd "${target}"
|
||||
eval "${LIBVPX_SOURCE_DIR}/configure" --target="${target}" \
|
||||
${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS} ${target_specific_flags} \
|
||||
${devnull}
|
||||
export DIST_DIR
|
||||
eval make dist ${devnull}
|
||||
cd "${old_pwd}"
|
||||
|
||||
vlog "***Done building target: ${target}***"
|
||||
}
|
||||
|
||||
# Returns the preprocessor symbol for the target specified by $1.
|
||||
target_to_preproc_symbol() {
|
||||
target="$1"
|
||||
case "${target}" in
|
||||
arm64-*)
|
||||
echo "__aarch64__"
|
||||
;;
|
||||
armv7-*)
|
||||
echo "__ARM_ARCH_7A__"
|
||||
;;
|
||||
armv7s-*)
|
||||
echo "__ARM_ARCH_7S__"
|
||||
;;
|
||||
x86-*)
|
||||
echo "__i386__"
|
||||
;;
|
||||
x86_64-*)
|
||||
echo "__x86_64__"
|
||||
;;
|
||||
*)
|
||||
echo "#error ${target} unknown/unsupported"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Create a vpx_config.h shim that, based on preprocessor settings for the
|
||||
# current target CPU, includes the real vpx_config.h for the current target.
|
||||
# $1 is the list of targets.
|
||||
create_vpx_framework_config_shim() {
|
||||
local targets="$1"
|
||||
local config_file="${HEADER_DIR}/vpx_config.h"
|
||||
local preproc_symbol=""
|
||||
local target=""
|
||||
local include_guard="VPX_FRAMEWORK_HEADERS_VPX_VPX_CONFIG_H_"
|
||||
|
||||
local file_header="/*
|
||||
* Copyright (c) $(date +%Y) The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* GENERATED FILE: DO NOT EDIT! */
|
||||
|
||||
#ifndef ${include_guard}
|
||||
#define ${include_guard}
|
||||
|
||||
#if defined"
|
||||
|
||||
printf "%s" "${file_header}" > "${config_file}"
|
||||
for target in ${targets}; do
|
||||
preproc_symbol=$(target_to_preproc_symbol "${target}")
|
||||
printf " ${preproc_symbol}\n" >> "${config_file}"
|
||||
printf "#define VPX_FRAMEWORK_TARGET \"${target}\"\n" >> "${config_file}"
|
||||
printf "#include \"VPX/vpx/${target}/vpx_config.h\"\n" >> "${config_file}"
|
||||
printf "#elif defined" >> "${config_file}"
|
||||
mkdir "${HEADER_DIR}/${target}"
|
||||
cp -p "${BUILD_ROOT}/${target}/vpx_config.h" "${HEADER_DIR}/${target}"
|
||||
done
|
||||
|
||||
# Consume the last line of output from the loop: We don't want it.
|
||||
sed -i '' -e '$d' "${config_file}"
|
||||
|
||||
printf "#endif\n\n" >> "${config_file}"
|
||||
printf "#endif // ${include_guard}" >> "${config_file}"
|
||||
}
|
||||
|
||||
# Verifies that $FRAMEWORK_LIB fat library contains requested builds.
|
||||
verify_framework_targets() {
|
||||
local requested_cpus=""
|
||||
local cpu=""
|
||||
|
||||
# Extract CPU from full target name.
|
||||
for target; do
|
||||
cpu="${target%%-*}"
|
||||
if [ "${cpu}" = "x86" ]; then
|
||||
# lipo -info outputs i386 for libvpx x86 targets.
|
||||
cpu="i386"
|
||||
fi
|
||||
requested_cpus="${requested_cpus}${cpu} "
|
||||
done
|
||||
|
||||
# Get target CPUs present in framework library.
|
||||
local targets_built=$(${LIPO} -info ${FRAMEWORK_LIB})
|
||||
|
||||
# $LIPO -info outputs a string like the following:
|
||||
# Architectures in the fat file: $FRAMEWORK_LIB <architectures>
|
||||
# Capture only the architecture strings.
|
||||
targets_built=${targets_built##*: }
|
||||
|
||||
# Sort CPU strings to make the next step a simple string compare.
|
||||
local actual=$(echo ${targets_built} | tr " " "\n" | sort | tr "\n" " ")
|
||||
local requested=$(echo ${requested_cpus} | tr " " "\n" | sort | tr "\n" " ")
|
||||
|
||||
vlog "Requested ${FRAMEWORK_LIB} CPUs: ${requested}"
|
||||
vlog "Actual ${FRAMEWORK_LIB} CPUs: ${actual}"
|
||||
|
||||
if [ "${requested}" != "${actual}" ]; then
|
||||
elog "Actual ${FRAMEWORK_LIB} targets do not match requested target list."
|
||||
elog " Requested target CPUs: ${requested}"
|
||||
elog " Actual target CPUs: ${actual}"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# Configures and builds each target specified by $1, and then builds
|
||||
# VPX.framework.
|
||||
build_framework() {
|
||||
local lib_list=""
|
||||
local targets="$1"
|
||||
local target=""
|
||||
local target_dist_dir=""
|
||||
|
||||
# Clean up from previous build(s).
|
||||
rm -rf "${BUILD_ROOT}" "${FRAMEWORK_DIR}"
|
||||
|
||||
# Create output dirs.
|
||||
mkdir -p "${BUILD_ROOT}"
|
||||
mkdir -p "${HEADER_DIR}"
|
||||
|
||||
cd "${BUILD_ROOT}"
|
||||
|
||||
for target in ${targets}; do
|
||||
build_target "${target}"
|
||||
target_dist_dir="${BUILD_ROOT}/${target}/${DIST_DIR}"
|
||||
if [ "${ENABLE_SHARED}" = "yes" ]; then
|
||||
local suffix="dylib"
|
||||
else
|
||||
local suffix="a"
|
||||
fi
|
||||
lib_list="${lib_list} ${target_dist_dir}/lib/libvpx.${suffix}"
|
||||
done
|
||||
|
||||
cd "${ORIG_PWD}"
|
||||
|
||||
# The basic libvpx API includes are all the same; just grab the most recent
|
||||
# set.
|
||||
cp -p "${target_dist_dir}"/include/vpx/* "${HEADER_DIR}"
|
||||
|
||||
# Build the fat library.
|
||||
${LIPO} -create ${lib_list} -output ${FRAMEWORK_DIR}/VPX
|
||||
|
||||
# Create the vpx_config.h shim that allows usage of vpx_config.h from
|
||||
# within VPX.framework.
|
||||
create_vpx_framework_config_shim "${targets}"
|
||||
|
||||
# Copy in vpx_version.h.
|
||||
cp -p "${BUILD_ROOT}/${target}/vpx_version.h" "${HEADER_DIR}"
|
||||
|
||||
if [ "${ENABLE_SHARED}" = "yes" ]; then
|
||||
# Adjust the dylib's name so dynamic linking in apps works as expected.
|
||||
install_name_tool -id '@rpath/VPX.framework/VPX' ${FRAMEWORK_DIR}/VPX
|
||||
|
||||
# Copy in Info.plist.
|
||||
cat "${SCRIPT_DIR}/ios-Info.plist" \
|
||||
| sed "s/\${FULLVERSION}/${FULLVERSION}/g" \
|
||||
| sed "s/\${VERSION}/${VERSION}/g" \
|
||||
| sed "s/\${IOS_VERSION_MIN}/${IOS_VERSION_MIN}/g" \
|
||||
> "${FRAMEWORK_DIR}/Info.plist"
|
||||
fi
|
||||
|
||||
# Confirm VPX.framework/VPX contains the targets requested.
|
||||
verify_framework_targets ${targets}
|
||||
|
||||
vlog "Created fat library ${FRAMEWORK_LIB} containing:"
|
||||
for lib in ${lib_list}; do
|
||||
vlog " $(echo ${lib} | awk -F / '{print $2, $NF}')"
|
||||
done
|
||||
}
|
||||
|
||||
# Trap function. Cleans up the subtree used to build all targets contained in
|
||||
# $TARGETS.
|
||||
cleanup() {
|
||||
local readonly res=$?
|
||||
cd "${ORIG_PWD}"
|
||||
|
||||
if [ $res -ne 0 ]; then
|
||||
elog "build exited with error ($res)"
|
||||
fi
|
||||
|
||||
if [ "${PRESERVE_BUILD_OUTPUT}" != "yes" ]; then
|
||||
rm -rf "${BUILD_ROOT}"
|
||||
fi
|
||||
}
|
||||
|
||||
print_list() {
|
||||
local indent="$1"
|
||||
shift
|
||||
local list="$@"
|
||||
for entry in ${list}; do
|
||||
echo "${indent}${entry}"
|
||||
done
|
||||
}
|
||||
|
||||
iosbuild_usage() {
|
||||
cat << EOF
|
||||
Usage: ${0##*/} [arguments]
|
||||
--help: Display this message and exit.
|
||||
--enable-shared: Build a dynamic framework for use on iOS 8 or later.
|
||||
--extra-configure-args <args>: Extra args to pass when configuring libvpx.
|
||||
--macosx: Uses darwin15 targets instead of iphonesimulator targets for x86
|
||||
and x86_64. Allows linking to framework when builds target MacOSX
|
||||
instead of iOS.
|
||||
--preserve-build-output: Do not delete the build directory.
|
||||
--show-build-output: Show output from each library build.
|
||||
--targets <targets>: Override default target list. Defaults:
|
||||
$(print_list " " ${TARGETS})
|
||||
--test-link: Confirms all targets can be linked. Functionally identical to
|
||||
passing --enable-examples via --extra-configure-args.
|
||||
--verbose: Output information about the environment and each stage of the
|
||||
build.
|
||||
EOF
|
||||
}
|
||||
|
||||
elog() {
|
||||
echo "${0##*/} failed because: $@" 1>&2
|
||||
}
|
||||
|
||||
vlog() {
|
||||
if [ "${VERBOSE}" = "yes" ]; then
|
||||
echo "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
# Parse the command line.
|
||||
while [ -n "$1" ]; do
|
||||
case "$1" in
|
||||
--extra-configure-args)
|
||||
EXTRA_CONFIGURE_ARGS="$2"
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
iosbuild_usage
|
||||
exit
|
||||
;;
|
||||
--enable-shared)
|
||||
ENABLE_SHARED=yes
|
||||
;;
|
||||
--preserve-build-output)
|
||||
PRESERVE_BUILD_OUTPUT=yes
|
||||
;;
|
||||
--show-build-output)
|
||||
devnull=
|
||||
;;
|
||||
--test-link)
|
||||
EXTRA_CONFIGURE_ARGS="${EXTRA_CONFIGURE_ARGS} --enable-examples"
|
||||
;;
|
||||
--targets)
|
||||
TARGETS="$2"
|
||||
shift
|
||||
;;
|
||||
--macosx)
|
||||
TARGETS="${ARM_TARGETS} ${OSX_TARGETS}"
|
||||
;;
|
||||
--verbose)
|
||||
VERBOSE=yes
|
||||
;;
|
||||
*)
|
||||
iosbuild_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ "${ENABLE_SHARED}" = "yes" ]; then
|
||||
CONFIGURE_ARGS="--enable-shared ${CONFIGURE_ARGS}"
|
||||
fi
|
||||
|
||||
FULLVERSION=$("${SCRIPT_DIR}"/version.sh --bare "${LIBVPX_SOURCE_DIR}")
|
||||
VERSION=$(echo "${FULLVERSION}" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+).*$/\1/')
|
||||
|
||||
if [ "$ENABLE_SHARED" = "yes" ]; then
|
||||
IOS_VERSION_OPTIONS="--enable-shared"
|
||||
IOS_VERSION_MIN="8.0"
|
||||
else
|
||||
IOS_VERSION_OPTIONS=""
|
||||
IOS_VERSION_MIN="6.0"
|
||||
fi
|
||||
|
||||
if [ "${VERBOSE}" = "yes" ]; then
|
||||
cat << EOF
|
||||
BUILD_ROOT=${BUILD_ROOT}
|
||||
DIST_DIR=${DIST_DIR}
|
||||
CONFIGURE_ARGS=${CONFIGURE_ARGS}
|
||||
EXTRA_CONFIGURE_ARGS=${EXTRA_CONFIGURE_ARGS}
|
||||
FRAMEWORK_DIR=${FRAMEWORK_DIR}
|
||||
FRAMEWORK_LIB=${FRAMEWORK_LIB}
|
||||
HEADER_DIR=${HEADER_DIR}
|
||||
LIBVPX_SOURCE_DIR=${LIBVPX_SOURCE_DIR}
|
||||
LIPO=${LIPO}
|
||||
MAKEFLAGS=${MAKEFLAGS}
|
||||
ORIG_PWD=${ORIG_PWD}
|
||||
PRESERVE_BUILD_OUTPUT=${PRESERVE_BUILD_OUTPUT}
|
||||
TARGETS="$(print_list "" ${TARGETS})"
|
||||
ENABLE_SHARED=${ENABLE_SHARED}
|
||||
OSX_TARGETS="${OSX_TARGETS}"
|
||||
SIM_TARGETS="${SIM_TARGETS}"
|
||||
SCRIPT_DIR="${SCRIPT_DIR}"
|
||||
FULLVERSION="${FULLVERSION}"
|
||||
VERSION="${VERSION}"
|
||||
IOS_VERSION_MIN="${IOS_VERSION_MIN}"
|
||||
EOF
|
||||
fi
|
||||
|
||||
build_framework "${TARGETS}"
|
||||
echo "Successfully built '${FRAMEWORK_DIR}' for:"
|
||||
print_list "" ${TARGETS}
|
||||
114
media/libvpx/libvpx/build/make/msvs_common.sh
Normal file
114
media/libvpx/libvpx/build/make/msvs_common.sh
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
#!/bin/bash
|
||||
##
|
||||
## Copyright (c) 2014 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
if [ "$(uname -o 2>/dev/null)" = "Cygwin" ] \
|
||||
&& cygpath --help >/dev/null 2>&1; then
|
||||
FIXPATH='cygpath -m'
|
||||
else
|
||||
FIXPATH='echo_path'
|
||||
fi
|
||||
|
||||
die() {
|
||||
echo "${self_basename}: $@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
die_unknown(){
|
||||
echo "Unknown option \"$1\"." >&2
|
||||
echo "See ${self_basename} --help for available options." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo_path() {
|
||||
for path; do
|
||||
echo "$path"
|
||||
done
|
||||
}
|
||||
|
||||
# Output one, possibly changed based on the system, path per line.
|
||||
fix_path() {
|
||||
$FIXPATH "$@"
|
||||
}
|
||||
|
||||
# Corrects the paths in file_list in one pass for efficiency.
|
||||
# $1 is the name of the array to be modified.
|
||||
fix_file_list() {
|
||||
declare -n array_ref=$1
|
||||
files=$(fix_path "${array_ref[@]}")
|
||||
local IFS=$'\n'
|
||||
array_ref=($files)
|
||||
}
|
||||
|
||||
generate_uuid() {
|
||||
local hex="0123456789ABCDEF"
|
||||
local i
|
||||
local uuid=""
|
||||
local j
|
||||
#93995380-89BD-4b04-88EB-625FBE52EBFB
|
||||
for ((i=0; i<32; i++)); do
|
||||
(( j = $RANDOM % 16 ))
|
||||
uuid="${uuid}${hex:$j:1}"
|
||||
done
|
||||
echo "${uuid:0:8}-${uuid:8:4}-${uuid:12:4}-${uuid:16:4}-${uuid:20:12}"
|
||||
}
|
||||
|
||||
indent1=" "
|
||||
indent=""
|
||||
indent_push() {
|
||||
indent="${indent}${indent1}"
|
||||
}
|
||||
indent_pop() {
|
||||
indent="${indent%${indent1}}"
|
||||
}
|
||||
|
||||
tag_attributes() {
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
[ -n "${optval}" ] ||
|
||||
die "Missing attribute value in '$opt' while generating $tag tag"
|
||||
echo "${indent}${opt%%=*}=\"${optval}\""
|
||||
done
|
||||
}
|
||||
|
||||
open_tag() {
|
||||
local tag=$1
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
echo "${indent}>"
|
||||
else
|
||||
echo "${indent}<${tag}>"
|
||||
indent_push
|
||||
fi
|
||||
}
|
||||
|
||||
close_tag() {
|
||||
local tag=$1
|
||||
indent_pop
|
||||
echo "${indent}</${tag}>"
|
||||
}
|
||||
|
||||
tag() {
|
||||
local tag=$1
|
||||
shift
|
||||
if [ $# -ne 0 ]; then
|
||||
echo "${indent}<${tag}"
|
||||
indent_push
|
||||
tag_attributes "$@"
|
||||
indent_pop
|
||||
echo "${indent}/>"
|
||||
else
|
||||
echo "${indent}<${tag}/>"
|
||||
fi
|
||||
}
|
||||
|
||||
421
media/libvpx/libvpx/build/make/rtcd.pl
Normal file
421
media/libvpx/libvpx/build/make/rtcd.pl
Normal file
|
|
@ -0,0 +1,421 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
no strict 'refs';
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
Getopt::Long::Configure("auto_help") if $Getopt::Long::VERSION > 2.32;
|
||||
|
||||
my %ALL_FUNCS = ();
|
||||
my @ALL_ARCHS;
|
||||
my @ALL_FORWARD_DECLS;
|
||||
my @REQUIRES;
|
||||
|
||||
my %opts = ();
|
||||
my %disabled = ();
|
||||
my %required = ();
|
||||
|
||||
my @argv;
|
||||
foreach (@ARGV) {
|
||||
$disabled{$1} = 1, next if /--disable-(.*)/;
|
||||
$required{$1} = 1, next if /--require-(.*)/;
|
||||
push @argv, $_;
|
||||
}
|
||||
|
||||
# NB: use GetOptions() instead of GetOptionsFromArray() for compatibility.
|
||||
@ARGV = @argv;
|
||||
GetOptions(
|
||||
\%opts,
|
||||
'arch=s',
|
||||
'sym=s',
|
||||
'config=s',
|
||||
);
|
||||
|
||||
foreach my $opt (qw/arch config/) {
|
||||
if (!defined($opts{$opt})) {
|
||||
warn "--$opt is required!\n";
|
||||
Getopt::Long::HelpMessage('-exit' => 1);
|
||||
}
|
||||
}
|
||||
|
||||
foreach my $defs_file (@ARGV) {
|
||||
if (!-f $defs_file) {
|
||||
warn "$defs_file: $!\n";
|
||||
Getopt::Long::HelpMessage('-exit' => 1);
|
||||
}
|
||||
}
|
||||
|
||||
open CONFIG_FILE, $opts{config} or
|
||||
die "Error opening config file '$opts{config}': $!\n";
|
||||
|
||||
my %config = ();
|
||||
while (<CONFIG_FILE>) {
|
||||
next if !/^(?:CONFIG_|HAVE_)/;
|
||||
chomp;
|
||||
my @pair = split /=/;
|
||||
$config{$pair[0]} = $pair[1];
|
||||
}
|
||||
close CONFIG_FILE;
|
||||
|
||||
#
|
||||
# Routines for the RTCD DSL to call
|
||||
#
|
||||
sub vpx_config($) {
|
||||
return (defined $config{$_[0]}) ? $config{$_[0]} : "";
|
||||
}
|
||||
|
||||
sub specialize {
|
||||
my $fn=$_[0];
|
||||
shift;
|
||||
foreach my $opt (@_) {
|
||||
eval "\$${fn}_${opt}=${fn}_${opt}";
|
||||
}
|
||||
}
|
||||
|
||||
sub add_proto {
|
||||
my $fn = splice(@_, -2, 1);
|
||||
$ALL_FUNCS{$fn} = \@_;
|
||||
specialize $fn, "c";
|
||||
}
|
||||
|
||||
sub require {
|
||||
foreach my $fn (keys %ALL_FUNCS) {
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
|
||||
# if we already have a default, then we can disable it, as we know
|
||||
# we can do better.
|
||||
my $best = eval "\$${fn}_default";
|
||||
if ($best) {
|
||||
my $best_ofn = eval "\$${best}";
|
||||
if ($best_ofn && "$best_ofn" ne "$ofn") {
|
||||
eval "\$${best}_link = 'false'";
|
||||
}
|
||||
}
|
||||
eval "\$${fn}_default=${fn}_${opt}";
|
||||
eval "\$${fn}_${opt}_link='true'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub forward_decls {
|
||||
push @ALL_FORWARD_DECLS, @_;
|
||||
}
|
||||
|
||||
#
|
||||
# Include the user's directives
|
||||
#
|
||||
foreach my $f (@ARGV) {
|
||||
open FILE, "<", $f or die "cannot open $f: $!\n";
|
||||
my $contents = join('', <FILE>);
|
||||
close FILE;
|
||||
eval $contents or warn "eval failed: $@\n";
|
||||
}
|
||||
|
||||
#
|
||||
# Process the directives according to the command line
|
||||
#
|
||||
sub process_forward_decls() {
|
||||
foreach (@ALL_FORWARD_DECLS) {
|
||||
$_->();
|
||||
}
|
||||
}
|
||||
|
||||
sub determine_indirection {
|
||||
vpx_config("CONFIG_RUNTIME_CPU_DETECT") eq "yes" or &require(@ALL_ARCHS);
|
||||
foreach my $fn (keys %ALL_FUNCS) {
|
||||
my $n = "";
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
my $link = eval "\$${fn}_${opt}_link";
|
||||
next if $link && $link eq "false";
|
||||
$n .= "x";
|
||||
}
|
||||
if ($n eq "x") {
|
||||
eval "\$${fn}_indirect = 'false'";
|
||||
} else {
|
||||
eval "\$${fn}_indirect = 'true'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub declare_function_pointers {
|
||||
foreach my $fn (sort keys %ALL_FUNCS) {
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
print "$rtyp ${ofn}($args);\n";
|
||||
}
|
||||
if (eval "\$${fn}_indirect" eq "false") {
|
||||
print "#define ${fn} ${dfn}\n";
|
||||
} else {
|
||||
print "RTCD_EXTERN $rtyp (*${fn})($args);\n";
|
||||
}
|
||||
print "\n";
|
||||
}
|
||||
}
|
||||
|
||||
sub set_function_pointers {
|
||||
foreach my $fn (sort keys %ALL_FUNCS) {
|
||||
my @val = @{$ALL_FUNCS{$fn}};
|
||||
my $args = pop @val;
|
||||
my $rtyp = "@val";
|
||||
my $dfn = eval "\$${fn}_default";
|
||||
$dfn = eval "\$${dfn}";
|
||||
if (eval "\$${fn}_indirect" eq "true") {
|
||||
print " $fn = $dfn;\n";
|
||||
foreach my $opt (@_) {
|
||||
my $ofn = eval "\$${fn}_${opt}";
|
||||
next if !$ofn;
|
||||
next if "$ofn" eq "$dfn";
|
||||
my $link = eval "\$${fn}_${opt}_link";
|
||||
next if $link && $link eq "false";
|
||||
my $cond = eval "\$have_${opt}";
|
||||
print " if (${cond}) $fn = $ofn;\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub filter {
|
||||
my @filtered;
|
||||
foreach (@_) { push @filtered, $_ unless $disabled{$_}; }
|
||||
return @filtered;
|
||||
}
|
||||
|
||||
#
|
||||
# Helper functions for generating the arch specific RTCD files
|
||||
#
|
||||
sub common_top() {
|
||||
my $include_guard = uc($opts{sym})."_H_";
|
||||
print <<EOF;
|
||||
#ifndef ${include_guard}
|
||||
#define ${include_guard}
|
||||
|
||||
#ifdef RTCD_C
|
||||
#define RTCD_EXTERN
|
||||
#else
|
||||
#define RTCD_EXTERN extern
|
||||
#endif
|
||||
|
||||
EOF
|
||||
|
||||
process_forward_decls();
|
||||
print <<EOF;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
EOF
|
||||
declare_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
void $opts{sym}(void);
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
sub common_bottom() {
|
||||
print <<EOF;
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
EOF
|
||||
}
|
||||
|
||||
sub x86() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
|
||||
# Assign the helper variable for each enabled extension
|
||||
foreach my $opt (@ALL_ARCHS) {
|
||||
my $opt_uc = uc $opt;
|
||||
eval "\$have_${opt}=\"flags & HAS_${opt_uc}\"";
|
||||
}
|
||||
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/x86.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = x86_simd_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub arm() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
|
||||
# Assign the helper variable for each enabled extension
|
||||
foreach my $opt (@ALL_ARCHS) {
|
||||
my $opt_uc = uc $opt;
|
||||
# Enable neon assembly based on HAVE_NEON logic instead of adding new
|
||||
# HAVE_NEON_ASM logic
|
||||
if ($opt eq 'neon_asm') { $opt_uc = 'NEON' }
|
||||
eval "\$have_${opt}=\"flags & HAS_${opt_uc}\"";
|
||||
}
|
||||
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
#include "vpx_ports/arm.h"
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
int flags = arm_cpu_caps();
|
||||
|
||||
(void)flags;
|
||||
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub mips() {
|
||||
determine_indirection("c", @ALL_ARCHS);
|
||||
common_top;
|
||||
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
EOF
|
||||
|
||||
set_function_pointers("c", @ALL_ARCHS);
|
||||
|
||||
print <<EOF;
|
||||
#if HAVE_DSPR2
|
||||
void vpx_dsputil_static_init();
|
||||
#if CONFIG_VP8
|
||||
void dsputil_static_init();
|
||||
#endif
|
||||
|
||||
vpx_dsputil_static_init();
|
||||
#if CONFIG_VP8
|
||||
dsputil_static_init();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
sub unoptimized() {
|
||||
determine_indirection "c";
|
||||
common_top;
|
||||
print <<EOF;
|
||||
#include "vpx_config.h"
|
||||
|
||||
#ifdef RTCD_C
|
||||
static void setup_rtcd_internal(void)
|
||||
{
|
||||
EOF
|
||||
|
||||
set_function_pointers "c";
|
||||
|
||||
print <<EOF;
|
||||
}
|
||||
#endif
|
||||
EOF
|
||||
common_bottom;
|
||||
}
|
||||
|
||||
#
|
||||
# Main Driver
|
||||
#
|
||||
|
||||
&require("c");
|
||||
if ($opts{arch} eq 'x86') {
|
||||
@ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/);
|
||||
x86;
|
||||
} elsif ($opts{arch} eq 'x86_64') {
|
||||
@ALL_ARCHS = filter(qw/mmx sse sse2 sse3 ssse3 sse4_1 avx avx2/);
|
||||
@REQUIRES = filter(keys %required ? keys %required : qw/mmx sse sse2/);
|
||||
&require(@REQUIRES);
|
||||
x86;
|
||||
} elsif ($opts{arch} eq 'mips32' || $opts{arch} eq 'mips64') {
|
||||
@ALL_ARCHS = filter("$opts{arch}");
|
||||
open CONFIG_FILE, $opts{config} or
|
||||
die "Error opening config file '$opts{config}': $!\n";
|
||||
while (<CONFIG_FILE>) {
|
||||
if (/HAVE_DSPR2=yes/) {
|
||||
@ALL_ARCHS = filter("$opts{arch}", qw/dspr2/);
|
||||
last;
|
||||
}
|
||||
if (/HAVE_MSA=yes/) {
|
||||
@ALL_ARCHS = filter("$opts{arch}", qw/msa/);
|
||||
last;
|
||||
}
|
||||
}
|
||||
close CONFIG_FILE;
|
||||
mips;
|
||||
} elsif ($opts{arch} =~ /armv7\w?/) {
|
||||
@ALL_ARCHS = filter(qw/neon_asm neon/);
|
||||
arm;
|
||||
} elsif ($opts{arch} eq 'armv8' || $opts{arch} eq 'arm64' ) {
|
||||
@ALL_ARCHS = filter(qw/neon/);
|
||||
arm;
|
||||
} else {
|
||||
unoptimized;
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
rtcd -
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
Usage: rtcd.pl [options] FILE
|
||||
|
||||
See 'perldoc rtcd.pl' for more details.
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Reads the Run Time CPU Detections definitions from FILE and generates a
|
||||
C header file on stdout.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
Options:
|
||||
--arch=ARCH Architecture to generate defs for (required)
|
||||
--disable-EXT Disable support for EXT extensions
|
||||
--require-EXT Require support for EXT extensions
|
||||
--sym=SYMBOL Unique symbol to use for RTCD initialization function
|
||||
--config=FILE File with CONFIG_FOO=yes lines to parse
|
||||
77
media/libvpx/libvpx/build/make/version.sh
Normal file
77
media/libvpx/libvpx/build/make/version.sh
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
|
||||
for opt in "$@"; do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--bare) bare=true ;;
|
||||
*) break ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
source_path=${1:-.}
|
||||
out_file=${2}
|
||||
id=${3:-VERSION_STRING}
|
||||
|
||||
git_version_id=""
|
||||
if [ -e "${source_path}/.git" ]; then
|
||||
# Source Path is a git working copy. Check for local modifications.
|
||||
# Note that git submodules may have a file as .git, not a directory.
|
||||
export GIT_DIR="${source_path}/.git"
|
||||
git_version_id=`git describe --match=v[0-9]* 2>/dev/null`
|
||||
fi
|
||||
|
||||
changelog_version=""
|
||||
for p in "${source_path}" "${source_path}/.."; do
|
||||
if [ -z "$git_version_id" -a -f "${p}/CHANGELOG" ]; then
|
||||
changelog_version=`head -n1 "${p}/CHANGELOG" | awk '{print $2}'`
|
||||
changelog_version="${changelog_version}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
version_str="${changelog_version}${git_version_id}"
|
||||
bare_version=${version_str#v}
|
||||
major_version=${bare_version%%.*}
|
||||
bare_version=${bare_version#*.}
|
||||
minor_version=${bare_version%%.*}
|
||||
bare_version=${bare_version#*.}
|
||||
patch_version=${bare_version%%-*}
|
||||
bare_version=${bare_version#${patch_version}}
|
||||
extra_version=${bare_version##-}
|
||||
|
||||
#since they'll be used as integers below make sure they are or force to 0
|
||||
for v in major_version minor_version patch_version; do
|
||||
if eval echo \$$v |grep -E -q '[^[:digit:]]'; then
|
||||
eval $v=0
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ${bare} ]; then
|
||||
echo "${changelog_version}${git_version_id}" > $$.tmp
|
||||
else
|
||||
cat<<EOF>$$.tmp
|
||||
#define VERSION_MAJOR $major_version
|
||||
#define VERSION_MINOR $minor_version
|
||||
#define VERSION_PATCH $patch_version
|
||||
#define VERSION_EXTRA "$extra_version"
|
||||
#define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH))
|
||||
#define ${id}_NOSP "${version_str}"
|
||||
#define ${id} " ${version_str}"
|
||||
EOF
|
||||
fi
|
||||
if [ -n "$out_file" ]; then
|
||||
diff $$.tmp ${out_file} >/dev/null 2>&1 || cat $$.tmp > ${out_file}
|
||||
else
|
||||
cat $$.tmp
|
||||
fi
|
||||
rm $$.tmp
|
||||
5
media/libvpx/libvpx/codereview.settings
Normal file
5
media/libvpx/libvpx/codereview.settings
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# This file is used by gcl to get repository specific information.
|
||||
GERRIT_HOST: chromium-review.googlesource.com
|
||||
GERRIT_PORT: 29418
|
||||
CODE_REVIEW_SERVER: chromium-review.googlesource.com
|
||||
GERRIT_SQUASH_UPLOADS: False
|
||||
729
media/libvpx/libvpx/configure
vendored
Normal file
729
media/libvpx/libvpx/configure
vendored
Normal file
|
|
@ -0,0 +1,729 @@
|
|||
#!/bin/sh
|
||||
##
|
||||
## configure
|
||||
##
|
||||
## This script is the front-end to the build system. It provides a similar
|
||||
## interface to standard configure scripts with some extra bits for dealing
|
||||
## with toolchains that differ from the standard POSIX interface and
|
||||
## for extracting subsets of the source tree. In theory, reusable parts
|
||||
## of this script were intended to live in build/make/configure.sh,
|
||||
## but in practice, the line is pretty blurry.
|
||||
##
|
||||
## This build system is based in part on the FFmpeg configure script.
|
||||
##
|
||||
|
||||
#source_path="`dirname \"$0\"`"
|
||||
source_path=${0%/*}
|
||||
. "${source_path}/build/make/configure.sh"
|
||||
|
||||
show_help(){
|
||||
show_help_pre
|
||||
cat << EOF
|
||||
Advanced options:
|
||||
${toggle_libs} libraries
|
||||
${toggle_examples} examples
|
||||
${toggle_tools} tools
|
||||
${toggle_docs} documentation
|
||||
${toggle_unit_tests} unit tests
|
||||
${toggle_decode_perf_tests} build decoder perf tests with unit tests
|
||||
${toggle_encode_perf_tests} build encoder perf tests with unit tests
|
||||
--cpu=CPU tune for the specified CPU (ARM: cortex-a8, X86: sse3)
|
||||
--libc=PATH path to alternate libc
|
||||
--size-limit=WxH max size to allow in the decoder
|
||||
--as={yasm|nasm|auto} use specified assembler [auto, yasm preferred]
|
||||
--sdk-path=PATH path to root of sdk (android builds only)
|
||||
${toggle_codec_srcs} in/exclude codec library source code
|
||||
${toggle_debug_libs} in/exclude debug version of libraries
|
||||
${toggle_static_msvcrt} use static MSVCRT (VS builds only)
|
||||
${toggle_vp9_highbitdepth} use VP9 high bit depth (10/12) profiles
|
||||
${toggle_better_hw_compatibility}
|
||||
enable encoder to produce streams with better
|
||||
hardware decoder compatibility
|
||||
${toggle_vp8} VP8 codec support
|
||||
${toggle_vp9} VP9 codec support
|
||||
${toggle_internal_stats} output of encoder internal stats for debug, if supported (encoders)
|
||||
${toggle_postproc} postprocessing
|
||||
${toggle_vp9_postproc} vp9 specific postprocessing
|
||||
${toggle_multithread} multithreaded encoding and decoding
|
||||
${toggle_spatial_resampling} spatial sampling (scaling) support
|
||||
${toggle_realtime_only} enable this option while building for real-time encoding
|
||||
${toggle_onthefly_bitpacking} enable on-the-fly bitpacking in real-time encoding
|
||||
${toggle_error_concealment} enable this option to get a decoder which is able to conceal losses
|
||||
${toggle_coefficient_range_checking}
|
||||
enable decoder to check if intermediate
|
||||
transform coefficients are in valid range
|
||||
${toggle_runtime_cpu_detect} runtime cpu detection
|
||||
${toggle_shared} shared library support
|
||||
${toggle_static} static library support
|
||||
${toggle_small} favor smaller size over speed
|
||||
${toggle_postproc_visualizer} macro block / block level visualizers
|
||||
${toggle_multi_res_encoding} enable multiple-resolution encoding
|
||||
${toggle_temporal_denoising} enable temporal denoising and disable the spatial denoiser
|
||||
${toggle_vp9_temporal_denoising}
|
||||
enable vp9 temporal denoising
|
||||
${toggle_webm_io} enable input from and output to WebM container
|
||||
${toggle_libyuv} enable libyuv
|
||||
|
||||
Codecs:
|
||||
Codecs can be selectively enabled or disabled individually, or by family:
|
||||
--disable-<codec>
|
||||
is equivalent to:
|
||||
--disable-<codec>-encoder
|
||||
--disable-<codec>-decoder
|
||||
|
||||
Codecs available in this distribution:
|
||||
EOF
|
||||
#restore editor state '
|
||||
|
||||
family="";
|
||||
last_family="";
|
||||
c="";
|
||||
str="";
|
||||
for c in ${CODECS}; do
|
||||
family=${c%_*}
|
||||
if [ "${family}" != "${last_family}" ]; then
|
||||
[ -z "${str}" ] || echo "${str}"
|
||||
str="$(printf ' %10s:' ${family})"
|
||||
fi
|
||||
str="${str} $(printf '%10s' ${c#*_})"
|
||||
last_family=${family}
|
||||
done
|
||||
echo "${str}"
|
||||
show_help_post
|
||||
}
|
||||
|
||||
##
|
||||
## BEGIN APPLICATION SPECIFIC CONFIGURATION
|
||||
##
|
||||
|
||||
# all_platforms is a list of all supported target platforms. Maintain
|
||||
# alphabetically by architecture, generic-gnu last.
|
||||
all_platforms="${all_platforms} arm64-android-gcc"
|
||||
all_platforms="${all_platforms} arm64-darwin-gcc"
|
||||
all_platforms="${all_platforms} arm64-linux-gcc"
|
||||
all_platforms="${all_platforms} armv7-android-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-darwin-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-linux-gcc" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-none-rvct" #neon Cortex-A8
|
||||
all_platforms="${all_platforms} armv7-win32-vs11"
|
||||
all_platforms="${all_platforms} armv7-win32-vs12"
|
||||
all_platforms="${all_platforms} armv7-win32-vs14"
|
||||
all_platforms="${all_platforms} armv7s-darwin-gcc"
|
||||
all_platforms="${all_platforms} armv8-linux-gcc"
|
||||
all_platforms="${all_platforms} mips32-linux-gcc"
|
||||
all_platforms="${all_platforms} mips64-linux-gcc"
|
||||
all_platforms="${all_platforms} sparc-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86-android-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin8-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin8-icc"
|
||||
all_platforms="${all_platforms} x86-darwin9-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin9-icc"
|
||||
all_platforms="${all_platforms} x86-darwin10-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin11-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin12-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin13-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin14-gcc"
|
||||
all_platforms="${all_platforms} x86-darwin15-gcc"
|
||||
all_platforms="${all_platforms} x86-iphonesimulator-gcc"
|
||||
all_platforms="${all_platforms} x86-linux-gcc"
|
||||
all_platforms="${all_platforms} x86-linux-icc"
|
||||
all_platforms="${all_platforms} x86-os2-gcc"
|
||||
all_platforms="${all_platforms} x86-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86-win32-gcc"
|
||||
all_platforms="${all_platforms} x86-win32-vs10"
|
||||
all_platforms="${all_platforms} x86-win32-vs11"
|
||||
all_platforms="${all_platforms} x86-win32-vs12"
|
||||
all_platforms="${all_platforms} x86-win32-vs14"
|
||||
all_platforms="${all_platforms} x86_64-android-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin9-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin10-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin11-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin12-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin13-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin14-gcc"
|
||||
all_platforms="${all_platforms} x86_64-darwin15-gcc"
|
||||
all_platforms="${all_platforms} x86_64-iphonesimulator-gcc"
|
||||
all_platforms="${all_platforms} x86_64-linux-gcc"
|
||||
all_platforms="${all_platforms} x86_64-linux-icc"
|
||||
all_platforms="${all_platforms} x86_64-solaris-gcc"
|
||||
all_platforms="${all_platforms} x86_64-win64-gcc"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs10"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs11"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs12"
|
||||
all_platforms="${all_platforms} x86_64-win64-vs14"
|
||||
all_platforms="${all_platforms} generic-gnu"
|
||||
|
||||
# all_targets is a list of all targets that can be configured
|
||||
# note that these should be in dependency order for now.
|
||||
all_targets="libs examples tools docs"
|
||||
|
||||
# all targets available are enabled, by default.
|
||||
for t in ${all_targets}; do
|
||||
[ -f "${source_path}/${t}.mk" ] && enable_feature ${t}
|
||||
done
|
||||
|
||||
if ! perl --version >/dev/null; then
|
||||
die "Perl is required to build"
|
||||
fi
|
||||
|
||||
|
||||
if [ "`cd \"${source_path}\" && pwd`" != "`pwd`" ]; then
|
||||
# test to see if source_path already configured
|
||||
if [ -f "${source_path}/vpx_config.h" ]; then
|
||||
die "source directory already configured; run 'make distclean' there first"
|
||||
fi
|
||||
fi
|
||||
|
||||
# check installed doxygen version
|
||||
doxy_version=$(doxygen --version 2>/dev/null)
|
||||
doxy_major=${doxy_version%%.*}
|
||||
if [ ${doxy_major:-0} -ge 1 ]; then
|
||||
doxy_version=${doxy_version#*.}
|
||||
doxy_minor=${doxy_version%%.*}
|
||||
doxy_patch=${doxy_version##*.}
|
||||
|
||||
[ $doxy_major -gt 1 ] && enable_feature doxygen
|
||||
[ $doxy_minor -gt 5 ] && enable_feature doxygen
|
||||
[ $doxy_minor -eq 5 ] && [ $doxy_patch -ge 3 ] && enable_feature doxygen
|
||||
fi
|
||||
|
||||
# disable codecs when their source directory does not exist
|
||||
[ -d "${source_path}/vp8" ] || disable_codec vp8
|
||||
[ -d "${source_path}/vp9" ] || disable_codec vp9
|
||||
|
||||
# install everything except the sources, by default. sources will have
|
||||
# to be enabled when doing dist builds, since that's no longer a common
|
||||
# case.
|
||||
enabled doxygen && enable_feature install_docs
|
||||
enable_feature install_bins
|
||||
enable_feature install_libs
|
||||
|
||||
enable_feature static
|
||||
enable_feature optimizations
|
||||
enable_feature dependency_tracking
|
||||
enable_feature spatial_resampling
|
||||
enable_feature multithread
|
||||
enable_feature os_support
|
||||
enable_feature temporal_denoising
|
||||
|
||||
CODECS="
|
||||
vp8_encoder
|
||||
vp8_decoder
|
||||
vp9_encoder
|
||||
vp9_decoder
|
||||
"
|
||||
CODEC_FAMILIES="
|
||||
vp8
|
||||
vp9
|
||||
"
|
||||
|
||||
ARCH_LIST="
|
||||
arm
|
||||
mips
|
||||
x86
|
||||
x86_64
|
||||
"
|
||||
ARCH_EXT_LIST_X86="
|
||||
mmx
|
||||
sse
|
||||
sse2
|
||||
sse3
|
||||
ssse3
|
||||
sse4_1
|
||||
avx
|
||||
avx2
|
||||
"
|
||||
ARCH_EXT_LIST="
|
||||
neon
|
||||
neon_asm
|
||||
|
||||
mips32
|
||||
dspr2
|
||||
msa
|
||||
mips64
|
||||
|
||||
${ARCH_EXT_LIST_X86}
|
||||
"
|
||||
HAVE_LIST="
|
||||
${ARCH_EXT_LIST}
|
||||
vpx_ports
|
||||
pthread_h
|
||||
unistd_h
|
||||
"
|
||||
EXPERIMENT_LIST="
|
||||
spatial_svc
|
||||
fp_mb_stats
|
||||
emulate_hardware
|
||||
misc_fixes
|
||||
"
|
||||
CONFIG_LIST="
|
||||
dependency_tracking
|
||||
external_build
|
||||
install_docs
|
||||
install_bins
|
||||
install_libs
|
||||
install_srcs
|
||||
debug
|
||||
gprof
|
||||
gcov
|
||||
rvct
|
||||
gcc
|
||||
msvs
|
||||
pic
|
||||
big_endian
|
||||
|
||||
codec_srcs
|
||||
debug_libs
|
||||
|
||||
dequant_tokens
|
||||
dc_recon
|
||||
runtime_cpu_detect
|
||||
postproc
|
||||
vp9_postproc
|
||||
multithread
|
||||
internal_stats
|
||||
${CODECS}
|
||||
${CODEC_FAMILIES}
|
||||
encoders
|
||||
decoders
|
||||
static_msvcrt
|
||||
spatial_resampling
|
||||
realtime_only
|
||||
onthefly_bitpacking
|
||||
error_concealment
|
||||
shared
|
||||
static
|
||||
small
|
||||
postproc_visualizer
|
||||
os_support
|
||||
unit_tests
|
||||
webm_io
|
||||
libyuv
|
||||
decode_perf_tests
|
||||
encode_perf_tests
|
||||
multi_res_encoding
|
||||
temporal_denoising
|
||||
vp9_temporal_denoising
|
||||
coefficient_range_checking
|
||||
vp9_highbitdepth
|
||||
better_hw_compatibility
|
||||
experimental
|
||||
size_limit
|
||||
${EXPERIMENT_LIST}
|
||||
"
|
||||
CMDLINE_SELECT="
|
||||
dependency_tracking
|
||||
external_build
|
||||
extra_warnings
|
||||
werror
|
||||
install_docs
|
||||
install_bins
|
||||
install_libs
|
||||
install_srcs
|
||||
debug
|
||||
gprof
|
||||
gcov
|
||||
pic
|
||||
optimizations
|
||||
ccache
|
||||
runtime_cpu_detect
|
||||
thumb
|
||||
|
||||
libs
|
||||
examples
|
||||
tools
|
||||
docs
|
||||
libc
|
||||
as
|
||||
size_limit
|
||||
codec_srcs
|
||||
debug_libs
|
||||
|
||||
dequant_tokens
|
||||
dc_recon
|
||||
postproc
|
||||
vp9_postproc
|
||||
multithread
|
||||
internal_stats
|
||||
${CODECS}
|
||||
${CODEC_FAMILIES}
|
||||
static_msvcrt
|
||||
spatial_resampling
|
||||
realtime_only
|
||||
onthefly_bitpacking
|
||||
error_concealment
|
||||
shared
|
||||
static
|
||||
small
|
||||
postproc_visualizer
|
||||
unit_tests
|
||||
webm_io
|
||||
libyuv
|
||||
decode_perf_tests
|
||||
encode_perf_tests
|
||||
multi_res_encoding
|
||||
temporal_denoising
|
||||
vp9_temporal_denoising
|
||||
coefficient_range_checking
|
||||
better_hw_compatibility
|
||||
vp9_highbitdepth
|
||||
experimental
|
||||
"
|
||||
|
||||
process_cmdline() {
|
||||
for opt do
|
||||
optval="${opt#*=}"
|
||||
case "$opt" in
|
||||
--disable-codecs)
|
||||
for c in ${CODEC_FAMILIES}; do disable_codec $c; done
|
||||
;;
|
||||
--enable-?*|--disable-?*)
|
||||
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
|
||||
if is_in ${option} ${EXPERIMENT_LIST}; then
|
||||
if enabled experimental; then
|
||||
${action}_feature $option
|
||||
else
|
||||
log_echo "Ignoring $opt -- not in experimental mode."
|
||||
fi
|
||||
elif is_in ${option} "${CODECS} ${CODEC_FAMILIES}"; then
|
||||
${action}_codec ${option}
|
||||
else
|
||||
process_common_cmdline $opt
|
||||
fi
|
||||
;;
|
||||
*) process_common_cmdline "$opt"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
post_process_cmdline() {
|
||||
c=""
|
||||
|
||||
# Enable all detected codecs, if they haven't been disabled
|
||||
for c in ${CODECS}; do soft_enable $c; done
|
||||
|
||||
# Enable the codec family if any component of that family is enabled
|
||||
for c in ${CODECS}; do
|
||||
enabled $c && enable_feature ${c%_*}
|
||||
done
|
||||
|
||||
# Set the {en,de}coders variable if any algorithm in that class is enabled
|
||||
for c in ${CODECS}; do
|
||||
enabled ${c} && enable_feature ${c##*_}s
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
process_targets() {
|
||||
enabled child || write_common_config_banner
|
||||
write_common_target_config_h ${BUILD_PFX}vpx_config.h
|
||||
write_common_config_targets
|
||||
|
||||
# Calculate the default distribution name, based on the enabled features
|
||||
cf=""
|
||||
DIST_DIR=vpx
|
||||
for cf in $CODEC_FAMILIES; do
|
||||
if enabled ${cf}_encoder && enabled ${cf}_decoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}"
|
||||
elif enabled ${cf}_encoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}cx"
|
||||
elif enabled ${cf}_decoder; then
|
||||
DIST_DIR="${DIST_DIR}-${cf}dx"
|
||||
fi
|
||||
done
|
||||
enabled debug_libs && DIST_DIR="${DIST_DIR}-debug"
|
||||
enabled codec_srcs && DIST_DIR="${DIST_DIR}-src"
|
||||
! enabled postproc && ! enabled vp9_postproc && DIST_DIR="${DIST_DIR}-nopost"
|
||||
! enabled multithread && DIST_DIR="${DIST_DIR}-nomt"
|
||||
! enabled install_docs && DIST_DIR="${DIST_DIR}-nodocs"
|
||||
DIST_DIR="${DIST_DIR}-${tgt_isa}-${tgt_os}"
|
||||
case "${tgt_os}" in
|
||||
win*) enabled static_msvcrt && DIST_DIR="${DIST_DIR}mt" || DIST_DIR="${DIST_DIR}md"
|
||||
DIST_DIR="${DIST_DIR}-${tgt_cc}"
|
||||
;;
|
||||
esac
|
||||
if [ -f "${source_path}/build/make/version.sh" ]; then
|
||||
ver=`"$source_path/build/make/version.sh" --bare "$source_path"`
|
||||
DIST_DIR="${DIST_DIR}-${ver}"
|
||||
VERSION_STRING=${ver}
|
||||
ver=${ver%%-*}
|
||||
VERSION_PATCH=${ver##*.}
|
||||
ver=${ver%.*}
|
||||
VERSION_MINOR=${ver##*.}
|
||||
ver=${ver#v}
|
||||
VERSION_MAJOR=${ver%.*}
|
||||
fi
|
||||
enabled child || cat <<EOF >> config.mk
|
||||
|
||||
PREFIX=${prefix}
|
||||
ifeq (\$(MAKECMDGOALS),dist)
|
||||
DIST_DIR?=${DIST_DIR}
|
||||
else
|
||||
DIST_DIR?=\$(DESTDIR)${prefix}
|
||||
endif
|
||||
LIBSUBDIR=${libdir##${prefix}/}
|
||||
|
||||
VERSION_STRING=${VERSION_STRING}
|
||||
|
||||
VERSION_MAJOR=${VERSION_MAJOR}
|
||||
VERSION_MINOR=${VERSION_MINOR}
|
||||
VERSION_PATCH=${VERSION_PATCH}
|
||||
|
||||
CONFIGURE_ARGS=${CONFIGURE_ARGS}
|
||||
EOF
|
||||
enabled child || echo "CONFIGURE_ARGS?=${CONFIGURE_ARGS}" >> config.mk
|
||||
|
||||
#
|
||||
# Write makefiles for all enabled targets
|
||||
#
|
||||
for tgt in libs examples tools docs solution; do
|
||||
tgt_fn="$tgt-$toolchain.mk"
|
||||
|
||||
if enabled $tgt; then
|
||||
echo "Creating makefiles for ${toolchain} ${tgt}"
|
||||
write_common_target_config_mk $tgt_fn ${BUILD_PFX}vpx_config.h
|
||||
#write_${tgt}_config
|
||||
fi
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
process_detect() {
|
||||
if enabled shared; then
|
||||
# Can only build shared libs on a subset of platforms. Doing this check
|
||||
# here rather than at option parse time because the target auto-detect
|
||||
# magic happens after the command line has been parsed.
|
||||
case "${tgt_os}" in
|
||||
linux|os2|darwin*|iphonesimulator*)
|
||||
# Supported platforms
|
||||
;;
|
||||
*)
|
||||
if enabled gnu; then
|
||||
echo "--enable-shared is only supported on ELF; assuming this is OK"
|
||||
else
|
||||
die "--enable-shared only supported on ELF, OS/2, and Darwin for now"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ -z "$CC" ] || enabled external_build; then
|
||||
echo "Bypassing toolchain for environment detection."
|
||||
enable_feature external_build
|
||||
check_header() {
|
||||
log fake_check_header "$@"
|
||||
header=$1
|
||||
shift
|
||||
var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'`
|
||||
disable_feature $var
|
||||
# Headers common to all environments
|
||||
case $header in
|
||||
stdio.h)
|
||||
true;
|
||||
;;
|
||||
*)
|
||||
result=false
|
||||
for d in "$@"; do
|
||||
[ -f "${d##-I}/$header" ] && result=true && break
|
||||
done
|
||||
${result:-true}
|
||||
esac && enable_feature $var
|
||||
|
||||
# Specialize windows and POSIX environments.
|
||||
case $toolchain in
|
||||
*-win*-*)
|
||||
# Don't check for any headers in Windows builds.
|
||||
false
|
||||
;;
|
||||
*)
|
||||
case $header in
|
||||
pthread.h) true;;
|
||||
unistd.h) true;;
|
||||
*) false;;
|
||||
esac && enable_feature $var
|
||||
esac
|
||||
enabled $var
|
||||
}
|
||||
check_ld() {
|
||||
true
|
||||
}
|
||||
fi
|
||||
check_header stdio.h || die "Unable to invoke compiler: ${CC} ${CFLAGS}"
|
||||
check_ld <<EOF || die "Toolchain is unable to link executables"
|
||||
int main(void) {return 0;}
|
||||
EOF
|
||||
# check system headers
|
||||
check_header pthread.h
|
||||
check_header unistd.h # for sysconf(3) and friends.
|
||||
|
||||
check_header vpx/vpx_integer.h -I${source_path} && enable_feature vpx_ports
|
||||
}
|
||||
|
||||
process_toolchain() {
|
||||
process_common_toolchain
|
||||
|
||||
# Enable some useful compiler flags
|
||||
if enabled gcc; then
|
||||
enabled werror && check_add_cflags -Werror
|
||||
check_add_cflags -Wall
|
||||
check_add_cflags -Wdeclaration-after-statement
|
||||
check_add_cflags -Wdisabled-optimization
|
||||
check_add_cflags -Wfloat-conversion
|
||||
check_add_cflags -Wpointer-arith
|
||||
check_add_cflags -Wtype-limits
|
||||
check_add_cflags -Wcast-qual
|
||||
check_add_cflags -Wvla
|
||||
check_add_cflags -Wimplicit-function-declaration
|
||||
check_add_cflags -Wuninitialized
|
||||
check_add_cflags -Wunused
|
||||
# -Wextra has some tricky cases. Rather than fix them all now, get the
|
||||
# flag for as many files as possible and fix the remaining issues
|
||||
# piecemeal.
|
||||
# https://bugs.chromium.org/p/webm/issues/detail?id=1069
|
||||
check_add_cflags -Wextra
|
||||
# check_add_cflags also adds to cxxflags. gtest does not do well with
|
||||
# -Wundef so add it explicitly to CFLAGS only.
|
||||
check_cflags -Wundef && add_cflags_only -Wundef
|
||||
if enabled mips || [ -z "${INLINE}" ]; then
|
||||
enabled extra_warnings || check_add_cflags -Wno-unused-function
|
||||
fi
|
||||
if ! enabled vp9_highbitdepth; then
|
||||
# Avoid this warning for third_party C++ sources. Some reorganization
|
||||
# would be needed to apply this only to test/*.cc.
|
||||
check_cflags -Wshorten-64-to-32 && add_cflags_only -Wshorten-64-to-32
|
||||
fi
|
||||
fi
|
||||
|
||||
if enabled icc; then
|
||||
enabled werror && check_add_cflags -Werror
|
||||
check_add_cflags -Wall
|
||||
check_add_cflags -Wpointer-arith
|
||||
|
||||
# ICC has a number of floating point optimizations that we disable
|
||||
# in favor of deterministic output WRT to other compilers
|
||||
add_cflags -fp-model precise
|
||||
fi
|
||||
|
||||
# Enable extra, harmless warnings. These might provide additional insight
|
||||
# to what the compiler is doing and why, but in general, but they shouldn't
|
||||
# be treated as fatal, even if we're treating warnings as errors.
|
||||
GCC_EXTRA_WARNINGS="
|
||||
-Wdisabled-optimization
|
||||
-Winline
|
||||
"
|
||||
enabled gcc && EXTRA_WARNINGS="${GCC_EXTRA_WARNINGS}"
|
||||
RVCT_EXTRA_WARNINGS="
|
||||
--remarks
|
||||
"
|
||||
enabled rvct && EXTRA_WARNINGS="${RVCT_EXTRA_WARNINGS}"
|
||||
if enabled extra_warnings; then
|
||||
for w in ${EXTRA_WARNINGS}; do
|
||||
check_add_cflags ${w}
|
||||
enabled gcc && enabled werror && check_add_cflags -Wno-error=${w}
|
||||
done
|
||||
fi
|
||||
|
||||
# ccache only really works on gcc toolchains
|
||||
enabled gcc || soft_disable ccache
|
||||
if enabled mips; then
|
||||
enable_feature dequant_tokens
|
||||
enable_feature dc_recon
|
||||
fi
|
||||
|
||||
if enabled internal_stats; then
|
||||
enable_feature vp9_postproc
|
||||
fi
|
||||
|
||||
# Enable the postbuild target if building for visual studio.
|
||||
case "$tgt_cc" in
|
||||
vs*) enable_feature msvs
|
||||
enable_feature solution
|
||||
vs_version=${tgt_cc##vs}
|
||||
VCPROJ_SFX=vcxproj
|
||||
gen_vcproj_cmd=${source_path}/build/make/gen_msvs_vcxproj.sh
|
||||
enabled werror && gen_vcproj_cmd="${gen_vcproj_cmd} --enable-werror"
|
||||
all_targets="${all_targets} solution"
|
||||
INLINE="__forceinline"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Other toolchain specific defaults
|
||||
case $toolchain in x86*) soft_enable postproc;; esac
|
||||
|
||||
if enabled postproc_visualizer; then
|
||||
enabled postproc || die "postproc_visualizer requires postproc to be enabled"
|
||||
fi
|
||||
|
||||
# Enable unit tests by default if we have a working C++ compiler.
|
||||
case "$toolchain" in
|
||||
*-vs*)
|
||||
soft_enable unit_tests
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
;;
|
||||
*-android-*)
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
# GTestLog must be modified to use Android logging utilities.
|
||||
;;
|
||||
*-darwin-*)
|
||||
# iOS/ARM builds do not work with gtest. This does not match
|
||||
# x86 targets.
|
||||
;;
|
||||
*-iphonesimulator-*)
|
||||
soft_enable webm_io
|
||||
soft_enable libyuv
|
||||
;;
|
||||
*-win*)
|
||||
# Some mingw toolchains don't have pthread available by default.
|
||||
# Treat these more like visual studio where threading in gtest
|
||||
# would be disabled for the same reason.
|
||||
check_cxx "$@" <<EOF && soft_enable unit_tests
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable webm_io
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable libyuv
|
||||
int z;
|
||||
EOF
|
||||
;;
|
||||
*)
|
||||
enabled pthread_h && check_cxx "$@" <<EOF && soft_enable unit_tests
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable webm_io
|
||||
int z;
|
||||
EOF
|
||||
check_cxx "$@" <<EOF && soft_enable libyuv
|
||||
int z;
|
||||
EOF
|
||||
;;
|
||||
esac
|
||||
# libwebm needs to be linked with C++ standard library
|
||||
enabled webm_io && LD=${CXX}
|
||||
|
||||
# append any user defined extra cflags
|
||||
if [ -n "${extra_cflags}" ] ; then
|
||||
check_add_cflags ${extra_cflags} || \
|
||||
die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler"
|
||||
fi
|
||||
if [ -n "${extra_cxxflags}" ]; then
|
||||
check_add_cxxflags ${extra_cxxflags} || \
|
||||
die "Requested extra CXXFLAGS '${extra_cxxflags}' not supported by compiler"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
##
|
||||
## END APPLICATION SPECIFIC CONFIGURATION
|
||||
##
|
||||
CONFIGURE_ARGS="$@"
|
||||
process "$@"
|
||||
print_webm_license ${BUILD_PFX}vpx_config.c "/*" " */"
|
||||
cat <<EOF >> ${BUILD_PFX}vpx_config.c
|
||||
#include "vpx/vpx_codec.h"
|
||||
static const char* const cfg = "$CONFIGURE_ARGS";
|
||||
const char *vpx_codec_build_config(void) {return cfg;}
|
||||
EOF
|
||||
48
media/libvpx/libvpx/docs.mk
Normal file
48
media/libvpx/libvpx/docs.mk
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
|
||||
INSTALL_MAPS += docs/% docs/%
|
||||
INSTALL_MAPS += src/% %
|
||||
INSTALL_MAPS += % %
|
||||
|
||||
# Static documentation authored in doxygen
|
||||
CODEC_DOX := mainpage.dox \
|
||||
keywords.dox \
|
||||
usage.dox \
|
||||
usage_cx.dox \
|
||||
usage_dx.dox \
|
||||
|
||||
# Other doxy files sourced in Markdown
|
||||
TXT_DOX = $(call enabled,TXT_DOX)
|
||||
|
||||
EXAMPLE_PATH += $(SRC_PATH_BARE) #for CHANGELOG, README, etc
|
||||
EXAMPLE_PATH += $(SRC_PATH_BARE)/examples
|
||||
|
||||
doxyfile: $(if $(findstring examples, $(ALL_TARGETS)),examples.doxy)
|
||||
doxyfile: libs.doxy_template libs.doxy
|
||||
@echo " [CREATE] $@"
|
||||
@cat $^ > $@
|
||||
@echo "STRIP_FROM_PATH += $(SRC_PATH_BARE) $(BUILD_ROOT)" >> $@
|
||||
@echo "INPUT += $(addprefix $(SRC_PATH_BARE)/,$(CODEC_DOX))" >> $@;
|
||||
@echo "INPUT += $(TXT_DOX)" >> $@;
|
||||
@echo "EXAMPLE_PATH += $(EXAMPLE_PATH)" >> $@
|
||||
|
||||
CLEAN-OBJS += doxyfile $(wildcard docs/html/*)
|
||||
docs/html/index.html: doxyfile $(CODEC_DOX) $(TXT_DOX)
|
||||
@echo " [DOXYGEN] $<"
|
||||
@doxygen $<
|
||||
DOCS-yes += docs/html/index.html
|
||||
|
||||
DIST-DOCS-yes = $(wildcard docs/html/*)
|
||||
DIST-DOCS-$(CONFIG_CODEC_SRCS) += $(addprefix src/,$(CODEC_DOX))
|
||||
DIST-DOCS-$(CONFIG_CODEC_SRCS) += src/libs.doxy_template
|
||||
DIST-DOCS-yes += CHANGELOG
|
||||
DIST-DOCS-yes += README
|
||||
405
media/libvpx/libvpx/examples.mk
Normal file
405
media/libvpx/libvpx/examples.mk
Normal file
|
|
@ -0,0 +1,405 @@
|
|||
##
|
||||
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
||||
##
|
||||
## Use of this source code is governed by a BSD-style license
|
||||
## that can be found in the LICENSE file in the root of the source
|
||||
## 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.
|
||||
##
|
||||
|
||||
LIBYUV_SRCS += third_party/libyuv/include/libyuv/basic_types.h \
|
||||
third_party/libyuv/include/libyuv/convert.h \
|
||||
third_party/libyuv/include/libyuv/convert_argb.h \
|
||||
third_party/libyuv/include/libyuv/convert_from.h \
|
||||
third_party/libyuv/include/libyuv/cpu_id.h \
|
||||
third_party/libyuv/include/libyuv/planar_functions.h \
|
||||
third_party/libyuv/include/libyuv/rotate.h \
|
||||
third_party/libyuv/include/libyuv/row.h \
|
||||
third_party/libyuv/include/libyuv/scale.h \
|
||||
third_party/libyuv/include/libyuv/scale_row.h \
|
||||
third_party/libyuv/source/cpu_id.cc \
|
||||
third_party/libyuv/source/planar_functions.cc \
|
||||
third_party/libyuv/source/row_any.cc \
|
||||
third_party/libyuv/source/row_common.cc \
|
||||
third_party/libyuv/source/row_gcc.cc \
|
||||
third_party/libyuv/source/row_mips.cc \
|
||||
third_party/libyuv/source/row_neon.cc \
|
||||
third_party/libyuv/source/row_neon64.cc \
|
||||
third_party/libyuv/source/row_win.cc \
|
||||
third_party/libyuv/source/scale.cc \
|
||||
third_party/libyuv/source/scale_any.cc \
|
||||
third_party/libyuv/source/scale_common.cc \
|
||||
third_party/libyuv/source/scale_gcc.cc \
|
||||
third_party/libyuv/source/scale_mips.cc \
|
||||
third_party/libyuv/source/scale_neon.cc \
|
||||
third_party/libyuv/source/scale_neon64.cc \
|
||||
third_party/libyuv/source/scale_win.cc \
|
||||
|
||||
LIBWEBM_COMMON_SRCS += third_party/libwebm/common/hdr_util.cc \
|
||||
third_party/libwebm/common/hdr_util.h \
|
||||
third_party/libwebm/common/webmids.h
|
||||
|
||||
LIBWEBM_MUXER_SRCS += third_party/libwebm/mkvmuxer/mkvmuxer.cc \
|
||||
third_party/libwebm/mkvmuxer/mkvmuxerutil.cc \
|
||||
third_party/libwebm/mkvmuxer/mkvwriter.cc \
|
||||
third_party/libwebm/mkvmuxer/mkvmuxer.h \
|
||||
third_party/libwebm/mkvmuxer/mkvmuxertypes.h \
|
||||
third_party/libwebm/mkvmuxer/mkvmuxerutil.h \
|
||||
third_party/libwebm/mkvparser/mkvparser.h \
|
||||
third_party/libwebm/mkvmuxer/mkvwriter.h
|
||||
|
||||
LIBWEBM_PARSER_SRCS = third_party/libwebm/mkvparser/mkvparser.cc \
|
||||
third_party/libwebm/mkvparser/mkvreader.cc \
|
||||
third_party/libwebm/mkvparser/mkvparser.h \
|
||||
third_party/libwebm/mkvparser/mkvreader.h
|
||||
|
||||
# Add compile flags and include path for libwebm sources.
|
||||
ifeq ($(CONFIG_WEBM_IO),yes)
|
||||
CXXFLAGS += -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
|
||||
INC_PATH-yes += $(SRC_PATH_BARE)/third_party/libwebm
|
||||
endif
|
||||
|
||||
|
||||
# List of examples to build. UTILS are tools meant for distribution
|
||||
# while EXAMPLES demonstrate specific portions of the API.
|
||||
UTILS-$(CONFIG_DECODERS) += vpxdec.c
|
||||
vpxdec.SRCS += md5_utils.c md5_utils.h
|
||||
vpxdec.SRCS += vpx_ports/mem_ops.h
|
||||
vpxdec.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
vpxdec.SRCS += vpx_ports/msvc.h
|
||||
vpxdec.SRCS += vpx_ports/vpx_timer.h
|
||||
vpxdec.SRCS += vpx/vpx_integer.h
|
||||
vpxdec.SRCS += args.c args.h
|
||||
vpxdec.SRCS += ivfdec.c ivfdec.h
|
||||
vpxdec.SRCS += tools_common.c tools_common.h
|
||||
vpxdec.SRCS += y4menc.c y4menc.h
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
vpxdec.SRCS += $(LIBYUV_SRCS)
|
||||
$(BUILD_PFX)third_party/libyuv/%.cc.o: CXXFLAGS += -Wno-unused-parameter
|
||||
endif
|
||||
ifeq ($(CONFIG_WEBM_IO),yes)
|
||||
vpxdec.SRCS += $(LIBWEBM_COMMON_SRCS)
|
||||
vpxdec.SRCS += $(LIBWEBM_MUXER_SRCS)
|
||||
vpxdec.SRCS += $(LIBWEBM_PARSER_SRCS)
|
||||
vpxdec.SRCS += webmdec.cc webmdec.h
|
||||
endif
|
||||
vpxdec.GUID = BA5FE66F-38DD-E034-F542-B1578C5FB950
|
||||
vpxdec.DESCRIPTION = Full featured decoder
|
||||
UTILS-$(CONFIG_ENCODERS) += vpxenc.c
|
||||
vpxenc.SRCS += args.c args.h y4minput.c y4minput.h vpxenc.h
|
||||
vpxenc.SRCS += ivfdec.c ivfdec.h
|
||||
vpxenc.SRCS += ivfenc.c ivfenc.h
|
||||
vpxenc.SRCS += rate_hist.c rate_hist.h
|
||||
vpxenc.SRCS += tools_common.c tools_common.h
|
||||
vpxenc.SRCS += warnings.c warnings.h
|
||||
vpxenc.SRCS += vpx_ports/mem_ops.h
|
||||
vpxenc.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
vpxenc.SRCS += vpx_ports/msvc.h
|
||||
vpxenc.SRCS += vpx_ports/vpx_timer.h
|
||||
vpxenc.SRCS += vpxstats.c vpxstats.h
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
vpxenc.SRCS += $(LIBYUV_SRCS)
|
||||
endif
|
||||
ifeq ($(CONFIG_WEBM_IO),yes)
|
||||
vpxenc.SRCS += $(LIBWEBM_COMMON_SRCS)
|
||||
vpxenc.SRCS += $(LIBWEBM_MUXER_SRCS)
|
||||
vpxenc.SRCS += $(LIBWEBM_PARSER_SRCS)
|
||||
vpxenc.SRCS += webmenc.cc webmenc.h
|
||||
endif
|
||||
vpxenc.GUID = 548DEC74-7A15-4B2B-AFC3-AA102E7C25C1
|
||||
vpxenc.DESCRIPTION = Full featured encoder
|
||||
ifeq ($(CONFIG_SPATIAL_SVC),yes)
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += vp9_spatial_svc_encoder.c
|
||||
vp9_spatial_svc_encoder.SRCS += args.c args.h
|
||||
vp9_spatial_svc_encoder.SRCS += ivfenc.c ivfenc.h
|
||||
vp9_spatial_svc_encoder.SRCS += tools_common.c tools_common.h
|
||||
vp9_spatial_svc_encoder.SRCS += video_common.h
|
||||
vp9_spatial_svc_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp9_spatial_svc_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp9_spatial_svc_encoder.SRCS += vpxstats.c vpxstats.h
|
||||
vp9_spatial_svc_encoder.GUID = 4A38598D-627D-4505-9C7B-D4020C84100D
|
||||
vp9_spatial_svc_encoder.DESCRIPTION = VP9 Spatial SVC Encoder
|
||||
endif
|
||||
|
||||
ifneq ($(CONFIG_SHARED),yes)
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += resize_util.c
|
||||
endif
|
||||
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += vpx_temporal_svc_encoder.c
|
||||
vpx_temporal_svc_encoder.SRCS += ivfenc.c ivfenc.h
|
||||
vpx_temporal_svc_encoder.SRCS += tools_common.c tools_common.h
|
||||
vpx_temporal_svc_encoder.SRCS += video_common.h
|
||||
vpx_temporal_svc_encoder.SRCS += video_writer.h video_writer.c
|
||||
vpx_temporal_svc_encoder.SRCS += vpx_ports/msvc.h
|
||||
vpx_temporal_svc_encoder.GUID = B18C08F2-A439-4502-A78E-849BE3D60947
|
||||
vpx_temporal_svc_encoder.DESCRIPTION = Temporal SVC Encoder
|
||||
EXAMPLES-$(CONFIG_DECODERS) += simple_decoder.c
|
||||
simple_decoder.GUID = D3BBF1E9-2427-450D-BBFF-B2843C1D44CC
|
||||
simple_decoder.SRCS += ivfdec.h ivfdec.c
|
||||
simple_decoder.SRCS += tools_common.h tools_common.c
|
||||
simple_decoder.SRCS += video_common.h
|
||||
simple_decoder.SRCS += video_reader.h video_reader.c
|
||||
simple_decoder.SRCS += vpx_ports/mem_ops.h
|
||||
simple_decoder.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
simple_decoder.SRCS += vpx_ports/msvc.h
|
||||
simple_decoder.DESCRIPTION = Simplified decoder loop
|
||||
EXAMPLES-$(CONFIG_DECODERS) += postproc.c
|
||||
postproc.SRCS += ivfdec.h ivfdec.c
|
||||
postproc.SRCS += tools_common.h tools_common.c
|
||||
postproc.SRCS += video_common.h
|
||||
postproc.SRCS += video_reader.h video_reader.c
|
||||
postproc.SRCS += vpx_ports/mem_ops.h
|
||||
postproc.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
postproc.SRCS += vpx_ports/msvc.h
|
||||
postproc.GUID = 65E33355-F35E-4088-884D-3FD4905881D7
|
||||
postproc.DESCRIPTION = Decoder postprocessor control
|
||||
EXAMPLES-$(CONFIG_DECODERS) += decode_to_md5.c
|
||||
decode_to_md5.SRCS += md5_utils.h md5_utils.c
|
||||
decode_to_md5.SRCS += ivfdec.h ivfdec.c
|
||||
decode_to_md5.SRCS += tools_common.h tools_common.c
|
||||
decode_to_md5.SRCS += video_common.h
|
||||
decode_to_md5.SRCS += video_reader.h video_reader.c
|
||||
decode_to_md5.SRCS += vpx_ports/mem_ops.h
|
||||
decode_to_md5.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
decode_to_md5.SRCS += vpx_ports/msvc.h
|
||||
decode_to_md5.GUID = 59120B9B-2735-4BFE-B022-146CA340FE42
|
||||
decode_to_md5.DESCRIPTION = Frame by frame MD5 checksum
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += simple_encoder.c
|
||||
simple_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
simple_encoder.SRCS += tools_common.h tools_common.c
|
||||
simple_encoder.SRCS += video_common.h
|
||||
simple_encoder.SRCS += video_writer.h video_writer.c
|
||||
simple_encoder.SRCS += vpx_ports/msvc.h
|
||||
simple_encoder.GUID = 4607D299-8A71-4D2C-9B1D-071899B6FBFD
|
||||
simple_encoder.DESCRIPTION = Simplified encoder loop
|
||||
EXAMPLES-$(CONFIG_VP9_ENCODER) += vp9_lossless_encoder.c
|
||||
vp9_lossless_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
vp9_lossless_encoder.SRCS += tools_common.h tools_common.c
|
||||
vp9_lossless_encoder.SRCS += video_common.h
|
||||
vp9_lossless_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp9_lossless_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp9_lossless_encoder.GUID = B63C7C88-5348-46DC-A5A6-CC151EF93366
|
||||
vp9_lossless_encoder.DESCRIPTION = Simplified lossless VP9 encoder
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += twopass_encoder.c
|
||||
twopass_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
twopass_encoder.SRCS += tools_common.h tools_common.c
|
||||
twopass_encoder.SRCS += video_common.h
|
||||
twopass_encoder.SRCS += video_writer.h video_writer.c
|
||||
twopass_encoder.SRCS += vpx_ports/msvc.h
|
||||
twopass_encoder.GUID = 73494FA6-4AF9-4763-8FBB-265C92402FD8
|
||||
twopass_encoder.DESCRIPTION = Two-pass encoder loop
|
||||
EXAMPLES-$(CONFIG_DECODERS) += decode_with_drops.c
|
||||
decode_with_drops.SRCS += ivfdec.h ivfdec.c
|
||||
decode_with_drops.SRCS += tools_common.h tools_common.c
|
||||
decode_with_drops.SRCS += video_common.h
|
||||
decode_with_drops.SRCS += video_reader.h video_reader.c
|
||||
decode_with_drops.SRCS += vpx_ports/mem_ops.h
|
||||
decode_with_drops.SRCS += vpx_ports/mem_ops_aligned.h
|
||||
decode_with_drops.SRCS += vpx_ports/msvc.h
|
||||
decode_with_drops.GUID = CE5C53C4-8DDA-438A-86ED-0DDD3CDB8D26
|
||||
decode_with_drops.DESCRIPTION = Drops frames while decoding
|
||||
EXAMPLES-$(CONFIG_ENCODERS) += set_maps.c
|
||||
set_maps.SRCS += ivfenc.h ivfenc.c
|
||||
set_maps.SRCS += tools_common.h tools_common.c
|
||||
set_maps.SRCS += video_common.h
|
||||
set_maps.SRCS += video_writer.h video_writer.c
|
||||
set_maps.SRCS += vpx_ports/msvc.h
|
||||
set_maps.GUID = ECB2D24D-98B8-4015-A465-A4AF3DCC145F
|
||||
set_maps.DESCRIPTION = Set active and ROI maps
|
||||
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8cx_set_ref.c
|
||||
vp8cx_set_ref.SRCS += ivfenc.h ivfenc.c
|
||||
vp8cx_set_ref.SRCS += tools_common.h tools_common.c
|
||||
vp8cx_set_ref.SRCS += video_common.h
|
||||
vp8cx_set_ref.SRCS += video_writer.h video_writer.c
|
||||
vp8cx_set_ref.SRCS += vpx_ports/msvc.h
|
||||
vp8cx_set_ref.GUID = C5E31F7F-96F6-48BD-BD3E-10EBF6E8057A
|
||||
vp8cx_set_ref.DESCRIPTION = VP8 set encoder reference frame
|
||||
|
||||
ifeq ($(CONFIG_VP9_ENCODER),yes)
|
||||
ifeq ($(CONFIG_DECODERS),yes)
|
||||
EXAMPLES-yes += vp9cx_set_ref.c
|
||||
vp9cx_set_ref.SRCS += ivfenc.h ivfenc.c
|
||||
vp9cx_set_ref.SRCS += tools_common.h tools_common.c
|
||||
vp9cx_set_ref.SRCS += video_common.h
|
||||
vp9cx_set_ref.SRCS += video_writer.h video_writer.c
|
||||
vp9cx_set_ref.GUID = 65D7F14A-2EE6-4293-B958-AB5107A03B55
|
||||
vp9cx_set_ref.DESCRIPTION = VP9 set encoder reference frame
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_MULTI_RES_ENCODING),yes)
|
||||
ifeq ($(CONFIG_LIBYUV),yes)
|
||||
EXAMPLES-$(CONFIG_VP8_ENCODER) += vp8_multi_resolution_encoder.c
|
||||
vp8_multi_resolution_encoder.SRCS += ivfenc.h ivfenc.c
|
||||
vp8_multi_resolution_encoder.SRCS += tools_common.h tools_common.c
|
||||
vp8_multi_resolution_encoder.SRCS += video_writer.h video_writer.c
|
||||
vp8_multi_resolution_encoder.SRCS += vpx_ports/msvc.h
|
||||
vp8_multi_resolution_encoder.SRCS += $(LIBYUV_SRCS)
|
||||
vp8_multi_resolution_encoder.GUID = 04f8738e-63c8-423b-90fa-7c2703a374de
|
||||
vp8_multi_resolution_encoder.DESCRIPTION = VP8 Multiple-resolution Encoding
|
||||
endif
|
||||
endif
|
||||
|
||||
# Handle extra library flags depending on codec configuration
|
||||
|
||||
# We should not link to math library (libm) on RVCT
|
||||
# when building for bare-metal targets
|
||||
ifeq ($(CONFIG_OS_SUPPORT), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP9) += m
|
||||
else
|
||||
ifeq ($(CONFIG_GCC), yes)
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP8) += m
|
||||
CODEC_EXTRA_LIBS-$(CONFIG_VP9) += m
|
||||
endif
|
||||
endif
|
||||
#
|
||||
# End of specified files. The rest of the build rules should happen
|
||||
# automagically from here.
|
||||
#
|
||||
|
||||
|
||||
# Examples need different flags based on whether we're building
|
||||
# from an installed tree or a version controlled tree. Determine
|
||||
# the proper paths.
|
||||
ifeq ($(HAVE_ALT_TREE_LAYOUT),yes)
|
||||
LIB_PATH-yes := $(SRC_PATH_BARE)/../lib
|
||||
INC_PATH-yes := $(SRC_PATH_BARE)/../include
|
||||
else
|
||||
LIB_PATH-yes += $(if $(BUILD_PFX),$(BUILD_PFX),.)
|
||||
INC_PATH-$(CONFIG_VP8_DECODER) += $(SRC_PATH_BARE)/vp8
|
||||
INC_PATH-$(CONFIG_VP8_ENCODER) += $(SRC_PATH_BARE)/vp8
|
||||
INC_PATH-$(CONFIG_VP9_DECODER) += $(SRC_PATH_BARE)/vp9
|
||||
INC_PATH-$(CONFIG_VP9_ENCODER) += $(SRC_PATH_BARE)/vp9
|
||||
endif
|
||||
INC_PATH-$(CONFIG_LIBYUV) += $(SRC_PATH_BARE)/third_party/libyuv/include
|
||||
LIB_PATH := $(call enabled,LIB_PATH)
|
||||
INC_PATH := $(call enabled,INC_PATH)
|
||||
INTERNAL_CFLAGS = $(addprefix -I,$(INC_PATH))
|
||||
INTERNAL_LDFLAGS += $(addprefix -L,$(LIB_PATH))
|
||||
|
||||
|
||||
# Expand list of selected examples to build (as specified above)
|
||||
UTILS = $(call enabled,UTILS)
|
||||
EXAMPLES = $(addprefix examples/,$(call enabled,EXAMPLES))
|
||||
ALL_EXAMPLES = $(UTILS) $(EXAMPLES)
|
||||
UTIL_SRCS = $(foreach ex,$(UTILS),$($(ex:.c=).SRCS))
|
||||
ALL_SRCS = $(foreach ex,$(ALL_EXAMPLES),$($(notdir $(ex:.c=)).SRCS))
|
||||
CODEC_EXTRA_LIBS=$(sort $(call enabled,CODEC_EXTRA_LIBS))
|
||||
|
||||
|
||||
# Expand all example sources into a variable containing all sources
|
||||
# for that example (not just them main one specified in UTILS/EXAMPLES)
|
||||
# and add this file to the list (for MSVS workspace generation)
|
||||
$(foreach ex,$(ALL_EXAMPLES),$(eval $(notdir $(ex:.c=)).SRCS += $(ex) examples.mk))
|
||||
|
||||
|
||||
# Create build/install dependencies for all examples. The common case
|
||||
# is handled here. The MSVS case is handled below.
|
||||
NOT_MSVS = $(if $(CONFIG_MSVS),,yes)
|
||||
DIST-BINS-$(NOT_MSVS) += $(addprefix bin/,$(ALL_EXAMPLES:.c=$(EXE_SFX)))
|
||||
INSTALL-BINS-$(NOT_MSVS) += $(addprefix bin/,$(UTILS:.c=$(EXE_SFX)))
|
||||
DIST-SRCS-yes += $(ALL_SRCS)
|
||||
INSTALL-SRCS-yes += $(UTIL_SRCS)
|
||||
OBJS-$(NOT_MSVS) += $(call objs,$(ALL_SRCS))
|
||||
BINS-$(NOT_MSVS) += $(addprefix $(BUILD_PFX),$(ALL_EXAMPLES:.c=$(EXE_SFX)))
|
||||
|
||||
|
||||
# Instantiate linker template for all examples.
|
||||
CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx)
|
||||
ifneq ($(filter darwin%,$(TGT_OS)),)
|
||||
SHARED_LIB_SUF=.dylib
|
||||
else
|
||||
ifneq ($(filter os2%,$(TGT_OS)),)
|
||||
SHARED_LIB_SUF=_dll.a
|
||||
else
|
||||
SHARED_LIB_SUF=.so
|
||||
endif
|
||||
endif
|
||||
CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a)
|
||||
$(foreach bin,$(BINS-yes),\
|
||||
$(eval $(bin):$(LIB_PATH)/lib$(CODEC_LIB)$(CODEC_LIB_SUF))\
|
||||
$(eval $(call linker_template,$(bin),\
|
||||
$(call objs,$($(notdir $(bin:$(EXE_SFX)=)).SRCS)) \
|
||||
-l$(CODEC_LIB) $(addprefix -l,$(CODEC_EXTRA_LIBS))\
|
||||
)))
|
||||
|
||||
# The following pairs define a mapping of locations in the distribution
|
||||
# tree to locations in the source/build trees.
|
||||
INSTALL_MAPS += src/%.c %.c
|
||||
INSTALL_MAPS += src/% $(SRC_PATH_BARE)/%
|
||||
INSTALL_MAPS += bin/% %
|
||||
INSTALL_MAPS += % %
|
||||
|
||||
|
||||
# Set up additional MSVS environment
|
||||
ifeq ($(CONFIG_MSVS),yes)
|
||||
CODEC_LIB=$(if $(CONFIG_SHARED),vpx,$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd))
|
||||
# This variable uses deferred expansion intentionally, since the results of
|
||||
# $(wildcard) may change during the course of the Make.
|
||||
VS_PLATFORMS = $(foreach d,$(wildcard */Release/$(CODEC_LIB).lib),$(word 1,$(subst /, ,$(d))))
|
||||
INSTALL_MAPS += $(foreach p,$(VS_PLATFORMS),bin/$(p)/% $(p)/Release/%)
|
||||
endif
|
||||
|
||||
# Build Visual Studio Projects. We use a template here to instantiate
|
||||
# explicit rules rather than using an implicit rule because we want to
|
||||
# leverage make's VPATH searching rather than specifying the paths on
|
||||
# each file in ALL_EXAMPLES. This has the unfortunate side effect that
|
||||
# touching the source files trigger a rebuild of the project files
|
||||
# even though there is no real dependency there (the dependency is on
|
||||
# the makefiles). We may want to revisit this.
|
||||
define vcproj_template
|
||||
$(1): $($(1:.$(VCPROJ_SFX)=).SRCS) vpx.$(VCPROJ_SFX)
|
||||
$(if $(quiet),@echo " [vcproj] $$@")
|
||||
$(qexec)$$(GEN_VCPROJ)\
|
||||
--exe\
|
||||
--target=$$(TOOLCHAIN)\
|
||||
--name=$$(@:.$(VCPROJ_SFX)=)\
|
||||
--ver=$$(CONFIG_VS_VERSION)\
|
||||
--proj-guid=$$($$(@:.$(VCPROJ_SFX)=).GUID)\
|
||||
--src-path-bare="$(SRC_PATH_BARE)" \
|
||||
$$(if $$(CONFIG_STATIC_MSVCRT),--static-crt) \
|
||||
--out=$$@ $$(INTERNAL_CFLAGS) $$(CFLAGS) \
|
||||
$$(INTERNAL_LDFLAGS) $$(LDFLAGS) -l$$(CODEC_LIB) $$^
|
||||
endef
|
||||
ALL_EXAMPLES_BASENAME := $(notdir $(ALL_EXAMPLES))
|
||||
PROJECTS-$(CONFIG_MSVS) += $(ALL_EXAMPLES_BASENAME:.c=.$(VCPROJ_SFX))
|
||||
INSTALL-BINS-$(CONFIG_MSVS) += $(foreach p,$(VS_PLATFORMS),\
|
||||
$(addprefix bin/$(p)/,$(ALL_EXAMPLES_BASENAME:.c=.exe)))
|
||||
$(foreach proj,$(call enabled,PROJECTS),\
|
||||
$(eval $(call vcproj_template,$(proj))))
|
||||
|
||||
#
|
||||
# Documentation Rules
|
||||
#
|
||||
%.dox: %.c
|
||||
@echo " [DOXY] $@"
|
||||
@mkdir -p $(dir $@)
|
||||
@echo "/*!\page example_$(@F:.dox=) $(@F:.dox=)" > $@
|
||||
@echo " \includelineno $(<F)" >> $@
|
||||
@echo "*/" >> $@
|
||||
|
||||
samples.dox: examples.mk
|
||||
@echo " [DOXY] $@"
|
||||
@echo "/*!\page samples Sample Code" > $@
|
||||
@echo " This SDK includes a number of sample applications."\
|
||||
"Each sample documents a feature of the SDK in both prose"\
|
||||
"and the associated C code."\
|
||||
"The following samples are included: ">>$@
|
||||
@$(foreach ex,$(sort $(notdir $(EXAMPLES:.c=))),\
|
||||
echo " - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
|
||||
@echo >> $@
|
||||
@echo " In addition, the SDK contains a number of utilities."\
|
||||
"Since these utilities are built upon the concepts described"\
|
||||
"in the sample code listed above, they are not documented in"\
|
||||
"pieces like the samples are. Their source is included here"\
|
||||
"for reference. The following utilities are included:" >> $@
|
||||
@$(foreach ex,$(sort $(UTILS:.c=)),\
|
||||
echo " - \subpage example_$(ex) $($(ex).DESCRIPTION)" >> $@;)
|
||||
@echo "*/" >> $@
|
||||
|
||||
CLEAN-OBJS += examples.doxy samples.dox $(ALL_EXAMPLES:.c=.dox)
|
||||
DOCS-yes += examples.doxy samples.dox
|
||||
examples.doxy: samples.dox $(ALL_EXAMPLES:.c=.dox)
|
||||
@echo "INPUT += $^" > $@
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue