diff options
-rw-r--r-- | video/img_format.h | 4 | ||||
-rw-r--r-- | video/mp_image.c | 3 | ||||
-rw-r--r-- | video/mp_image.h | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/video/img_format.h b/video/img_format.h index 0cc48d937f..3631872ff0 100644 --- a/video/img_format.h +++ b/video/img_format.h @@ -57,7 +57,9 @@ // set if in native (host) endian, or endian independent #define MP_IMGFLAG_NE MP_SELECT_LE_BE(MP_IMGFLAG_LE, MP_IMGFLAG_BE) -#define MP_IMGFLAG_FMT_MASK 0x3FFF +// Exactly one of these bits is set in mp_imgfmt_desc.flags +#define MP_IMGFLAG_COLOR_CLASS_MASK \ + (MP_IMGFLAG_YUV | MP_IMGFLAG_RGB | MP_IMGFLAG_XYZ) struct mp_imgfmt_desc { int id; // IMGFMT_* diff --git a/video/mp_image.c b/video/mp_image.c index 4b34944ec9..c22f3b4246 100644 --- a/video/mp_image.c +++ b/video/mp_image.c @@ -127,10 +127,9 @@ static void mp_image_alloc_planes(struct mp_image *mpi) void mp_image_setfmt(struct mp_image *mpi, unsigned int out_fmt) { - mpi->flags &= ~MP_IMGFLAG_FMT_MASK; struct mp_imgfmt_desc fmt = mp_imgfmt_get_desc(out_fmt); mpi->fmt = fmt; - mpi->flags |= fmt.flags; + mpi->flags = fmt.flags; mpi->imgfmt = fmt.id; mpi->chroma_x_shift = fmt.chroma_xs; mpi->chroma_y_shift = fmt.chroma_ys; diff --git a/video/mp_image.h b/video/mp_image.h index 141483eedd..85595c5705 100644 --- a/video/mp_image.h +++ b/video/mp_image.h @@ -63,7 +63,7 @@ struct mp_image_params { * image data. mp_image_make_writeable() will do that copy if required. */ typedef struct mp_image { - unsigned int flags; + unsigned int flags; // same as fmt.flags struct mp_imgfmt_desc fmt; // fields redundant to fmt, for convenience or compatibility |