]> git.sesse.net Git - ffmpeg/commitdiff
planar yuv 444 422 411 support
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 1 Aug 2002 12:39:08 +0000 (12:39 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 1 Aug 2002 12:39:08 +0000 (12:39 +0000)
Originally committed as revision 6864 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc

postproc/swscale.c

index 8f0273aa0da3c4d3110b859ba26cb2a5f5fea35c..c5622e4e94754cfb66767f5000d7d79fe44329a0 100644 (file)
@@ -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;