diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2002-08-01 12:39:08 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2002-08-01 12:39:08 +0000 |
commit | d80e2fa24f54e7e373d14fa056d3f263fccb31cb (patch) | |
tree | 7d9a5198c4d0d7898c8c02059a920b8e27d78d6c /postproc/swscale.c | |
parent | a10678da8aa82d44aedc20ece237f56a3a94a4be (diff) | |
download | ffmpeg-d80e2fa24f54e7e373d14fa056d3f263fccb31cb.tar.gz |
planar yuv 444 422 411 support
Originally committed as revision 6864 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc/swscale.c')
-rw-r--r-- | postproc/swscale.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/postproc/swscale.c b/postproc/swscale.c index 8f0273aa0d..c5622e4e94 100644 --- a/postproc/swscale.c +++ b/postproc/swscale.c @@ -103,7 +103,8 @@ untested special converters #endif //FIXME replace this with something faster -#define isPlanarYUV(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 || (x)==IMGFMT_YVU9) +#define isPlanarYUV(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 || (x)==IMGFMT_YVU9 \ + || (x)==IMGFMT_444P || (x)==IMGFMT_422P || (x)==IMGFMT_411P) #define isYUV(x) ((x)==IMGFMT_YUY2 || isPlanarYUV(x)) #define isGray(x) ((x)==IMGFMT_Y800) #define isRGB(x) (((x)&IMGFMT_RGB_MASK)==IMGFMT_RGB) @@ -111,8 +112,10 @@ untested special converters #define isSupportedIn(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 || (x)==IMGFMT_YUY2 \ || (x)==IMGFMT_BGR32|| (x)==IMGFMT_BGR24|| (x)==IMGFMT_BGR16|| (x)==IMGFMT_BGR15\ || (x)==IMGFMT_RGB32|| (x)==IMGFMT_RGB24\ - || (x)==IMGFMT_Y800 || (x)==IMGFMT_YVU9) + || (x)==IMGFMT_Y800 || (x)==IMGFMT_YVU9\ + || (x)==IMGFMT_444P || (x)==IMGFMT_422P || (x)==IMGFMT_411P) #define isSupportedOut(x) ((x)==IMGFMT_YV12 || (x)==IMGFMT_I420 \ + || (x)==IMGFMT_444P || (x)==IMGFMT_422P || (x)==IMGFMT_411P\ || isRGB(x) || isBGR(x)\ || (x)==IMGFMT_Y800 || (x)==IMGFMT_YVU9) #define isPacked(x) ((x)==IMGFMT_YUY2 || isRGB(x) || isBGR(x)) @@ -1757,7 +1760,8 @@ static void yvu9toyv12Wrapper(SwsContext *c, uint8_t* src[], int srcStride[], in * bring pointers in YUV order instead of YVU */ static inline void orderYUV(int format, uint8_t * sortedP[], int sortedStride[], uint8_t * p[], int stride[]){ - if(format == IMGFMT_YV12 || format == IMGFMT_YVU9){ + if(format == IMGFMT_YV12 || format == IMGFMT_YVU9 + || format == IMGFMT_444P || format == IMGFMT_422P || format == IMGFMT_411P){ sortedP[0]= p[0]; sortedP[1]= p[1]; sortedP[2]= p[2]; @@ -1885,6 +1889,18 @@ static void getSubSampleFactors(int *h, int *v, int format){ *h=2; *v=2; break; + case IMGFMT_444P: + *h=0; + *v=0; + break; + case IMGFMT_422P: + *h=1; + *v=0; + break; + case IMGFMT_411P: + *h=2; + *v=0; + break; default: *h=0; *v=0; |