39   {   0,  1,  0,  1,  0,  1,  0,  1,},
 
   40   {   1,  0,  1,  0,  1,  0,  1,  0,},
 
   41   {   0,  1,  0,  1,  0,  1,  0,  1,},
 
   42   {   1,  0,  1,  0,  1,  0,  1,  0,},
 
   43   {   0,  1,  0,  1,  0,  1,  0,  1,},
 
   44   {   1,  0,  1,  0,  1,  0,  1,  0,},
 
   45   {   0,  1,  0,  1,  0,  1,  0,  1,},
 
   46   {   1,  0,  1,  0,  1,  0,  1,  0,},
 
   48   {   1,  2,  1,  2,  1,  2,  1,  2,},
 
   49   {   3,  0,  3,  0,  3,  0,  3,  0,},
 
   50   {   1,  2,  1,  2,  1,  2,  1,  2,},
 
   51   {   3,  0,  3,  0,  3,  0,  3,  0,},
 
   52   {   1,  2,  1,  2,  1,  2,  1,  2,},
 
   53   {   3,  0,  3,  0,  3,  0,  3,  0,},
 
   54   {   1,  2,  1,  2,  1,  2,  1,  2,},
 
   55   {   3,  0,  3,  0,  3,  0,  3,  0,},
 
   57   {   2,  4,  3,  5,  2,  4,  3,  5,},
 
   58   {   6,  0,  7,  1,  6,  0,  7,  1,},
 
   59   {   3,  5,  2,  4,  3,  5,  2,  4,},
 
   60   {   7,  1,  6,  0,  7,  1,  6,  0,},
 
   61   {   2,  4,  3,  5,  2,  4,  3,  5,},
 
   62   {   6,  0,  7,  1,  6,  0,  7,  1,},
 
   63   {   3,  5,  2,  4,  3,  5,  2,  4,},
 
   64   {   7,  1,  6,  0,  7,  1,  6,  0,},
 
   66   {   4,  8,  7, 11,  4,  8,  7, 11,},
 
   67   {  12,  0, 15,  3, 12,  0, 15,  3,},
 
   68   {   6, 10,  5,  9,  6, 10,  5,  9,},
 
   69   {  14,  2, 13,  1, 14,  2, 13,  1,},
 
   70   {   4,  8,  7, 11,  4,  8,  7, 11,},
 
   71   {  12,  0, 15,  3, 12,  0, 15,  3,},
 
   72   {   6, 10,  5,  9,  6, 10,  5,  9,},
 
   73   {  14,  2, 13,  1, 14,  2, 13,  1,},
 
   75   {   9, 17, 15, 23,  8, 16, 14, 22,},
 
   76   {  25,  1, 31,  7, 24,  0, 30,  6,},
 
   77   {  13, 21, 11, 19, 12, 20, 10, 18,},
 
   78   {  29,  5, 27,  3, 28,  4, 26,  2,},
 
   79   {   8, 16, 14, 22,  9, 17, 15, 23,},
 
   80   {  24,  0, 30,  6, 25,  1, 31,  7,},
 
   81   {  12, 20, 10, 18, 13, 21, 11, 19,},
 
   82   {  28,  4, 26,  2, 29,  5, 27,  3,},
 
   84   {  18, 34, 30, 46, 17, 33, 29, 45,},
 
   85   {  50,  2, 62, 14, 49,  1, 61, 13,},
 
   86   {  26, 42, 22, 38, 25, 41, 21, 37,},
 
   87   {  58, 10, 54,  6, 57,  9, 53,  5,},
 
   88   {  16, 32, 28, 44, 19, 35, 31, 47,},
 
   89   {  48,  0, 60, 12, 51,  3, 63, 15,},
 
   90   {  24, 40, 20, 36, 27, 43, 23, 39,},
 
   91   {  56,  8, 52,  4, 59, 11, 55,  7,},
 
   93   {  18, 34, 30, 46, 17, 33, 29, 45,},
 
   94   {  50,  2, 62, 14, 49,  1, 61, 13,},
 
   95   {  26, 42, 22, 38, 25, 41, 21, 37,},
 
   96   {  58, 10, 54,  6, 57,  9, 53,  5,},
 
   97   {  16, 32, 28, 44, 19, 35, 31, 47,},
 
   98   {  48,  0, 60, 12, 51,  3, 63, 15,},
 
   99   {  24, 40, 20, 36, 27, 43, 23, 39,},
 
  100   {  56,  8, 52,  4, 59, 11, 55,  7,},
 
  102   {  36, 68, 60, 92, 34, 66, 58, 90,},
 
  103   { 100,  4,124, 28, 98,  2,122, 26,},
 
  104   {  52, 84, 44, 76, 50, 82, 42, 74,},
 
  105   { 116, 20,108, 12,114, 18,106, 10,},
 
  106   {  32, 64, 56, 88, 38, 70, 62, 94,},
 
  107   {  96,  0,120, 24,102,  6,126, 30,},
 
  108   {  48, 80, 40, 72, 54, 86, 46, 78,},
 
  109   { 112, 16,104,  8,118, 22,110, 14,},
 
  113 {    2,    3,    3,    5,    5,    5,    5,    5,    5,    5,    5,    5,    5,    5,    5,    5,},
 
  114 {    2,    3,    7,    7,   13,   13,   25,   25,   25,   25,   25,   25,   25,   25,   25,   25,},
 
  115 {    3,    3,    4,   15,   15,   29,   57,   57,   57,  113,  113,  113,  113,  113,  113,  113,},
 
  116 {    3,    4,    4,    5,   31,   31,   61,  121,  241,  241,  241,  241,  481,  481,  481,  481,},
 
  117 {    3,    4,    5,    5,    6,   63,   63,  125,  249,  497,  993,  993,  993,  993,  993, 1985,},
 
  118 {    3,    5,    6,    6,    6,    7,  127,  127,  253,  505, 1009, 2017, 4033, 4033, 4033, 4033,},
 
  119 {    3,    5,    6,    7,    7,    7,    8,  255,  255,  509, 1017, 2033, 4065, 8129,16257,16257,},
 
  120 {    3,    5,    6,    8,    8,    8,    8,    9,  511,  511, 1021, 2041, 4081, 8161,16321,32641,},
 
  121 {    3,    5,    7,    8,    9,    9,    9,    9,   10, 1023, 1023, 2045, 4089, 8177,16353,32705,},
 
  122 {    3,    5,    7,    8,   10,   10,   10,   10,   10,   11, 2047, 2047, 4093, 8185,16369,32737,},
 
  123 {    3,    5,    7,    8,   10,   11,   11,   11,   11,   11,   12, 4095, 4095, 8189,16377,32753,},
 
  124 {    3,    5,    7,    9,   10,   12,   12,   12,   12,   12,   12,   13, 8191, 8191,16381,32761,},
 
  125 {    3,    5,    7,    9,   10,   12,   13,   13,   13,   13,   13,   13,   14,16383,16383,32765,},
 
  126 {    3,    5,    7,    9,   10,   12,   14,   14,   14,   14,   14,   14,   14,   15,32767,32767,},
 
  127 {    3,    5,    7,    9,   11,   12,   14,   15,   15,   15,   15,   15,   15,   15,   16,65535,},
 
  135     uint8_t *ptr = plane + stride * y;
 
  136     for (i = 0; i < 
height; i++) {
 
  137         memset(ptr, val, width);
 
  143                       int srcSliceY, 
int srcSliceH, 
int width,
 
  146     dst += dstStride * srcSliceY;
 
  147     if (dstStride == srcStride && srcStride > 0) {
 
  148         memcpy(dst, src, srcSliceH * dstStride);
 
  151         for (i = 0; i < srcSliceH; i++) {
 
  152             memcpy(dst, src, width);
 
  160                                int srcStride[], 
int srcSliceY,
 
  161                                int srcSliceH, 
uint8_t *dstParam[],
 
  164     uint8_t *
dst = dstParam[1] + dstStride[1] * srcSliceY / 2;
 
  166     copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->
srcW,
 
  167               dstParam[0], dstStride[0]);
 
  171                         srcStride[1], srcStride[2], dstStride[0]);
 
  174                         srcStride[2], srcStride[1], dstStride[0]);
 
  180                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  181                                uint8_t *dstParam[], 
int dstStride[])
 
  183     uint8_t *
dst = dstParam[0] + dstStride[0] * srcSliceY;
 
  185     yv12toyuy2(src[0], src[1], src[2], dst, c->
srcW, srcSliceH, srcStride[0],
 
  186                srcStride[1], dstStride[0]);
 
  192                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  193                                uint8_t *dstParam[], 
int dstStride[])
 
  195     uint8_t *
dst = dstParam[0] + dstStride[0] * srcSliceY;
 
  197     yv12touyvy(src[0], src[1], src[2], dst, c->
srcW, srcSliceH, srcStride[0],
 
  198                srcStride[1], dstStride[0]);
 
  204                                 int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  205                                 uint8_t *dstParam[], 
int dstStride[])
 
  207     uint8_t *
dst = dstParam[0] + dstStride[0] * srcSliceY;
 
  210                   srcStride[1], dstStride[0]);
 
  216                                 int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  217                                 uint8_t *dstParam[], 
int dstStride[])
 
  219     uint8_t *
dst = dstParam[0] + dstStride[0] * srcSliceY;
 
  222                   srcStride[1], dstStride[0]);
 
  228                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  229                                uint8_t *dstParam[], 
int dstStride[])
 
  231     uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
 
  232     uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
 
  233     uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY / 2;
 
  236                  dstStride[1], srcStride[0]);
 
  239         fillPlane(dstParam[3], dstStride[3], c->
srcW, srcSliceH, srcSliceY, 255);
 
  245                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  246                                uint8_t *dstParam[], 
int dstStride[])
 
  248     uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
 
  249     uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
 
  250     uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY;
 
  253                  dstStride[1], srcStride[0]);
 
  259                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  260                                uint8_t *dstParam[], 
int dstStride[])
 
  262     uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
 
  263     uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY / 2;
 
  264     uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY / 2;
 
  267                  dstStride[1], srcStride[0]);
 
  270         fillPlane(dstParam[3], dstStride[3], c->
srcW, srcSliceH, srcSliceY, 255);
 
  276                                int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  277                                uint8_t *dstParam[], 
int dstStride[])
 
  279     uint8_t *ydst = dstParam[0] + dstStride[0] * srcSliceY;
 
  280     uint8_t *udst = dstParam[1] + dstStride[1] * srcSliceY;
 
  281     uint8_t *vdst = dstParam[2] + dstStride[2] * srcSliceY;
 
  284                  dstStride[1], srcStride[0]);
 
  293     for (i = 0; i < num_pixels; i++)
 
  294         ((uint32_t *) dst)[i] = ((
const uint32_t *) palette)[src[i << 1]] | (src[(i << 1) + 1] << 24);
 
  302     for (i = 0; i < num_pixels; i++)
 
  303         ((uint32_t *) dst)[i] = ((
const uint32_t *) palette)[src[i << 1]] | src[(i << 1) + 1];
 
  311     for (i = 0; i < num_pixels; i++) {
 
  313         dst[0] = palette[src[i << 1] * 4 + 0];
 
  314         dst[1] = palette[src[i << 1] * 4 + 1];
 
  315         dst[2] = palette[src[i << 1] * 4 + 2];
 
  321                               int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  325     int srcstr = srcStride[0] >> 1;
 
  326     int dststr = dstStride[0] >> 1;
 
  327     uint16_t       *dstPtr =       (uint16_t *) dst[0];
 
  328     const uint16_t *srcPtr = (
const uint16_t *) src[0];
 
  329     int min_stride         = 
FFMIN(srcstr, dststr);
 
  331     for (i = 0; i < srcSliceH; i++) {
 
  332         for (j = 0; j < min_stride; j++) {
 
  351     uint8_t *dstPtr = dst[0] + dstStride[0] * srcSliceY;
 
  352     const uint8_t *srcPtr = src[0];
 
  363     } 
else if (
usePal(srcFormat)) {
 
  378         for (i = 0; i < srcSliceH; i++) {
 
  380             srcPtr += srcStride[0];
 
  381             dstPtr += dstStride[0];
 
  393     for (h = 0; h < srcSliceH; h++) {
 
  394         uint8_t *dest = dst + dstStride * h;
 
  395         for (x = 0; x < 
width; x++) {
 
  401         for (i = 0; i < 3; i++)
 
  402             src[i] += srcStride[i];
 
  408                              int alpha_first, 
int width)
 
  411     for (h = 0; h < srcSliceH; h++) {
 
  412         uint8_t *dest = dst + dstStride * h;
 
  415             for (x = 0; x < 
width; x++) {
 
  422             for (x = 0; x < 
width; x++) {
 
  430         for (i = 0; i < 3; i++)
 
  431             src[i] += srcStride[i];
 
  436                                  int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  440     const uint8_t *src102[] = { src[1], src[0], src[2] };
 
  441     const uint8_t *src201[] = { src[2], src[0], src[1] };
 
  442     int stride102[] = { srcStride[1], srcStride[0], srcStride[2] };
 
  443     int stride201[] = { srcStride[2], srcStride[0], srcStride[1] };
 
  455                          dst[0] + srcSliceY * dstStride[0], dstStride[0],
 
  461                          dst[0] + srcSliceY * dstStride[0], dstStride[0],
 
  469                          dst[0] + srcSliceY * dstStride[0], dstStride[0],
 
  470                          srcSliceH, alpha_first, c->
srcW);
 
  477                          dst[0] + srcSliceY * dstStride[0], dstStride[0],
 
  478                          srcSliceH, alpha_first, c->
srcW);
 
  483                "unsupported planar RGB conversion %s -> %s\n",
 
  491 #define isRGBA32(x) (            \ 
  492            (x) == AV_PIX_FMT_ARGB   \ 
  493         || (x) == AV_PIX_FMT_RGBA   \ 
  494         || (x) == AV_PIX_FMT_BGRA   \ 
  495         || (x) == AV_PIX_FMT_ABGR   \ 
  498 #define isRGBA64(x) (                \ 
  499            (x) == AV_PIX_FMT_RGBA64LE   \ 
  500         || (x) == AV_PIX_FMT_RGBA64BE   \ 
  501         || (x) == AV_PIX_FMT_BGRA64LE   \ 
  502         || (x) == AV_PIX_FMT_BGRA64BE   \ 
  505 #define isRGB48(x) (                \ 
  506            (x) == AV_PIX_FMT_RGB48LE   \ 
  507         || (x) == AV_PIX_FMT_RGB48BE   \ 
  508         || (x) == AV_PIX_FMT_BGR48LE   \ 
  509         || (x) == AV_PIX_FMT_BGR48BE   \ 
  522 #define IS_NOT_NE(bpp, desc) \ 
  523     (((bpp + 7) >> 3) == 2 && \ 
  524      (!(desc->flags & PIX_FMT_BE) != !HAVE_BIGENDIAN)) 
  526 #define CONV_IS(src, dst) (srcFormat == AV_PIX_FMT_##src && dstFormat == AV_PIX_FMT_##dst) 
  546         else if (
CONV_IS(RGB48LE, BGR48BE)
 
  555         else if (
CONV_IS(RGBA64LE, BGR48BE)
 
  559         else if (
CONV_IS(RGBA64LE, RGB48LE)
 
  563         else if (
CONV_IS(RGBA64LE, RGB48BE)
 
  571         switch (srcId | (dstId << 16)) {
 
  572         case 0x000F000C: conv = 
rgb12to15; 
break;
 
  573         case 0x000F0010: conv = 
rgb16to15; 
break;
 
  574         case 0x000F0018: conv = 
rgb24to15; 
break;
 
  575         case 0x000F0020: conv = 
rgb32to15; 
break;
 
  576         case 0x0010000F: conv = 
rgb15to16; 
break;
 
  577         case 0x00100018: conv = 
rgb24to16; 
break;
 
  578         case 0x00100020: conv = 
rgb32to16; 
break;
 
  579         case 0x0018000F: conv = 
rgb15to24; 
break;
 
  580         case 0x00180010: conv = 
rgb16to24; 
break;
 
  581         case 0x00180020: conv = 
rgb32to24; 
break;
 
  582         case 0x0020000F: conv = 
rgb15to32; 
break;
 
  583         case 0x00200010: conv = 
rgb16to32; 
break;
 
  584         case 0x00200018: conv = 
rgb24to32; 
break;
 
  588         switch (srcId | (dstId << 16)) {
 
  632         const uint8_t *srcPtr = src[0];
 
  645         if (dstStride[0] * srcBpp == srcStride[0] * dstBpp && srcStride[0] > 0 &&
 
  646             !(srcStride[0] % srcBpp) && !dst_bswap && !src_bswap)
 
  647             conv(srcPtr, dstPtr + dstStride[0] * srcSliceY,
 
  648                  srcSliceH * srcStride[0]);
 
  651             dstPtr += dstStride[0] * srcSliceY;
 
  653             for (i = 0; i < srcSliceH; i++) {
 
  655                     for(j=0; j<c->
srcW; j++)
 
  659                     conv(srcPtr, dstPtr, c->
srcW * srcBpp);
 
  661                     for(j=0; j<c->
srcW; j++)
 
  662                         ((uint16_t*)dstPtr)[j] = 
av_bswap16(((uint16_t*)dstPtr)[j]);
 
  663                 srcPtr += srcStride[0];
 
  664                 dstPtr += dstStride[0];
 
  672                               int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  677         dst[0] +  srcSliceY       * dstStride[0],
 
  678         dst[1] + (srcSliceY >> 1) * dstStride[1],
 
  679         dst[2] + (srcSliceY >> 1) * dstStride[2],
 
  681         dstStride[0], dstStride[1], srcStride[0]);
 
  683         fillPlane(dst[3], dstStride[3], c->
srcW, srcSliceH, srcSliceY, 255);
 
  688                              int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  691     copyPlane(src[0], srcStride[0], srcSliceY, srcSliceH, c->
srcW,
 
  692               dst[0], dstStride[0]);
 
  695              srcSliceH >> 2, srcStride[1], dstStride[1]);
 
  697              srcSliceH >> 2, srcStride[2], dstStride[2]);
 
  699         fillPlane(dst[3], dstStride[3], c->
srcW, srcSliceH, srcSliceY, 255);
 
  705                              int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  708     if (dstStride[0] == srcStride[0] && srcStride[0] > 0)
 
  709         memcpy(dst[0] + dstStride[0] * srcSliceY, src[0], srcSliceH * dstStride[0]);
 
  712         const uint8_t *srcPtr = src[0];
 
  713         uint8_t *dstPtr = dst[0] + dstStride[0] * srcSliceY;
 
  717         while (length + c->
srcW <= 
FFABS(dstStride[0]) &&
 
  722         for (i = 0; i < srcSliceH; i++) {
 
  723             memcpy(dstPtr, srcPtr, length);
 
  724             srcPtr += srcStride[0];
 
  725             dstPtr += dstStride[0];
 
  731 #define DITHER_COPY(dst, dstStride, src, srcStride, bswap, dbswap)\ 
  732     uint16_t scale= dither_scale[dst_depth-1][src_depth-1];\ 
  733     int shift= src_depth-dst_depth + dither_scale[src_depth-2][dst_depth-1];\ 
  734     for (i = 0; i < height; i++) {\ 
  735         const uint8_t *dither= dithers[src_depth-9][i&7];\ 
  736         for (j = 0; j < length-7; j+=8){\ 
  737             dst[j+0] = dbswap((bswap(src[j+0]) + dither[0])*scale>>shift);\ 
  738             dst[j+1] = dbswap((bswap(src[j+1]) + dither[1])*scale>>shift);\ 
  739             dst[j+2] = dbswap((bswap(src[j+2]) + dither[2])*scale>>shift);\ 
  740             dst[j+3] = dbswap((bswap(src[j+3]) + dither[3])*scale>>shift);\ 
  741             dst[j+4] = dbswap((bswap(src[j+4]) + dither[4])*scale>>shift);\ 
  742             dst[j+5] = dbswap((bswap(src[j+5]) + dither[5])*scale>>shift);\ 
  743             dst[j+6] = dbswap((bswap(src[j+6]) + dither[6])*scale>>shift);\ 
  744             dst[j+7] = dbswap((bswap(src[j+7]) + dither[7])*scale>>shift);\ 
  746         for (; j < length; j++)\ 
  747             dst[j] = dbswap((bswap(src[j]) + dither[j&7])*scale>>shift);\ 
  753                              int srcStride[], 
int srcSliceY, 
int srcSliceH,
 
  759     for (plane = 0; plane < 4; plane++) {
 
  761         int y =      (plane == 0 || plane == 3) ? srcSliceY: -((-srcSliceY) >> c->
chrDstVSubSample);
 
  763         const uint8_t *srcPtr = src[plane];
 
  764         uint8_t *dstPtr = dst[plane] + dstStride[plane] * y;
 
  765         int shiftonly= plane==1 || plane==2 || (!c->
srcRange && plane==0);
 
  770         if (plane == 1 && !dst[2]) 
continue;
 
  771         if (!src[plane] || (plane == 1 && !src[2])) {
 
  773                 fillPlane16(dst[plane], dstStride[plane], length, height, y,
 
  777                 fillPlane(dst[plane], dstStride[plane], length, height, y,
 
  778                         (plane == 3) ? 255 : 128);
 
  786                 const uint16_t *srcPtr2 = (
const uint16_t *) srcPtr;
 
  787                 uint16_t *dstPtr2 = (uint16_t*)dstPtr;
 
  789                 if (dst_depth == 8) {
 
  791                         DITHER_COPY(dstPtr, dstStride[plane], srcPtr2, srcStride[plane]/2, , )
 
  795                 } 
else if (src_depth == 8) {
 
  796                     for (i = 0; i < 
height; i++) {
 
  799                             for (j = 0; j < length; j++)\ 
  800                                 w(&dstPtr2[j], srcPtr[j]<<(dst_depth-8));\ 
  802                             for (j = 0; j < length; j++)\ 
  803                                 w(&dstPtr2[j], (srcPtr[j]<<(dst_depth-8)) |\ 
  804                                                (srcPtr[j]>>(2*8-dst_depth)));\ 
  811                         dstPtr2 += dstStride[plane]/2;
 
  812                         srcPtr  += srcStride[plane];
 
  814                 } 
else if (src_depth <= dst_depth) {
 
  815                     int orig_length = length;
 
  816                     for (i = 0; i < 
height; i++) {
 
  820                              unsigned shift = dst_depth - src_depth;
 
  821                              length = orig_length;
 
  823 #define FAST_COPY_UP(shift) \ 
  824     for (j = 0; j < length - 3; j += 4) { \ 
  825         uint64_t v = AV_RN64A(srcPtr2 + j); \ 
  826         AV_WN64A(dstPtr2 + j, v << shift); \ 
  830 #define FAST_COPY_UP(shift) \ 
  831     for (j = 0; j < length - 1; j += 2) { \ 
  832         uint32_t v = AV_RN32A(srcPtr2 + j); \ 
  833         AV_WN32A(dstPtr2 + j, v << shift); \ 
  843 #define COPY_UP(r,w) \ 
  845         for (j = 0; j < length; j++){ \ 
  846             unsigned int v= r(&srcPtr2[j]);\ 
  847             w(&dstPtr2[j], v<<(dst_depth-src_depth));\ 
  850         for (j = 0; j < length; j++){ \ 
  851             unsigned int v= r(&srcPtr2[j]);\ 
  852             w(&dstPtr2[j], (v<<(dst_depth-src_depth)) | \ 
  853                         (v>>(2*src_depth-dst_depth)));\ 
  869                         dstPtr2 += dstStride[plane]/2;
 
  870                         srcPtr2 += srcStride[plane]/2;
 
  875                             DITHER_COPY(dstPtr2, dstStride[plane]/2, srcPtr2, srcStride[plane]/2, , )
 
  890                 for (i = 0; i < 
height; i++) {
 
  891                     for (j = 0; j < length; j++)
 
  892                         ((uint16_t *) dstPtr)[j] = 
av_bswap16(((
const uint16_t *) srcPtr)[j]);
 
  893                     srcPtr += srcStride[plane];
 
  894                     dstPtr += dstStride[plane];
 
  896             } 
else if (dstStride[plane] == srcStride[plane] &&
 
  897                        srcStride[plane] > 0 && srcStride[plane] == length) {
 
  898                 memcpy(dst[plane] + dstStride[plane] * y, src[plane],
 
  899                        height * dstStride[plane]);
 
  905                 for (i = 0; i < 
height; i++) {
 
  906                     memcpy(dstPtr, srcPtr, length);
 
  907                     srcPtr += srcStride[plane];
 
  908                     dstPtr += dstStride[plane];
 
  917 #define IS_DIFFERENT_ENDIANESS(src_fmt, dst_fmt, pix_fmt)          \ 
  918     ((src_fmt == pix_fmt ## BE && dst_fmt == pix_fmt ## LE) ||     \ 
  919      (src_fmt == pix_fmt ## LE && dst_fmt == pix_fmt ## BE)) 
  930     needsDither = 
isAnyRGB(dstFormat) &&
 
  963 #define isByteRGB(f) (\ 
  964         f == AV_PIX_FMT_RGB32   ||\ 
  965         f == AV_PIX_FMT_RGB32_1 ||\ 
  966         f == AV_PIX_FMT_RGB24   ||\ 
  967         f == AV_PIX_FMT_BGR32   ||\ 
  968         f == AV_PIX_FMT_BGR32_1 ||\ 
  969         f == AV_PIX_FMT_BGR24) 
 1019 #define isPlanarGray(x) (isGray(x) && (x) != AV_PIX_FMT_GRAY8A) 
 1021     if ( srcFormat == dstFormat ||
 
 1051     for (i = 0; i < num_pixels; i++)
 
 1052         ((uint32_t *) dst)[i] = ((
const uint32_t *) palette)[src[i]];
 
 1061     for (i = 0; i < num_pixels; i++) {
 
 1063         dst[0] = palette[src[i] * 4 + 0];
 
 1064         dst[1] = palette[src[i] * 4 + 1];
 
 1065         dst[2] = palette[src[i] * 4 + 2];