1233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifndef VP9_RTCD_H_ 2233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define VP9_RTCD_H_ 3233d2500723e5594f3e7c70896ffeeef32b9c950ywan 4233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef RTCD_C 5233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define RTCD_EXTERN 6233d2500723e5594f3e7c70896ffeeef32b9c950ywan#else 7233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define RTCD_EXTERN extern 8233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 9233d2500723e5594f3e7c70896ffeeef32b9c950ywan 10233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* 11233d2500723e5594f3e7c70896ffeeef32b9c950ywan * VP9 12233d2500723e5594f3e7c70896ffeeef32b9c950ywan */ 13233d2500723e5594f3e7c70896ffeeef32b9c950ywan 14233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx/vpx_integer.h" 15233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vp9/common/vp9_enums.h" 16233d2500723e5594f3e7c70896ffeeef32b9c950ywan 17233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct macroblockd; 18233d2500723e5594f3e7c70896ffeeef32b9c950ywan 19233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* Encoder forward decls */ 20233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct macroblock; 21233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct vp9_variance_vtable; 22233d2500723e5594f3e7c70896ffeeef32b9c950ywan 23233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define DEC_MVCOSTS int *mvjcost, int *mvcost[2] 24233d2500723e5594f3e7c70896ffeeef32b9c950ywanunion int_mv; 25233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct yv12_buffer_config; 26233d2500723e5594f3e7c70896ffeeef32b9c950ywan 27233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 28233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c 29233d2500723e5594f3e7c70896ffeeef32b9c950ywan 30233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 31233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c 32233d2500723e5594f3e7c70896ffeeef32b9c950ywan 33233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 34233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c 35233d2500723e5594f3e7c70896ffeeef32b9c950ywan 36233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 37233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_h_predictor_4x4 vp9_h_predictor_4x4_c 38233d2500723e5594f3e7c70896ffeeef32b9c950ywan 39233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 40233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c 41233d2500723e5594f3e7c70896ffeeef32b9c950ywan 42233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 43233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c 44233d2500723e5594f3e7c70896ffeeef32b9c950ywan 45233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 46233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c 47233d2500723e5594f3e7c70896ffeeef32b9c950ywan 48233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 49233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_c 50233d2500723e5594f3e7c70896ffeeef32b9c950ywan 51233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 52233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_c 53233d2500723e5594f3e7c70896ffeeef32b9c950ywan 54233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 55233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c 56233d2500723e5594f3e7c70896ffeeef32b9c950ywan 57233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 58233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c 59233d2500723e5594f3e7c70896ffeeef32b9c950ywan 60233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 61233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c 62233d2500723e5594f3e7c70896ffeeef32b9c950ywan 63233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 64233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c 65233d2500723e5594f3e7c70896ffeeef32b9c950ywan 66233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 67233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c 68233d2500723e5594f3e7c70896ffeeef32b9c950ywan 69233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 70233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c 71233d2500723e5594f3e7c70896ffeeef32b9c950ywan 72233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 73233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c 74233d2500723e5594f3e7c70896ffeeef32b9c950ywan 75233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 76233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_h_predictor_8x8 vp9_h_predictor_8x8_c 77233d2500723e5594f3e7c70896ffeeef32b9c950ywan 78233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 79233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c 80233d2500723e5594f3e7c70896ffeeef32b9c950ywan 81233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 82233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c 83233d2500723e5594f3e7c70896ffeeef32b9c950ywan 84233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 85233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c 86233d2500723e5594f3e7c70896ffeeef32b9c950ywan 87233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 88233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_c 89233d2500723e5594f3e7c70896ffeeef32b9c950ywan 90233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 91233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_c 92233d2500723e5594f3e7c70896ffeeef32b9c950ywan 93233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 94233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c 95233d2500723e5594f3e7c70896ffeeef32b9c950ywan 96233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 97233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c 98233d2500723e5594f3e7c70896ffeeef32b9c950ywan 99233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 100233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c 101233d2500723e5594f3e7c70896ffeeef32b9c950ywan 102233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 103233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c 104233d2500723e5594f3e7c70896ffeeef32b9c950ywan 105233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 106233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c 107233d2500723e5594f3e7c70896ffeeef32b9c950ywan 108233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 109233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c 110233d2500723e5594f3e7c70896ffeeef32b9c950ywan 111233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 112233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c 113233d2500723e5594f3e7c70896ffeeef32b9c950ywan 114233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 115233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_h_predictor_16x16 vp9_h_predictor_16x16_c 116233d2500723e5594f3e7c70896ffeeef32b9c950ywan 117233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 118233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c 119233d2500723e5594f3e7c70896ffeeef32b9c950ywan 120233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 121233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c 122233d2500723e5594f3e7c70896ffeeef32b9c950ywan 123233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 124233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c 125233d2500723e5594f3e7c70896ffeeef32b9c950ywan 126233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 127233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_c 128233d2500723e5594f3e7c70896ffeeef32b9c950ywan 129233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 130233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_c 131233d2500723e5594f3e7c70896ffeeef32b9c950ywan 132233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 133233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c 134233d2500723e5594f3e7c70896ffeeef32b9c950ywan 135233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 136233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c 137233d2500723e5594f3e7c70896ffeeef32b9c950ywan 138233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 139233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c 140233d2500723e5594f3e7c70896ffeeef32b9c950ywan 141233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 142233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c 143233d2500723e5594f3e7c70896ffeeef32b9c950ywan 144233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 145233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c 146233d2500723e5594f3e7c70896ffeeef32b9c950ywan 147233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 148233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c 149233d2500723e5594f3e7c70896ffeeef32b9c950ywan 150233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 151233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c 152233d2500723e5594f3e7c70896ffeeef32b9c950ywan 153233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 154233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_h_predictor_32x32 vp9_h_predictor_32x32_c 155233d2500723e5594f3e7c70896ffeeef32b9c950ywan 156233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 157233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c 158233d2500723e5594f3e7c70896ffeeef32b9c950ywan 159233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 160233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c 161233d2500723e5594f3e7c70896ffeeef32b9c950ywan 162233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 163233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c 164233d2500723e5594f3e7c70896ffeeef32b9c950ywan 165233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 166233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_c 167233d2500723e5594f3e7c70896ffeeef32b9c950ywan 168233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 169233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c 170233d2500723e5594f3e7c70896ffeeef32b9c950ywan 171233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 172233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c 173233d2500723e5594f3e7c70896ffeeef32b9c950ywan 174233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 175233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c 176233d2500723e5594f3e7c70896ffeeef32b9c950ywan 177233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 178233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c 179233d2500723e5594f3e7c70896ffeeef32b9c950ywan 180233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 181233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c 182233d2500723e5594f3e7c70896ffeeef32b9c950ywan 183233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_mb_lpf_vertical_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 184233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_mb_lpf_vertical_edge_w vp9_mb_lpf_vertical_edge_w_c 185233d2500723e5594f3e7c70896ffeeef32b9c950ywan 186233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_mbloop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 187233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_mbloop_filter_vertical_edge vp9_mbloop_filter_vertical_edge_c 188233d2500723e5594f3e7c70896ffeeef32b9c950ywan 189233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_loop_filter_vertical_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 190233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_loop_filter_vertical_edge vp9_loop_filter_vertical_edge_c 191233d2500723e5594f3e7c70896ffeeef32b9c950ywan 192233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_mb_lpf_horizontal_edge_w_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 193233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_mb_lpf_horizontal_edge_w vp9_mb_lpf_horizontal_edge_w_c 194233d2500723e5594f3e7c70896ffeeef32b9c950ywan 195233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_mbloop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 196233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_mbloop_filter_horizontal_edge vp9_mbloop_filter_horizontal_edge_c 197233d2500723e5594f3e7c70896ffeeef32b9c950ywan 198233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_loop_filter_horizontal_edge_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 199233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_loop_filter_horizontal_edge vp9_loop_filter_horizontal_edge_c 200233d2500723e5594f3e7c70896ffeeef32b9c950ywan 201233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 202233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_mb_inner vp9_blend_mb_inner_c 203233d2500723e5594f3e7c70896ffeeef32b9c950ywan 204233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 205233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_mb_outer vp9_blend_mb_outer_c 206233d2500723e5594f3e7c70896ffeeef32b9c950ywan 207233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 208233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_b vp9_blend_b_c 209233d2500723e5594f3e7c70896ffeeef32b9c950ywan 210233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 211233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve_copy vp9_convolve_copy_c 212233d2500723e5594f3e7c70896ffeeef32b9c950ywan 213233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 214233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve_avg vp9_convolve_avg_c 215233d2500723e5594f3e7c70896ffeeef32b9c950ywan 216233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 217233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8 vp9_convolve8_c 218233d2500723e5594f3e7c70896ffeeef32b9c950ywan 219233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 220233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8_horiz vp9_convolve8_horiz_c 221233d2500723e5594f3e7c70896ffeeef32b9c950ywan 222233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 223233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8_vert vp9_convolve8_vert_c 224233d2500723e5594f3e7c70896ffeeef32b9c950ywan 225233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 226233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8_avg vp9_convolve8_avg_c 227233d2500723e5594f3e7c70896ffeeef32b9c950ywan 228233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 229233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8_avg_horiz vp9_convolve8_avg_horiz_c 230233d2500723e5594f3e7c70896ffeeef32b9c950ywan 231233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 232233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_convolve8_avg_vert vp9_convolve8_avg_vert_c 233233d2500723e5594f3e7c70896ffeeef32b9c950ywan 234233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 235233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct4x4_1_add vp9_idct4x4_1_add_c 236233d2500723e5594f3e7c70896ffeeef32b9c950ywan 237233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 238233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct4x4_16_add vp9_idct4x4_16_add_c 239233d2500723e5594f3e7c70896ffeeef32b9c950ywan 240233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 241233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct8x8_1_add vp9_idct8x8_1_add_c 242233d2500723e5594f3e7c70896ffeeef32b9c950ywan 243233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 244233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct8x8_64_add vp9_idct8x8_64_add_c 245233d2500723e5594f3e7c70896ffeeef32b9c950ywan 246233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 247233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct8x8_10_add vp9_idct8x8_10_add_c 248233d2500723e5594f3e7c70896ffeeef32b9c950ywan 249233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 250233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct16x16_1_add vp9_idct16x16_1_add_c 251233d2500723e5594f3e7c70896ffeeef32b9c950ywan 252233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_256_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 253233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct16x16_256_add vp9_idct16x16_256_add_c 254233d2500723e5594f3e7c70896ffeeef32b9c950ywan 255233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 256233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct16x16_10_add vp9_idct16x16_10_add_c 257233d2500723e5594f3e7c70896ffeeef32b9c950ywan 258233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 259233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_c 260233d2500723e5594f3e7c70896ffeeef32b9c950ywan 261233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 262233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct32x32_34_add vp9_idct32x32_34_add_c 263233d2500723e5594f3e7c70896ffeeef32b9c950ywan 264233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 265233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_idct32x32_1_add vp9_idct32x32_1_add_c 266233d2500723e5594f3e7c70896ffeeef32b9c950ywan 267233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 268233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iht4x4_16_add vp9_iht4x4_16_add_c 269233d2500723e5594f3e7c70896ffeeef32b9c950ywan 270233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 271233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iht8x8_64_add vp9_iht8x8_64_add_c 272233d2500723e5594f3e7c70896ffeeef32b9c950ywan 273233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, int tx_type); 274233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iht16x16_256_add vp9_iht16x16_256_add_c 275233d2500723e5594f3e7c70896ffeeef32b9c950ywan 276233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iwht4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 277233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c 278233d2500723e5594f3e7c70896ffeeef32b9c950ywan 279233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iwht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 280233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c 281233d2500723e5594f3e7c70896ffeeef32b9c950ywan 282233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_rtcd(void); 283233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx_config.h" 284233d2500723e5594f3e7c70896ffeeef32b9c950ywan 285233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef RTCD_C 286233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx_ports/arm.h" 287233d2500723e5594f3e7c70896ffeeef32b9c950ywanstatic void setup_rtcd_internal(void) 288233d2500723e5594f3e7c70896ffeeef32b9c950ywan{ 289233d2500723e5594f3e7c70896ffeeef32b9c950ywan int flags = arm_cpu_caps(); 290233d2500723e5594f3e7c70896ffeeef32b9c950ywan 291233d2500723e5594f3e7c70896ffeeef32b9c950ywan (void)flags; 292233d2500723e5594f3e7c70896ffeeef32b9c950ywan 293233d2500723e5594f3e7c70896ffeeef32b9c950ywan 294233d2500723e5594f3e7c70896ffeeef32b9c950ywan} 295233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 296233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 297