From 4950513ffecd86626f587c636a36214052485097 Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 26 Dec 2012 23:12:30 +0100 Subject: img_format: change meaning of MP_IMGFLAG_PLANAR This used to mean that there is more than one plane. This is not very useful: IMGFMT_Y8 was not considered planar, but it's just a Y plane, and could be treated the same as actual planar formats. On the other hand, IMGFMT_NV12 is partially packed, and usually requires special handling, but was considered planar. Change its meaning. Now the flag is set if the format has a separate plane for each component. IMGFMT_Y8 is now planar, IMGFMT_NV12 is not. As an odd special case, IMGFMT_MONO (1 bit per pixel) is like a planar RGB format with a single plane. --- video/img_format.c | 2 +- video/img_format.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'video') diff --git a/video/img_format.c b/video/img_format.c index a6d92f1a1f..32c8a8a048 100644 --- a/video/img_format.c +++ b/video/img_format.c @@ -186,7 +186,7 @@ static struct mp_imgfmt_desc get_avutil_fmt(enum PixelFormat fmt) desc.flags |= MP_IMGFLAG_ALPHA; #endif - if (desc.num_planes > 1) + if (desc.num_planes == pd->nb_components) desc.flags |= MP_IMGFLAG_PLANAR; if (desc.flags & MP_IMGFLAG_YUV) { diff --git a/video/img_format.h b/video/img_format.h index 37ac32ffac..2c99c8363e 100644 --- a/video/img_format.h +++ b/video/img_format.h @@ -35,7 +35,7 @@ #define MP_IMGFLAG_BYTE_ALIGNED 0x1 // set if (possibly) alpha is included (might be not definitive for packed RGB) #define MP_IMGFLAG_ALPHA 0x80 -// set if number of planes > 1 +// Uses one component per plane (set even if it's just one plane) #define MP_IMGFLAG_PLANAR 0x100 // set if it's YUV colorspace #define MP_IMGFLAG_YUV 0x200 -- cgit v1.2.3