Go to the documentation of this file.
   93         register unsigned x = *((
const uint32_t *)
s);
 
   94         *((uint32_t *)d)    = (x & 0x7FFF7FFF) + (x & 0x7FE07FE0);
 
   99         register unsigned short x = *((
const uint16_t *)
s);
 
  100         *((uint16_t *)d)          = (x & 0x7FFF) + (x & 0x7FE0);
 
  112         register uint32_t x  = *((
const uint32_t *)
s);
 
  113         *((uint32_t *)d)     = ((x >> 1) & 0x7FE07FE0) | (x & 0x001F001F);
 
  118         register uint16_t x = *((
const uint16_t *)
s);
 
  119         *((uint16_t *)d)    = ((x >> 1) & 0x7FE0) | (x & 0x001F);
 
  125     uint16_t *d        = (uint16_t *)dst;
 
  130         register int rgb  = *(
const uint32_t *)
s;
 
  132         *d++              = ((rgb & 0xFF)     >> 3) +
 
  133                             ((rgb & 0xFC00)   >> 5) +
 
  134                             ((rgb & 0xF80000) >> 8);
 
  141     uint16_t *d        = (uint16_t *)dst;
 
  146         register int rgb  = *(
const uint32_t *)
s;
 
  148         *d++              = ((rgb & 0xF8)     << 8) +
 
  149                             ((rgb & 0xFC00)   >> 5) +
 
  150                             ((rgb & 0xF80000) >> 19);
 
  156     uint16_t *d        = (uint16_t *)dst;
 
  161         register int rgb  = *(
const uint32_t *)
s;
 
  163         *d++              = ((rgb & 0xFF)     >> 3) +
 
  164                             ((rgb & 0xF800)   >> 6) +
 
  165                             ((rgb & 0xF80000) >> 9);
 
  172     uint16_t *d        = (uint16_t *)dst;
 
  177         register int rgb  = *(
const uint32_t *)
s;
 
  179         *d++              = ((rgb & 0xF8)     <<  7) +
 
  180                             ((rgb & 0xF800)   >>  6) +
 
  181                             ((rgb & 0xF80000) >> 19);
 
  188     uint16_t *d        = (uint16_t *)dst;
 
  196         *d++        = (
b >> 3) | ((
g & 0xFC) << 3) | ((
r & 0xF8) << 8);
 
  202     uint16_t *d        = (uint16_t *)dst;
 
  210         *d++        = (
b >> 3) | ((
g & 0xFC) << 3) | ((
r & 0xF8) << 8);
 
  217     uint16_t *d        = (uint16_t *)dst;
 
  225         *d++        = (
b >> 3) | ((
g & 0xF8) << 2) | ((
r & 0xF8) << 7);
 
  231     uint16_t *d        = (uint16_t *)dst;
 
  239         *d++        = (
b >> 3) | ((
g & 0xF8) << 2) | ((
r & 0xF8) << 7);
 
  247     const uint16_t *
s   = (
const uint16_t *)
src;
 
  248     const uint16_t *
end = 
s + src_size / 2;
 
  251         register uint16_t bgr = *
s++;
 
  252         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  253         *d++ = ((bgr&0x03E0)>>2) | ((bgr&0x03E0)>> 7);
 
  254         *d++ = ((bgr&0x7C00)>>7) | ((bgr&0x7C00)>>12);
 
  262     const uint16_t *
s   = (
const uint16_t *)
src;
 
  263     const uint16_t *
end = 
s + src_size / 2;
 
  266         register uint16_t bgr = *
s++;
 
  267         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  268         *d++ = ((bgr&0x07E0)>>3) | ((bgr&0x07E0)>> 9);
 
  269         *d++ = ((bgr&0xF800)>>8) | ((bgr&0xF800)>>13);
 
  276     const uint16_t *
s   = (
const uint16_t *)
src;
 
  277     const uint16_t *
end = 
s + src_size / 2;
 
  280         register uint16_t bgr = *
s++;
 
  283         *d++ = ((bgr&0x7C00)>>7) | ((bgr&0x7C00)>>12);
 
  284         *d++ = ((bgr&0x03E0)>>2) | ((bgr&0x03E0)>> 7);
 
  285         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  287         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  288         *d++ = ((bgr&0x03E0)>>2) | ((bgr&0x03E0)>> 7);
 
  289         *d++ = ((bgr&0x7C00)>>7) | ((bgr&0x7C00)>>12);
 
  298     const uint16_t *
s   = (
const uint16_t *)
src;
 
  299     const uint16_t *
end = 
s + src_size / 2;
 
  302         register uint16_t bgr = *
s++;
 
  305         *d++ = ((bgr&0xF800)>>8) | ((bgr&0xF800)>>13);
 
  306         *d++ = ((bgr&0x07E0)>>3) | ((bgr&0x07E0)>> 9);
 
  307         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  309         *d++ = ((bgr&0x001F)<<3) | ((bgr&0x001F)>> 2);
 
  310         *d++ = ((bgr&0x07E0)>>3) | ((bgr&0x07E0)>> 9);
 
  311         *d++ = ((bgr&0xF800)>>8) | ((bgr&0xF800)>>13);
 
  320     int idx          = 15  - src_size;
 
  324     for (; idx < 15; idx += 4) {
 
  325         register unsigned v   = *(
const uint32_t *)&
s[idx], 
g = v & 0xff00ff00;
 
  327         *(uint32_t *)&d[idx]  = (v >> 16) + 
g + (v << 16);
 
  334     int idx          = 15  - src_size;
 
  338     for (; idx < 15; idx += 4) {
 
  339         register unsigned v   = *(
const uint32_t *)&
s[idx], 
g = v & 0x00ff00ff;
 
  341         *(uint32_t *)&d[idx]  = (v >> 16) + 
g + (v << 16);
 
  346 #define DEFINE_SHUFFLE_BYTES(name, a, b, c, d)                          \ 
  347 static void shuffle_bytes_##name (const uint8_t *src,                   \ 
  348                                         uint8_t *dst, int src_size)     \ 
  352     for (i = 0; i < src_size; i += 4) {                                 \ 
  353         dst[i + 0] = src[i + a];                                        \ 
  354         dst[i + 1] = src[i + b];                                        \ 
  355         dst[i + 2] = src[i + c];                                        \ 
  356         dst[i + 3] = src[i + d];                                        \ 
  369     for (
i = 0; 
i < src_size; 
i += 3) {
 
  371         dst[
i + 1]         = 
src[
i + 1];
 
  372         dst[
i + 2]         = 
src[
i + 0];
 
  380                                      int lumStride, 
int chromStride,
 
  381                                      int dstStride, 
int vertLumPerChroma)
 
  384     const int chromWidth = 
width >> 1;
 
  386     for (y = 0; y < 
height; y++) {
 
  388         uint64_t *ldst = (uint64_t *)dst;
 
  389         const uint8_t *yc = ysrc, *uc = usrc, *vc = vsrc;
 
  390         for (
i = 0; 
i < chromWidth; 
i += 2) {
 
  391             uint64_t k = yc[0] + (uc[0] << 8) +
 
  392                          (yc[1] << 16) + ((unsigned) vc[0] << 24);
 
  393             uint64_t l = yc[2] + (uc[1] << 8) +
 
  394                          (yc[3] << 16) + ((unsigned) vc[1] << 24);
 
  395             *ldst++ = k + (l << 32);
 
  403         const uint8_t *yc = ysrc, *uc = usrc, *vc = vsrc;
 
  405         for (
i = 0; 
i < chromWidth; 
i++) {
 
  407             *idst++ = (yc[0] << 24) + (uc[0] << 16) +
 
  408                       (yc[1] <<  8) + (vc[0] <<  0);
 
  410             *idst++ = yc[0] + (uc[0] << 8) +
 
  411                       (yc[1] << 16) + (vc[0] << 24);
 
  418         if ((y & (vertLumPerChroma - 1)) == vertLumPerChroma - 1) {
 
  434                                 int chromStride, 
int dstStride)
 
  438                       chromStride, dstStride, 2);
 
  444                                      int lumStride, 
int chromStride,
 
  445                                      int dstStride, 
int vertLumPerChroma)
 
  448     const int chromWidth = 
width >> 1;
 
  450     for (y = 0; y < 
height; y++) {
 
  452         uint64_t *ldst = (uint64_t *)dst;
 
  453         const uint8_t *yc = ysrc, *uc = usrc, *vc = vsrc;
 
  454         for (
i = 0; 
i < chromWidth; 
i += 2) {
 
  455             uint64_t k = uc[0] + (yc[0] << 8) +
 
  456                          (vc[0] << 16) + ((unsigned) yc[1] << 24);
 
  457             uint64_t l = uc[1] + (yc[2] << 8) +
 
  458                          (vc[1] << 16) + ((unsigned) yc[3] << 24);
 
  459             *ldst++ = k + (l << 32);
 
  467         const uint8_t *yc = ysrc, *uc = usrc, *vc = vsrc;
 
  469         for (
i = 0; 
i < chromWidth; 
i++) {
 
  471             *idst++ = (uc[0] << 24) + (yc[0] << 16) +
 
  472                       (vc[0] <<  8) + (yc[1] <<  0);
 
  474             *idst++ = uc[0] + (yc[0] << 8) +
 
  475                       (vc[0] << 16) + (yc[1] << 24);
 
  482         if ((y & (vertLumPerChroma - 1)) == vertLumPerChroma - 1) {
 
  498                                 int chromStride, 
int dstStride)
 
  502                       chromStride, dstStride, 2);
 
  511                                    int chromStride, 
int dstStride)
 
  514                       chromStride, dstStride, 1);
 
  523                                    int chromStride, 
int dstStride)
 
  526                       chromStride, dstStride, 1);
 
  536                                 int chromStride, 
int srcStride)
 
  539     const int chromWidth = 
width >> 1;
 
  541     for (y = 0; y < 
height; y += 2) {
 
  543         for (
i = 0; 
i < chromWidth; 
i++) {
 
  544             ydst[2 * 
i + 0] = 
src[4 * 
i + 0];
 
  545             udst[
i]         = 
src[4 * 
i + 1];
 
  546             ydst[2 * 
i + 1] = 
src[4 * 
i + 2];
 
  547             vdst[
i]         = 
src[4 * 
i + 3];
 
  552         for (
i = 0; 
i < chromWidth; 
i++) {
 
  553             ydst[2 * 
i + 0] = 
src[4 * 
i + 0];
 
  554             ydst[2 * 
i + 1] = 
src[4 * 
i + 2];
 
  564                               int srcHeight, 
int srcStride, 
int dstStride)
 
  571     for (x = 0; x < srcWidth - 1; x++) {
 
  572         dst[2 * x + 1] = (3 * 
src[x] + 
src[x + 1]) >> 2;
 
  573         dst[2 * x + 2] = (
src[x] + 3 * 
src[x + 1]) >> 2;
 
  575     dst[2 * srcWidth - 1] = 
src[srcWidth - 1];
 
  579     for (y = 1; y < srcHeight; y++) {
 
  580         const int mmxSize = 1;
 
  582         dst[0]         = (
src[0] * 3 + 
src[srcStride]) >> 2;
 
  583         dst[dstStride] = (
src[0] + 3 * 
src[srcStride]) >> 2;
 
  585         for (x = mmxSize - 1; x < srcWidth - 1; x++) {
 
  586             dst[2 * x + 1]             = (
src[x + 0] * 3 + 
src[x + srcStride + 1]) >> 2;
 
  587             dst[2 * x + dstStride + 2] = (
src[x + 0] + 3 * 
src[x + srcStride + 1]) >> 2;
 
  588             dst[2 * x + dstStride + 1] = (
src[x + 1] + 3 * 
src[x + srcStride])     >> 2;
 
  589             dst[2 * x + 2]             = (
src[x + 1] * 3 + 
src[x + srcStride])     >> 2;
 
  591         dst[srcWidth * 2 - 1]             = (
src[srcWidth - 1] * 3 + 
src[srcWidth - 1 + srcStride]) >> 2;
 
  592         dst[srcWidth * 2 - 1 + dstStride] = (
src[srcWidth - 1] + 3 * 
src[srcWidth - 1 + srcStride]) >> 2;
 
  594         dst += dstStride * 2;
 
  601     for (x = 0; x < srcWidth - 1; x++) {
 
  602         dst[2 * x + 1] = (
src[x] * 3 + 
src[x + 1]) >> 2;
 
  603         dst[2 * x + 2] = (
src[x] + 3 * 
src[x + 1]) >> 2;
 
  605     dst[2 * srcWidth - 1] = 
src[srcWidth - 1];
 
  617                                 int chromStride, 
int srcStride)
 
  620     const int chromWidth = 
width >> 1;
 
  622     for (y = 0; y < 
height; y += 2) {
 
  624         for (
i = 0; 
i < chromWidth; 
i++) {
 
  625             udst[
i]         = 
src[4 * 
i + 0];
 
  626             ydst[2 * 
i + 0] = 
src[4 * 
i + 1];
 
  627             vdst[
i]         = 
src[4 * 
i + 2];
 
  628             ydst[2 * 
i + 1] = 
src[4 * 
i + 3];
 
  633         for (
i = 0; 
i < chromWidth; 
i++) {
 
  634             ydst[2 * 
i + 0] = 
src[4 * 
i + 1];
 
  635             ydst[2 * 
i + 1] = 
src[4 * 
i + 3];
 
  659     const int chromWidth = 
width >> 1;
 
  661     for (y = 0; y < 
height; y += 2) {
 
  663         for (
i = 0; 
i < chromWidth; 
i++) {
 
  664             unsigned int b = 
src[6 * 
i + 0];
 
  665             unsigned int g = 
src[6 * 
i + 1];
 
  666             unsigned int r = 
src[6 * 
i + 2];
 
  689         for (
i = 0; 
i < chromWidth; 
i++) {
 
  690             unsigned int b = 
src[6 * 
i + 0];
 
  691             unsigned int g = 
src[6 * 
i + 1];
 
  692             unsigned int r = 
src[6 * 
i + 2];
 
  714                               int src1Stride, 
int src2Stride, 
int dstStride)
 
  721             dest[2 * 
w + 0] = 
src1[
w];
 
  722             dest[2 * 
w + 1] = src2[
w];
 
  732                                 int dst1Stride, 
int dst2Stride)
 
  739             dst1[
w] = 
src[2 * 
w + 0];
 
  740             dst2[
w] = 
src[2 * 
w + 1];
 
  751                                  int srcStride1, 
int srcStride2,
 
  752                                  int dstStride1, 
int dstStride2)
 
  758     for (y = 0; y < 
h; y++) {
 
  760         uint8_t *d        = dst1 + dstStride1 *  y;
 
  761         for (x = 0; x < 
w; x++)
 
  762             d[2 * x] = d[2 * x + 1] = 
s1[x];
 
  764     for (y = 0; y < 
h; y++) {
 
  765         const uint8_t *
s2 = src2 + srcStride2 * (y >> 1);
 
  766         uint8_t *d        = dst2 + dstStride2 *  y;
 
  767         for (x = 0; x < 
w; x++)
 
  768             d[2 * x] = d[2 * x + 1] = 
s2[x];
 
  775                                   int srcStride1, 
int srcStride2,
 
  776                                   int srcStride3, 
int dstStride)
 
  782     for (y = 0; y < 
h; y++) {
 
  784         const uint8_t *up = src2 + srcStride2 * (y >> 2);
 
  785         const uint8_t *vp = src3 + srcStride3 * (y >> 2);
 
  786         uint8_t *d        = dst  + dstStride  *  y;
 
  787         for (x = 0; x < 
w; x++) {
 
  788             const int x2 = x << 2;
 
  789             d[8 * x + 0] = yp[x2];
 
  790             d[8 * x + 1] = up[x];
 
  791             d[8 * x + 2] = yp[x2 + 1];
 
  792             d[8 * x + 3] = vp[x];
 
  793             d[8 * x + 4] = yp[x2 + 2];
 
  794             d[8 * x + 5] = up[x];
 
  795             d[8 * x + 6] = yp[x2 + 3];
 
  796             d[8 * x + 7] = vp[x];
 
  875                            int lumStride, 
int chromStride, 
int srcStride)
 
  880     for (y = 0; y < 
height; y++) {
 
  895                            int lumStride, 
int chromStride, 
int srcStride)
 
  900     for (y = 0; y < 
height; y++) {
 
  913                            int lumStride, 
int chromStride, 
int srcStride)
 
  918     for (y = 0; y < 
height; y++) {
 
  933                            int lumStride, 
int chromStride, 
int srcStride)
 
  938     for (y = 0; y < 
height; y++) {
 
  
static void yuvPlanartouyvy_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride, int vertLumPerChroma)
 
static void rgb32to15_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb32tobgr24)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* shuffle_bytes_3012)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yuv422ptoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Width should be a multiple of 16.
 
static void fn() rgb2yuv(uint8_t *_yuv[3], const ptrdiff_t yuv_stride[3], int16_t *rgb[3], ptrdiff_t s, int w, int h, const int16_t rgb2yuv_coeffs[3][3][8], const int16_t yuv_offset[8])
 
static void extract_even2_c(const uint8_t *src, uint8_t *dst0, uint8_t *dst1, int count)
 
void(* yv12toyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
static void rgb16to15_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yv12touyvy_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Height should be a multiple of 2 and width should be a multiple of 16 (If this is a problem for anyon...
 
static av_cold int end(AVCodecContext *avctx)
 
static void rgb24tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* yuy2toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
void(* shuffle_bytes_3210)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yuyvtoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void(* rgb32tobgr16)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* yuyvtoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void(* rgb24tobgr16)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb15to32)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* yv12touyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
static void rgb32tobgr15_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb32to16)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void deinterleaveBytes_c(const uint8_t *src, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride, int dst1Stride, int dst2Stride)
 
static void rgb15to32_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void shuffle_bytes_0321_c(const uint8_t *src, uint8_t *dst, int src_size)
 
#define DEFINE_SHUFFLE_BYTES(name, a, b, c, d)
 
static void interleaveBytes_c(const uint8_t *src1, const uint8_t *src2, uint8_t *dest, int width, int height, int src1Stride, int src2Stride, int dstStride)
 
static void extract_odd2avg_c(const uint8_t *src0, const uint8_t *src1, uint8_t *dst0, uint8_t *dst1, int count)
 
void(* ff_rgb24toyv12)(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride, int32_t *rgb2yuv)
Height should be a multiple of 2 and width should be a multiple of 2.
 
static void rgb32to16_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb24to15_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb16tobgr24)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb15to16_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb24tobgr32_c(const uint8_t *src, uint8_t *dst, int src_size)
 
#define AV_CEIL_RSHIFT(a, b)
 
static void rgb16to32_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yuy2toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
void(* shuffle_bytes_1230)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb15tobgr24)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void extract_odd2_c(const uint8_t *src, uint8_t *dst0, uint8_t *dst1, int count)
 
void(* yuv422ptoyuy2)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Width should be a multiple of 16.
 
void(* shuffle_bytes_2103)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb32tobgr15)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* interleaveBytes)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst, int width, int height, int src1Stride, int src2Stride, int dstStride)
 
void(* yvu9_to_yuy2)(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, int width, int height, int srcStride1, int srcStride2, int srcStride3, int dstStride)
 
static void rgb24to16_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void uyvytoyuv422_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void(* rgb16to15)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yv12toyuy2_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
static void shuffle_bytes_2103_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb32tobgr16_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* yuyvtoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void(* rgb24tobgr32)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void yvu9_to_yuy2_c(const uint8_t *src1, const uint8_t *src2, const uint8_t *src3, uint8_t *dst, int width, int height, int srcStride1, int srcStride2, int srcStride3, int dstStride)
 
void(* shuffle_bytes_0321)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void uyvytoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void ff_rgb24toyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride, int32_t *rgb2yuv)
Height should be a multiple of 2 and width should be a multiple of 2.
 
void(* rgb24to16)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb24tobgr16_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* uyvytoyuv422)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
#define i(width, name, range_min, range_max)
 
void(* rgb24to15)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void extract_even_c(const uint8_t *src, uint8_t *dst, int count)
 
void(* rgb32to15)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void rgb32tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)
 
static void uyvytoyv12_c(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst, int width, int height, int lumStride, int chromStride, int srcStride)
Height should be a multiple of 2 and width should be a multiple of 16.
 
void(* deinterleaveBytes)(const uint8_t *src, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride, int dst1Stride, int dst2Stride)
 
static void yuv422ptouyvy_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Width should be a multiple of 16.
 
static av_cold void rgb2rgb_init_c(void)
 
void(* uyvytoyuv420)(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
void(* rgb16to32)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void vu9_to_vu12_c(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride1, int srcStride2, int dstStride1, int dstStride2)
 
static void rgb24tobgr15_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb24tobgr15)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* rgb15to16)(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* yuv422ptouyvy)(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride)
Width should be a multiple of 16.
 
void(* vu9_to_vu12)(const uint8_t *src1, const uint8_t *src2, uint8_t *dst1, uint8_t *dst2, int width, int height, int srcStride1, int srcStride2, int dstStride1, int dstStride2)
 
void(* rgb24tobgr24)(const uint8_t *src, uint8_t *dst, int src_size)
 
static void extract_even2avg_c(const uint8_t *src0, const uint8_t *src1, uint8_t *dst0, uint8_t *dst1, int count)
 
static void yuyvtoyuv420_c(uint8_t *ydst, uint8_t *udst, uint8_t *vdst, const uint8_t *src, int width, int height, int lumStride, int chromStride, int srcStride)
 
static void rgb15tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)
 
void(* planar2x)(const uint8_t *src, uint8_t *dst, int width, int height, int srcStride, int dstStride)
 
static void planar2x_c(const uint8_t *src, uint8_t *dst, int srcWidth, int srcHeight, int srcStride, int dstStride)
 
static void yuvPlanartoyuy2_c(const uint8_t *ysrc, const uint8_t *usrc, const uint8_t *vsrc, uint8_t *dst, int width, int height, int lumStride, int chromStride, int dstStride, int vertLumPerChroma)
 
static void rgb16tobgr24_c(const uint8_t *src, uint8_t *dst, int src_size)