Browse Source

uyvy->uv12 added

Originally committed as revision 2802 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
tags/v0.5
Arpi 24 years ago
parent
commit
81c0590e6c
2 changed files with 76 additions and 0 deletions
  1. +38
    -0
      postproc/rgb2rgb.c
  2. +38
    -0
      postproc/rgb2rgb_template.c

+ 38
- 0
postproc/rgb2rgb.c View File

@@ -813,3 +813,41 @@ asm( EMMS" \n\t"
:::"memory");
#endif
}

/**
*
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a
* problem for anyone then tell me, and ill fix it)
*/
void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
unsigned int width, unsigned int height,
unsigned int lumStride, unsigned int chromStride, unsigned int srcStride)
{
int y;
const int chromWidth= width>>1;
for(y=0; y<height; y+=2)
{
int i;
for(i=0; i<chromWidth; i++)
{
udst[i] = src[4*i+0];
ydst[2*i+0] = src[4*i+1];
vdst[i] = src[4*i+2];
ydst[2*i+1] = src[4*i+3];
}
ydst += lumStride;
src += srcStride;

for(i=0; i<chromWidth; i++)
{
ydst[2*i+0] = src[4*i+1];
ydst[2*i+1] = src[4*i+3];
}
udst += chromStride;
vdst += chromStride;
ydst += lumStride;
src += srcStride;
}
}



+ 38
- 0
postproc/rgb2rgb_template.c View File

@@ -813,3 +813,41 @@ asm( EMMS" \n\t"
:::"memory");
#endif
}

/**
*
* height should be a multiple of 2 and width should be a multiple of 16 (if this is a
* problem for anyone then tell me, and ill fix it)
*/
void uyvytoyv12(const uint8_t *src, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
unsigned int width, unsigned int height,
unsigned int lumStride, unsigned int chromStride, unsigned int srcStride)
{
int y;
const int chromWidth= width>>1;
for(y=0; y<height; y+=2)
{
int i;
for(i=0; i<chromWidth; i++)
{
udst[i] = src[4*i+0];
ydst[2*i+0] = src[4*i+1];
vdst[i] = src[4*i+2];
ydst[2*i+1] = src[4*i+3];
}
ydst += lumStride;
src += srcStride;

for(i=0; i<chromWidth; i++)
{
ydst[2*i+0] = src[4*i+1];
ydst[2*i+1] = src[4*i+3];
}
udst += chromStride;
vdst += chromStride;
ydst += lumStride;
src += srcStride;
}
}



Loading…
Cancel
Save