summaryrefslogtreecommitdiffstats
path: root/postproc
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-01 12:39:08 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-01 12:39:08 +0000
commitbfe5d4d4b4b369be9245888669b6dc9ade7ba39c (patch)
tree3cd718c0145aeceb17349631fa44cba9ca58d5f6 /postproc
parent8f7938b386d21dc5a2d1a87f5531ba3cc0b963dd (diff)
downloadmpv-bfe5d4d4b4b369be9245888669b6dc9ade7ba39c.tar.bz2
mpv-bfe5d4d4b4b369be9245888669b6dc9ade7ba39c.tar.xz
planar yuv 444 422 411 support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6864 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'postproc')
-rw-r--r--postproc/swscale.c22
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;