141 #define LOAD_TOP_RIGHT_EDGE\ 
  142     const unsigned av_unused t4 = topright[0];\ 
  143     const unsigned av_unused t5 = topright[1];\ 
  144     const unsigned av_unused t6 = topright[2];\ 
  145     const unsigned av_unused t7 = topright[3];\ 
  147 #define LOAD_DOWN_LEFT_EDGE\ 
  148     const unsigned av_unused l4 = src[-1+4*stride];\ 
  149     const unsigned av_unused l5 = src[-1+5*stride];\ 
  150     const unsigned av_unused l6 = src[-1+6*stride];\ 
  151     const unsigned av_unused l7 = src[-1+7*stride];\ 
  153 #define LOAD_LEFT_EDGE\ 
  154     const unsigned av_unused l0 = src[-1+0*stride];\ 
  155     const unsigned av_unused l1 = src[-1+1*stride];\ 
  156     const unsigned av_unused l2 = src[-1+2*stride];\ 
  157     const unsigned av_unused l3 = src[-1+3*stride];\ 
  159 #define LOAD_TOP_EDGE\ 
  160     const unsigned av_unused t0 = src[ 0-1*stride];\ 
  161     const unsigned av_unused t1 = src[ 1-1*stride];\ 
  162     const unsigned av_unused t2 = src[ 2-1*stride];\ 
  163     const unsigned av_unused t3 = src[ 3-1*stride];\ 
  170     const int lt= src[-1-1*
stride];
 
  174     src[0+3*
stride]=(l3 + 2*l2 + l1 + 2)>>2;
 
  176     src[1+3*
stride]=(l2 + 2*l1 + l0 + 2)>>2;
 
  179     src[2+3*
stride]=(l1 + 2*l0 + lt + 2)>>2;
 
  183     src[3+3*
stride]=(l0 + 2*lt + 
t0 + 2)>>2;
 
  196     const pixel *topright = (
const pixel*)_topright;
 
  226     const int lt= src[-1-1*
stride];
 
  238     src[1+3*
stride]=(l0 + 2*lt + 
t0 + 2)>>2;
 
  244     src[0+2*
stride]=(lt + 2*l0 + l1 + 2)>>2;
 
  245     src[0+3*
stride]=(l0 + 2*l1 + l2 + 2)>>2;
 
  253     const pixel *topright = (
const pixel*)_topright;
 
  283     src[0+0*
stride]=(l0 + l1 + 1)>>1;
 
  284     src[1+0*
stride]=(l0 + 2*l1 + l2 + 2)>>2;
 
  286     src[0+1*
stride]=(l1 + l2 + 1)>>1;
 
  288     src[1+1*
stride]=(l1 + 2*l2 + l3 + 2)>>2;
 
  290     src[0+2*
stride]=(l2 + l3 + 1)>>1;
 
  292     src[1+2*
stride]=(l2 + 2*l3 + l3 + 2)>>2;
 
  307     const int lt= src[-1-1*
stride];
 
  312     src[2+1*
stride]=(lt + l0 + 1)>>1;
 
  314     src[3+1*
stride]=(l0 + 2*lt + 
t0 + 2)>>2;
 
  318     src[2+2*
stride]=(l0 + l1 + 1)>>1;
 
  320     src[3+2*
stride]=(lt + 2*l0 + l1 + 2)>>2;
 
  322     src[2+3*
stride]=(l1 + l2+ 1)>>1;
 
  324     src[3+3*
stride]=(l0 + 2*l1 + l2 + 2)>>2;
 
  325     src[0+3*
stride]=(l2 + l3 + 1)>>1;
 
  326     src[1+3*
stride]=(l1 + 2*l2 + l3 + 2)>>2;
 
  363 #define PREDICT_16x16_DC(v)\ 
  364     for(i=0; i<16; i++){\ 
  365         AV_WN4PA(src+ 0, v);\ 
  366         AV_WN4PA(src+ 4, v);\ 
  367         AV_WN4PA(src+ 8, v);\ 
  368         AV_WN4PA(src+12, v);\ 
  421 #define PRED16x16_X(n, v) \ 
  422 static void FUNCC(pred16x16_##n##_dc)(uint8_t *_src, ptrdiff_t stride)\ 
  425     pixel *src = (pixel*)_src;\ 
  426     stride >>= sizeof(pixel)-1;\ 
  427     PREDICT_16x16_DC(PIXEL_SPLAT_X4(v));\ 
  434 static inline 
void FUNCC(pred16x16_plane_compat)(
uint8_t *_src,
 
  447   int H = src0[1] - src0[-1];
 
  448   int V = src1[0] - src2[ 0];
 
  449   for(k=2; k<=8; ++k) {
 
  451     H += k*(src0[k] - src0[-k]);
 
  452     V += k*(src1[0] - src2[ 0]);
 
  455     H = ( 5*(H/4) ) / 16;
 
  456     V = ( 5*(V/4) ) / 16;
 
  461     H = ( H + (H>>2) ) >> 4;
 
  462     V = ( V + (V>>2) ) >> 4;
 
  468   a = 16*(src1[0] + src2[16] + 1) - 7*(V+H);
 
  469   for(j=16; j>0; --j) {
 
  472     for(i=-16; i<0; i+=4) {
 
  473       src[16+i] = 
CLIP((b    ) >> 5);
 
  474       src[17+i] = 
CLIP((b+  H) >> 5);
 
  475       src[18+i] = 
CLIP((b+2*H) >> 5);
 
  476       src[19+i] = 
CLIP((b+3*H) >> 5);
 
  492     int stride = _stride>>(
sizeof(
pixel)-1);
 
  506     int stride = _stride>>(
sizeof(
pixel)-1);
 
  520     stride >>= 
sizeof(
pixel)-1;
 
  533     stride >>= 
sizeof(
pixel)-1;
 
  541 #define PRED8x8_X(n, v)\ 
  542 static void FUNCC(pred8x8_##n##_dc)(uint8_t *_src, ptrdiff_t stride)\ 
  545     const pixel4 a = PIXEL_SPLAT_X4(v);\ 
  546     pixel *src = (pixel*)_src;\ 
  547     stride >>= sizeof(pixel)-1;\ 
  549         AV_WN4PA(((pixel4*)(src+i*stride))+0, a);\ 
  550         AV_WN4PA(((pixel4*)(src+i*stride))+1, a);\ 
  558 static 
void FUNCC(pred8x16_128_dc)(
uint8_t *_src, ptrdiff_t stride)
 
  570     stride >>= 
sizeof(
pixel)-1;
 
  575         dc2+= src[-1+(i+4)*stride];
 
  600     pixel4 dc0splat, dc1splat;
 
  602     stride >>= 
sizeof(
pixel)-1;
 
  626     pixel4 dc0splat, dc1splat;
 
  628     stride >>= 
sizeof(
pixel)-1;
 
  650     stride >>= 
sizeof(
pixel)-1;
 
  656         dc2+= src[-1+(i+4)*stride];
 
  676     int dc0, dc1, dc2, dc3, dc4;
 
  677     pixel4 dc0splat, dc1splat, 
dc2splat, dc3splat, dc4splat, dc5splat, dc6splat, dc7splat;
 
  679     stride >>= 
sizeof(
pixel)-1;
 
  681     dc0=dc1=dc2=dc3=dc4=0;
 
  685         dc2+= src[-1+(i+4)*stride];
 
  686         dc3+= src[-1+(i+8)*stride];
 
  687         dc4+= src[-1+(i+12)*stride];
 
  710     for(i=12; i<16; i++){
 
  775   int stride = _stride>>(
sizeof(
pixel)-1);
 
  777   const pixel *       src1 = src +4*stride-1;
 
  779   int H = src0[1] - src0[-1];
 
  780   int V = src1[0] - src2[ 0];
 
  781   for(k=2; k<=4; ++k) {
 
  783     H += k*(src0[k] - src0[-k]);
 
  784     V += k*(src1[0] - src2[ 0]);
 
  786   H = ( 17*H+16 ) >> 5;
 
  787   V = ( 17*V+16 ) >> 5;
 
  789   a = 16*(src1[0] + src2[8]+1) - 3*(V+H);
 
  793     src[0] = 
CLIP((b    ) >> 5);
 
  794     src[1] = 
CLIP((b+  H) >> 5);
 
  795     src[2] = 
CLIP((b+2*H) >> 5);
 
  796     src[3] = 
CLIP((b+3*H) >> 5);
 
  797     src[4] = 
CLIP((b+4*H) >> 5);
 
  798     src[5] = 
CLIP((b+5*H) >> 5);
 
  799     src[6] = 
CLIP((b+6*H) >> 5);
 
  800     src[7] = 
CLIP((b+7*H) >> 5);
 
  811   int stride = _stride>>(
sizeof(
pixel)-1);
 
  813   const pixel *       src1 = src +8*stride-1;
 
  815   int H = src0[1] - src0[-1];
 
  816   int V = src1[0] - src2[ 0];
 
  818   for (k = 2; k <= 4; ++k) {
 
  820       H += k*(src0[k] - src0[-k]);
 
  821       V += k*(src1[0] - src2[ 0]);
 
  823   for (; k <= 8; ++k) {
 
  825       V += k*(src1[0] - src2[0]);
 
  831   a = 16*(src1[0] + src2[8] + 1) - 7*V - 3*H;
 
  832   for(j=16; j>0; --j) {
 
  835     src[0] = 
CLIP((b    ) >> 5);
 
  836     src[1] = 
CLIP((b+  H) >> 5);
 
  837     src[2] = 
CLIP((b+2*H) >> 5);
 
  838     src[3] = 
CLIP((b+3*H) >> 5);
 
  839     src[4] = 
CLIP((b+4*H) >> 5);
 
  840     src[5] = 
CLIP((b+5*H) >> 5);
 
  841     src[6] = 
CLIP((b+6*H) >> 5);
 
  842     src[7] = 
CLIP((b+7*H) >> 5);
 
  847 #define SRC(x,y) src[(x)+(y)*stride] 
  849     const int l##y = (SRC(-1,y-1) + 2*SRC(-1,y) + SRC(-1,y+1) + 2) >> 2; 
  850 #define PREDICT_8x8_LOAD_LEFT \ 
  851     const int l0 = ((has_topleft ? SRC(-1,-1) : SRC(-1,0)) \ 
  852                      + 2*SRC(-1,0) + SRC(-1,1) + 2) >> 2; \ 
  853     PL(1) PL(2) PL(3) PL(4) PL(5) PL(6) \ 
  854     const int l7 av_unused = (SRC(-1,6) + 3*SRC(-1,7) + 2) >> 2 
  857     const int t##x = (SRC(x-1,-1) + 2*SRC(x,-1) + SRC(x+1,-1) + 2) >> 2; 
  858 #define PREDICT_8x8_LOAD_TOP \ 
  859     const int t0 = ((has_topleft ? SRC(-1,-1) : SRC(0,-1)) \ 
  860                      + 2*SRC(0,-1) + SRC(1,-1) + 2) >> 2; \ 
  861     PT(1) PT(2) PT(3) PT(4) PT(5) PT(6) \ 
  862     const int t7 av_unused = ((has_topright ? SRC(8,-1) : SRC(7,-1)) \ 
  863                      + 2*SRC(7,-1) + SRC(6,-1) + 2) >> 2 
  866     t##x = (SRC(x-1,-1) + 2*SRC(x,-1) + SRC(x+1,-1) + 2) >> 2; 
  867 #define PREDICT_8x8_LOAD_TOPRIGHT \ 
  868     int t8, t9, t10, t11, t12, t13, t14, t15; \ 
  870         PTR(8) PTR(9) PTR(10) PTR(11) PTR(12) PTR(13) PTR(14) \ 
  871         t15 = (SRC(14,-1) + 3*SRC(15,-1) + 2) >> 2; \ 
  872     } else t8=t9=t10=t11=t12=t13=t14=t15= SRC(7,-1); 
  874 #define PREDICT_8x8_LOAD_TOPLEFT \ 
  875     const int lt = (SRC(-1,0) + 2*SRC(-1,-1) + SRC(0,-1) + 2) >> 2 
  877 #define PREDICT_8x8_DC(v) \ 
  879     for( y = 0; y < 8; y++ ) { \ 
  880         AV_WN4PA(((pixel4*)src)+0, v); \ 
  881         AV_WN4PA(((pixel4*)src)+1, v); \ 
  886                                    int has_topright, ptrdiff_t _stride)
 
  889     int stride = _stride>>(
sizeof(
pixel)-1);
 
  894                                     int has_topright, ptrdiff_t _stride)
 
  897     int stride = _stride>>(
sizeof(
pixel)-1);
 
  904                                    int has_topright, ptrdiff_t _stride)
 
  907     int stride = _stride>>(
sizeof(
pixel)-1);
 
  914                                int has_topright, ptrdiff_t _stride)
 
  917     int stride = _stride>>(
sizeof(
pixel)-1);
 
  926                                        int has_topright, ptrdiff_t _stride)
 
  929     int stride = _stride>>(
sizeof(
pixel)-1);
 
  933 #define ROW(y) a = PIXEL_SPLAT_X4(l##y); \ 
  934                AV_WN4PA(src+y*stride, a); \ 
  935                AV_WN4PA(src+y*stride+4, a); 
  940                                      int has_topright, ptrdiff_t _stride)
 
  944     int stride = _stride>>(
sizeof(
pixel)-1);
 
  958     for( y = 1; y < 8; y++ ) {
 
  964                                       int has_topright, ptrdiff_t _stride)
 
  967     int stride = _stride>>(
sizeof(
pixel)-1);
 
  982     SRC(5,7)=
SRC(6,6)=
SRC(7,5)= (
t12 + 2*t13 + t14 + 2) >> 2;
 
  983     SRC(6,7)=
SRC(7,6)= (t13 + 2*t14 + 
t15 + 2) >> 2;
 
  984     SRC(7,7)= (t14 + 3*
t15 + 2) >> 2;
 
  987                                        int has_topright, ptrdiff_t _stride)
 
  990     int stride = _stride>>(
sizeof(
pixel)-1);
 
  994     SRC(0,7)= (l7 + 2*l6 + l5 + 2) >> 2;
 
  995     SRC(0,6)=
SRC(1,7)= (l6 + 2*l5 + l4 + 2) >> 2;
 
  996     SRC(0,5)=
SRC(1,6)=
SRC(2,7)= (l5 + 2*l4 + l3 + 2) >> 2;
 
  997     SRC(0,4)=
SRC(1,5)=
SRC(2,6)=
SRC(3,7)= (l4 + 2*l3 + l2 + 2) >> 2;
 
  998     SRC(0,3)=
SRC(1,4)=
SRC(2,5)=
SRC(3,6)=
SRC(4,7)= (l3 + 2*l2 + l1 + 2) >> 2;
 
 1011                                            int has_topright, ptrdiff_t _stride)
 
 1014     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1018     SRC(0,6)= (l5 + 2*l4 + l3 + 2) >> 2;
 
 1019     SRC(0,7)= (l6 + 2*l5 + l4 + 2) >> 2;
 
 1020     SRC(0,4)=
SRC(1,6)= (l3 + 2*l2 + l1 + 2) >> 2;
 
 1021     SRC(0,5)=
SRC(1,7)= (l4 + 2*l3 + l2 + 2) >> 2;
 
 1022     SRC(0,2)=
SRC(1,4)=
SRC(2,6)= (l1 + 2*l0 + lt + 2) >> 2;
 
 1023     SRC(0,3)=
SRC(1,5)=
SRC(2,7)= (l2 + 2*l1 + l0 + 2) >> 2;
 
 1042                                             int has_topright, ptrdiff_t _stride)
 
 1045     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1049     SRC(0,7)= (l6 + l7 + 1) >> 1;
 
 1050     SRC(1,7)= (l5 + 2*l6 + l7 + 2) >> 2;
 
 1051     SRC(0,6)=
SRC(2,7)= (l5 + l6 + 1) >> 1;
 
 1052     SRC(1,6)=
SRC(3,7)= (l4 + 2*l5 + l6 + 2) >> 2;
 
 1053     SRC(0,5)=
SRC(2,6)=
SRC(4,7)= (l4 + l5 + 1) >> 1;
 
 1054     SRC(1,5)=
SRC(3,6)=
SRC(5,7)= (l3 + 2*l4 + l5 + 2) >> 2;
 
 1055     SRC(0,4)=
SRC(2,5)=
SRC(4,6)=
SRC(6,7)= (l3 + l4 + 1) >> 1;
 
 1056     SRC(1,4)=
SRC(3,5)=
SRC(5,6)=
SRC(7,7)= (l2 + 2*l3 + l4 + 2) >> 2;
 
 1057     SRC(0,3)=
SRC(2,4)=
SRC(4,5)=
SRC(6,6)= (l2 + l3 + 1) >> 1;
 
 1058     SRC(1,3)=
SRC(3,4)=
SRC(5,5)=
SRC(7,6)= (l1 + 2*l2 + l3 + 2) >> 2;
 
 1059     SRC(0,2)=
SRC(2,3)=
SRC(4,4)=
SRC(6,5)= (l1 + l2 + 1) >> 1;
 
 1060     SRC(1,2)=
SRC(3,3)=
SRC(5,4)=
SRC(7,5)= (l0 + 2*l1 + l2 + 2) >> 2;
 
 1061     SRC(0,1)=
SRC(2,2)=
SRC(4,3)=
SRC(6,4)= (l0 + l1 + 1) >> 1;
 
 1062     SRC(1,1)=
SRC(3,2)=
SRC(5,3)=
SRC(7,4)= (lt + 2*l0 + l1 + 2) >> 2;
 
 1063     SRC(0,0)=
SRC(2,1)=
SRC(4,2)=
SRC(6,3)= (lt + l0 + 1) >> 1;
 
 1073                                           int has_topright, ptrdiff_t _stride)
 
 1076     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1103                                           int has_topright, ptrdiff_t _stride)
 
 1106     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1108     SRC(0,0)= (l0 + l1 + 1) >> 1;
 
 1109     SRC(1,0)= (l0 + 2*l1 + l2 + 2) >> 2;
 
 1110     SRC(0,1)=
SRC(2,0)= (l1 + l2 + 1) >> 1;
 
 1111     SRC(1,1)=
SRC(3,0)= (l1 + 2*l2 + l3 + 2) >> 2;
 
 1112     SRC(0,2)=
SRC(2,1)=
SRC(4,0)= (l2 + l3 + 1) >> 1;
 
 1113     SRC(1,2)=
SRC(3,1)=
SRC(5,0)= (l2 + 2*l3 + l4 + 2) >> 2;
 
 1114     SRC(0,3)=
SRC(2,2)=
SRC(4,1)=
SRC(6,0)= (l3 + l4 + 1) >> 1;
 
 1115     SRC(1,3)=
SRC(3,2)=
SRC(5,1)=
SRC(7,0)= (l3 + 2*l4 + l5 + 2) >> 2;
 
 1116     SRC(0,4)=
SRC(2,3)=
SRC(4,2)=
SRC(6,1)= (l4 + l5 + 1) >> 1;
 
 1117     SRC(1,4)=
SRC(3,3)=
SRC(5,2)=
SRC(7,1)= (l4 + 2*l5 + l6 + 2) >> 2;
 
 1118     SRC(0,5)=
SRC(2,4)=
SRC(4,3)=
SRC(6,2)= (l5 + l6 + 1) >> 1;
 
 1119     SRC(1,5)=
SRC(3,4)=
SRC(5,3)=
SRC(7,2)= (l5 + 2*l6 + l7 + 2) >> 2;
 
 1120     SRC(0,6)=
SRC(2,5)=
SRC(4,4)=
SRC(6,3)= (l6 + l7 + 1) >> 1;
 
 1121     SRC(1,6)=
SRC(3,5)=
SRC(5,4)=
SRC(7,3)= (l6 + 3*l7 + 2) >> 2;
 
 1129                                      int has_topright, ptrdiff_t _stride)
 
 1135     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1149         src[0*
stride]= v += block[0];
 
 1150         src[1*
stride]= v += block[8];
 
 1151         src[2*
stride]= v += block[16];
 
 1152         src[3*
stride]= v += block[24];
 
 1153         src[4*
stride]= v += block[32];
 
 1154         src[5*
stride]= v += block[40];
 
 1155         src[6*
stride]= v += block[48];
 
 1156         src[7*
stride]= v +  block[56];
 
 1161     memset(_block, 0, 
sizeof(
dctcoef) * 64);
 
 1165                                int has_topright, ptrdiff_t _stride)
 
 1171     int stride = _stride>>(
sizeof(
pixel)-1);
 
 1185         src[0]= v += block[0];
 
 1186         src[1]= v += block[1];
 
 1187         src[2]= v += block[2];
 
 1188         src[3]= v += block[3];
 
 1189         src[4]= v += block[4];
 
 1190         src[5]= v += block[5];
 
 1191         src[6]= v += block[6];
 
 1192         src[7]= v +  block[7];
 
 1197     memset(_block, 0, 
sizeof(
dctcoef) * 64);
 
 1200 #undef PREDICT_8x8_LOAD_LEFT 
 1201 #undef PREDICT_8x8_LOAD_TOP 
 1202 #undef PREDICT_8x8_LOAD_TOPLEFT 
 1203 #undef PREDICT_8x8_LOAD_TOPRIGHT 
 1204 #undef PREDICT_8x8_DC 
 1216     stride >>= 
sizeof(
pixel)-1;
 
 1220         pix[1*
stride]= v += block[0];
 
 1221         pix[2*
stride]= v += block[4];
 
 1222         pix[3*
stride]= v += block[8];
 
 1223         pix[4*
stride]= v +  block[12];
 
 1228     memset(_block, 0, 
sizeof(
dctcoef) * 16);
 
 1237     stride >>= 
sizeof(
pixel)-1;
 
 1240         pix[0]= v += block[0];
 
 1241         pix[1]= v += block[1];
 
 1242         pix[2]= v += block[2];
 
 1243         pix[3]= v +  block[3];
 
 1248     memset(_block, 0, 
sizeof(
dctcoef) * 16);
 
 1257     stride >>= 
sizeof(
pixel)-1;
 
 1261         pix[1*
stride]= v += block[0];
 
 1262         pix[2*
stride]= v += block[8];
 
 1263         pix[3*
stride]= v += block[16];
 
 1264         pix[4*
stride]= v += block[24];
 
 1265         pix[5*
stride]= v += block[32];
 
 1266         pix[6*
stride]= v += block[40];
 
 1267         pix[7*
stride]= v += block[48];
 
 1268         pix[8*
stride]= v +  block[56];
 
 1273     memset(_block, 0, 
sizeof(
dctcoef) * 64);
 
 1282     stride >>= 
sizeof(
pixel)-1;
 
 1285         pix[0]= v += block[0];
 
 1286         pix[1]= v += block[1];
 
 1287         pix[2]= v += block[2];
 
 1288         pix[3]= v += block[3];
 
 1289         pix[4]= v += block[4];
 
 1290         pix[5]= v += block[5];
 
 1291         pix[6]= v += block[6];
 
 1292         pix[7]= v +  block[7];
 
 1297     memset(_block, 0, 
sizeof(
dctcoef) * 64);
 
 1310                                             const int *block_offset,
 
 1347                                            const int *block_offset,
 
static void FUNCC() pred8x16_plane(uint8_t *_src, ptrdiff_t _stride)
static void FUNCC() pred4x4_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred8x8l_dc(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_vertical_right(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNC() pred8x8_mad_cow_dc_l0t(uint8_t *src, ptrdiff_t stride)
#define PREDICT_8x8_DC(v)
static void FUNCC() pred4x4_horizontal_add(uint8_t *_pix, int16_t *_block, ptrdiff_t stride)
static void FUNC() pred8x8_mad_cow_dc_l00(uint8_t *src, ptrdiff_t stride)
static void FUNCC() pred8x8l_down_left(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8l_down_right(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_horizontal(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred8x8l_horizontal(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8l_vertical_right(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x16_top_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred8x8l_128_dc(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_down_left(uint8_t *_src, const uint8_t *_topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_129_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred16x16_vertical(uint8_t *_src, ptrdiff_t _stride)
static void FUNCC() pred8x8l_horizontal_down(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
<<(BIT_DEPTH-1))+0) PRED8x8_X(129,(1<<(BIT_DEPTH-1))+1) staticvoidFUNCC(pred8x16_128_dc)(uint8_t *_src, ptrdiff_tstride){FUNCC(pred8x8_128_dc)(_src, stride);FUNCC(pred8x8_128_dc)(_src+8 *stride, stride);}staticvoidFUNCC(pred8x8_left_dc)(uint8_t *_src, ptrdiff_tstride){inti;intdc0, dc2;pixel4dc0splat, dc2splat;pixel *src=(pixel *) _src;stride >>=sizeof(pixel)-1;dc0=dc2=0;for(i=0;i< 4;i++){dc0+=src[-1+i *stride];dc2+=src[-1+(i+4)*stride];}dc0splat=PIXEL_SPLAT_X4((dc0+2)>> dc2splat
#define PRED16x16_X(n, v)
static void FUNCC() pred8x8l_vertical_add(uint8_t *_pix, int16_t *_block, ptrdiff_t stride)
static void FUNCC() pred8x16_horizontal(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred4x4_vertical_add(uint8_t *_pix, int16_t *_block, ptrdiff_t stride)
static void FUNC() pred8x16_mad_cow_dc_l0t(uint8_t *src, ptrdiff_t stride)
static void FUNCC() pred8x16_left_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred4x4_vertical(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred16x16_dc(uint8_t *_src, ptrdiff_t stride)
static int t15(InterplayACMContext *s, unsigned ind, unsigned col)
static void FUNCC() pred8x8l_vertical_left(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_128_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
#define PREDICT_8x8_LOAD_LEFT
static void FUNC() pred8x8_mad_cow_dc_0l0(uint8_t *src, ptrdiff_t stride)
static void FUNCC() pred8x8l_horizontal_filter_add(uint8_t *_src, int16_t *_block, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_127_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_vertical_left(uint8_t *_src, const uint8_t *_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_plane(uint8_t *_src, ptrdiff_t _stride)
#define PREDICT_8x8_LOAD_TOPLEFT
static void FUNCC() pred8x16_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred8x8l_top_dc(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_vertical_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)
static void FUNCC() pred8x16_vertical(uint8_t *_src, ptrdiff_t _stride)
static void FUNCC() pred8x8l_vertical(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred16x16_horizontal_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)
static void FUNC() pred8x8_mad_cow_dc_0lt(uint8_t *src, ptrdiff_t stride)
static void FUNCC() pred16x16_plane(uint8_t *src, ptrdiff_t stride)
static void FUNC() pred8x16_mad_cow_dc_0l0(uint8_t *src, ptrdiff_t stride)
<<(BIT_DEPTH-1))+0) PRED16x16_X(129,(1<<(BIT_DEPTH-1))+1) staticinlinevoidFUNCC(pred16x16_plane_compat)(uint8_t *_src, ptrdiff_t_stride, constintsvq3, constintrv40){inti, j, k;inta;INIT_CLIPpixel *src=(pixel *) _src;intstride=_stride >>(sizeof(pixel)-1);constpixel *constsrc0=src+7-stride;constpixel *src1=src+8 *stride-1;constpixel *src2=src1-2 *stride;intH=src0[1]-src0[-1];intV=src1[0]-src2[0];for(k=2;k<=8;++k){src1+=stride;src2-=stride;H+=k *(src0[k]-src0[-k]);V+=k *(src1[0]-src2[0]);}if(svq3){H=(5 *(H/4))/16;V=(5 *(V/4))/16;i=H;H=V;V=i;}elseif(rv40){H=(H+(H >> V
#define PREDICT_16x16_DC(v)
static void FUNCC() pred8x8_horizontal_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)
#define PREDICT_8x8_LOAD_TOPRIGHT
static void FUNCC() pred4x4_left_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred8x8l_vertical_filter_add(uint8_t *_src, int16_t *_block, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_top_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred4x4_horizontal(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred8x16_horizontal_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)
static void FUNCC() pred8x16_vertical_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)
static void FUNC() pred8x16_mad_cow_dc_l00(uint8_t *src, ptrdiff_t stride)
GLint GLenum GLboolean GLsizei stride
static void FUNCC() pred16x16_left_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred4x4_horizontal_up(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_dc(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred8x8l_horizontal_up(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8_vertical(uint8_t *_src, ptrdiff_t _stride)
static void FUNCC() pred16x16_top_dc(uint8_t *_src, ptrdiff_t stride)
#define LOAD_TOP_RIGHT_EDGE
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(constuint8_t *) pi-0x80)*(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(constint16_t *) pi >>8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t,*(constint16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(constint32_t *) pi >>24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t,*(constint32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(constfloat *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(constfloat *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(constfloat *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(constdouble *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(constdouble *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(constdouble *) pi *(1U<< 31))))#defineSET_CONV_FUNC_GROUP(ofmt, ifmt) staticvoidset_generic_function(AudioConvert *ac){}voidff_audio_convert_free(AudioConvert **ac){if(!*ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);}AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enumAVSampleFormatout_fmt, enumAVSampleFormatin_fmt, intchannels, intsample_rate, intapply_map){AudioConvert *ac;intin_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) returnNULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method!=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt)>2){ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc){av_free(ac);returnNULL;}returnac;}in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar){ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar?ac->channels:1;}elseif(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;elseac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);returnac;}intff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in){intuse_generic=1;intlen=in->nb_samples;intp;if(ac->dc){av_log(ac->avr, AV_LOG_TRACE,"%dsamples-audio_convert:%sto%s(dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));returnff_convert_dither(ac-> dc
#define PREDICT_8x8_LOAD_TOP
static void FUNCC() pred16x16_horizontal(uint8_t *_src, ptrdiff_t stride)
static void FUNCC() pred4x4_top_dc(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred4x4_down_right(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNC() pred8x16_mad_cow_dc_0lt(uint8_t *src, ptrdiff_t stride)
static void FUNCC() pred8x8l_left_dc(uint8_t *_src, int has_topleft, int has_topright, ptrdiff_t _stride)
static void FUNCC() pred8x8l_horizontal_add(uint8_t *_pix, int16_t *_block, ptrdiff_t stride)
#define PIXEL_SPLAT_X4(x)
static void FUNCC() pred4x4_horizontal_down(uint8_t *_src, const uint8_t *topright, ptrdiff_t _stride)
static void FUNCC() pred16x16_vertical_add(uint8_t *pix, const int *block_offset, int16_t *block, ptrdiff_t stride)