From 6b0768e2021b90215a2ab55ed427bce91d148148 Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Sun, 6 Nov 2011 16:52:27 -0800 Subject: [PATCH] Clean up swscale pixfmt macros using av_pix_fmt_descriptors[]. --- libavutil/avutil.h | 2 +- libavutil/pixdesc.c | 90 ++++++++++++++++------ libavutil/pixdesc.h | 2 + libswscale/swscale_internal.h | 140 +++++++++------------------------- 4 files changed, 102 insertions(+), 132 deletions(-) diff --git a/libavutil/avutil.h b/libavutil/avutil.h index a93a0799a78..a2d30734671 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -153,7 +153,7 @@ */ #define LIBAVUTIL_VERSION_MAJOR 51 -#define LIBAVUTIL_VERSION_MINOR 18 +#define LIBAVUTIL_VERSION_MINOR 19 #define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 5864cdba35f..2b5c2fd27d0 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -126,6 +126,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUYV422] = { .name = "yuyv422", @@ -148,6 +149,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,2,2,0,7}, /* G */ {0,2,3,0,7}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGR24] = { .name = "bgr24", @@ -159,6 +161,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,2,2,0,7}, /* G */ {0,2,3,0,7}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_YUV422P] = { .name = "yuv422p", @@ -170,6 +173,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P] = { .name = "yuv444p", @@ -181,6 +185,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV410P] = { .name = "yuv410p", @@ -192,6 +197,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV411P] = { .name = "yuv411p", @@ -203,6 +209,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_GRAY8] = { .name = "gray", @@ -254,6 +261,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUVJ422P] = { .name = "yuvj422p", @@ -265,6 +273,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUVJ444P] = { .name = "yuvj444p", @@ -276,6 +285,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_XVMC_MPEG2_MC] = { .name = "xvmcmc", @@ -317,7 +327,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,0,1,3,2}, /* G */ {0,0,1,0,2}, /* R */ }, - .flags = PIX_FMT_PAL, + .flags = PIX_FMT_PAL | PIX_FMT_RGB, }, [PIX_FMT_BGR4] = { .name = "bgr4", @@ -329,7 +339,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,2,0,1}, /* G */ {0,3,4,0,0}, /* R */ }, - .flags = PIX_FMT_BITSTREAM, + .flags = PIX_FMT_BITSTREAM | PIX_FMT_RGB, }, [PIX_FMT_BGR4_BYTE] = { .name = "bgr4_byte", @@ -341,7 +351,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,0,1,1,1}, /* G */ {0,0,1,0,0}, /* R */ }, - .flags = PIX_FMT_PAL, + .flags = PIX_FMT_PAL | PIX_FMT_RGB, }, [PIX_FMT_RGB8] = { .name = "rgb8", @@ -353,7 +363,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,0,1,3,2}, /* G */ {0,0,1,0,2}, /* B */ }, - .flags = PIX_FMT_PAL, + .flags = PIX_FMT_PAL | PIX_FMT_RGB, }, [PIX_FMT_RGB4] = { .name = "rgb4", @@ -365,7 +375,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,2,0,1}, /* G */ {0,3,4,0,0}, /* B */ }, - .flags = PIX_FMT_BITSTREAM, + .flags = PIX_FMT_BITSTREAM | PIX_FMT_RGB, }, [PIX_FMT_RGB4_BYTE] = { .name = "rgb4_byte", @@ -377,7 +387,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,0,1,1,1}, /* G */ {0,0,1,0,0}, /* B */ }, - .flags = PIX_FMT_PAL, + .flags = PIX_FMT_PAL | PIX_FMT_RGB, }, [PIX_FMT_NV12] = { .name = "nv12", @@ -389,6 +399,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,7}, /* U */ {1,1,2,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_NV21] = { .name = "nv21", @@ -400,6 +411,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,7}, /* V */ {1,1,2,0,7}, /* U */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_ARGB] = { .name = "argb", @@ -412,6 +424,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,3,0,7}, /* G */ {0,3,4,0,7}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_RGBA] = { .name = "rgba", @@ -424,6 +437,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,3,0,7}, /* B */ {0,3,4,0,7}, /* A */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_ABGR] = { .name = "abgr", @@ -436,6 +450,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,3,0,7}, /* G */ {0,3,4,0,7}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGRA] = { .name = "bgra", @@ -448,6 +463,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,3,3,0,7}, /* R */ {0,3,4,0,7}, /* A */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_GRAY16BE] = { .name = "gray16be", @@ -478,6 +494,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUVJ440P] = { .name = "yuvj440p", @@ -489,6 +506,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* U */ {2,0,1,0,7}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUVA420P] = { .name = "yuva420p", @@ -501,6 +519,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {2,0,1,0,7}, /* V */ {3,0,1,0,7}, /* A */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_VDPAU_H264] = { .name = "vdpau_h264", @@ -560,6 +579,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,5,3,0,15}, /* G */ {0,5,5,0,15}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_RGB565BE] = { .name = "rgb565be", @@ -571,7 +591,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,5}, /* G */ {0,1,1,0,4}, /* B */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_RGB565LE] = { .name = "rgb565le", @@ -583,6 +603,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,5}, /* G */ {0,1,1,0,4}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_RGB555BE] = { .name = "rgb555be", @@ -594,7 +615,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,4}, /* G */ {0,1,1,0,4}, /* B */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_RGB555LE] = { .name = "rgb555le", @@ -606,6 +627,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,4}, /* G */ {0,1,1,0,4}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_RGB444BE] = { .name = "rgb444be", @@ -617,7 +639,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,4,3}, /* G */ {0,1,1,0,3}, /* B */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_RGB444LE] = { .name = "rgb444le", @@ -629,6 +651,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,4,3}, /* G */ {0,1,1,0,3}, /* B */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGR48BE] = { .name = "bgr48be", @@ -640,7 +663,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,5,3,0,15}, /* G */ {0,5,5,0,15}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_BGR48LE] = { .name = "bgr48le", @@ -652,6 +675,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,5,3,0,15}, /* G */ {0,5,5,0,15}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGR565BE] = { .name = "bgr565be", @@ -663,7 +687,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,5}, /* G */ {0,1,1,0,4}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_BGR565LE] = { .name = "bgr565le", @@ -675,6 +699,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,5}, /* G */ {0,1,1,0,4}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGR555BE] = { .name = "bgr555be", @@ -686,7 +711,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,4}, /* G */ {0,1,1,0,4}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_BGR555LE] = { .name = "bgr555le", @@ -698,6 +723,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,5,4}, /* G */ {0,1,1,0,4}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_BGR444BE] = { .name = "bgr444be", @@ -709,7 +735,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,4,3}, /* G */ {0,1,1,0,3}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_RGB, }, [PIX_FMT_BGR444LE] = { .name = "bgr444le", @@ -721,6 +747,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {0,1,1,4,3}, /* G */ {0,1,1,0,3}, /* R */ }, + .flags = PIX_FMT_RGB, }, [PIX_FMT_VAAPI_MOCO] = { .name = "vaapi_moco", @@ -756,6 +783,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV420P9BE] = { .name = "yuv420p9be", @@ -767,7 +795,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV420P10LE] = { .name = "yuv420p10le", @@ -779,6 +807,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV420P10BE] = { .name = "yuv420p10be", @@ -790,7 +819,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV420P16LE] = { .name = "yuv420p16le", @@ -802,6 +831,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV420P16BE] = { .name = "yuv420p16be", @@ -813,7 +843,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P9LE] = { .name = "yuv422p9le", @@ -825,6 +855,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P9BE] = { .name = "yuv422p9be", @@ -836,7 +867,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P10LE] = { .name = "yuv422p10le", @@ -848,6 +879,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P10BE] = { .name = "yuv422p10be", @@ -859,7 +891,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P16LE] = { .name = "yuv422p16le", @@ -871,6 +903,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV422P16BE] = { .name = "yuv422p16be", @@ -882,7 +915,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P16LE] = { .name = "yuv444p16le", @@ -894,6 +927,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P16BE] = { .name = "yuv444p16be", @@ -905,7 +939,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* U */ {2,1,1,0,15}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P10LE] = { .name = "yuv444p10le", @@ -917,6 +951,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P10BE] = { .name = "yuv444p10be", @@ -928,7 +963,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* U */ {2,1,1,0,9}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P9LE] = { .name = "yuv444p9le", @@ -940,6 +975,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, + .flags = PIX_FMT_PLANAR, }, [PIX_FMT_YUV444P9BE] = { .name = "yuv444p9be", @@ -951,7 +987,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* U */ {2,1,1,0,8}, /* V */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR, }, [PIX_FMT_DXVA2_VLD] = { .name = "dxva2_vld", @@ -977,6 +1013,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,0,1,0,7}, /* B */ {2,0,1,0,7}, /* R */ }, + .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP9LE] = { .name = "gbrp9le", @@ -988,6 +1025,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* B */ {2,1,1,0,8}, /* R */ }, + .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP9BE] = { .name = "gbrp9be", @@ -999,7 +1037,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,8}, /* B */ {2,1,1,0,8}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP10LE] = { .name = "gbrp10le", @@ -1011,6 +1049,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* B */ {2,1,1,0,9}, /* R */ }, + .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP10BE] = { .name = "gbrp10be", @@ -1022,7 +1061,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,9}, /* B */ {2,1,1,0,9}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP16LE] = { .name = "gbrp16le", @@ -1034,6 +1073,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* B */ {2,1,1,0,15}, /* R */ }, + .flags = PIX_FMT_PLANAR | PIX_FMT_RGB, }, [PIX_FMT_GBRP16BE] = { .name = "gbrp16be", @@ -1045,7 +1085,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = { {1,1,1,0,15}, /* B */ {2,1,1,0,15}, /* R */ }, - .flags = PIX_FMT_BE, + .flags = PIX_FMT_BE | PIX_FMT_PLANAR | PIX_FMT_RGB, }, }; diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h index 979a23539b3..b5972c78ff4 100644 --- a/libavutil/pixdesc.h +++ b/libavutil/pixdesc.h @@ -87,6 +87,8 @@ typedef struct AVPixFmtDescriptor{ #define PIX_FMT_PAL 2 ///< Pixel format has a palette in data[1], values are indexes in this palette. #define PIX_FMT_BITSTREAM 4 ///< All values of a component are bit-wise packed end to end. #define PIX_FMT_HWACCEL 8 ///< Pixel format is an HW accelerated format. +#define PIX_FMT_PLANAR 16 ///< At least one pixel component is not in the first data plane +#define PIX_FMT_RGB 32 ///< The pixel format contains RGB-like data (as opposed to YUV/grayscale) /** * The array of all the pixel format descriptors. diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 6fcd41d75a1..70482658998 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -30,6 +30,7 @@ #include "libavutil/avutil.h" #include "libavutil/log.h" #include "libavutil/pixfmt.h" +#include "libavutil/pixdesc.h" #define STR(s) AV_TOSTRING(s) //AV_STRINGIFY is too long @@ -520,83 +521,31 @@ void ff_bfin_get_unscaled_swscale(SwsContext *c); const char *sws_format_name(enum PixelFormat format); -//FIXME replace this with something faster -#define is16BPS(x) ( \ - (x)==PIX_FMT_GRAY16BE \ - || (x)==PIX_FMT_GRAY16LE \ - || (x)==PIX_FMT_BGR48BE \ - || (x)==PIX_FMT_BGR48LE \ - || (x)==PIX_FMT_RGB48BE \ - || (x)==PIX_FMT_RGB48LE \ - || (x)==PIX_FMT_YUV420P16LE \ - || (x)==PIX_FMT_YUV422P16LE \ - || (x)==PIX_FMT_YUV444P16LE \ - || (x)==PIX_FMT_YUV420P16BE \ - || (x)==PIX_FMT_YUV422P16BE \ - || (x)==PIX_FMT_YUV444P16BE \ - ) -#define is9_OR_10BPS(x) ( \ - (x)==PIX_FMT_YUV420P9LE \ - || (x)==PIX_FMT_YUV420P9BE \ - || (x)==PIX_FMT_YUV422P9LE \ - || (x)==PIX_FMT_YUV422P9BE \ - || (x)==PIX_FMT_YUV444P9BE \ - || (x)==PIX_FMT_YUV444P9LE \ - || (x)==PIX_FMT_YUV422P10BE \ - || (x)==PIX_FMT_YUV422P10LE \ - || (x)==PIX_FMT_YUV444P10BE \ - || (x)==PIX_FMT_YUV444P10LE \ - || (x)==PIX_FMT_YUV420P10LE \ - || (x)==PIX_FMT_YUV420P10BE \ - ) -#define isBE(x) ((x)&1) -#define isPlanar8YUV(x) ( \ - (x)==PIX_FMT_YUV410P \ - || (x)==PIX_FMT_YUV420P \ - || (x)==PIX_FMT_YUVA420P \ - || (x)==PIX_FMT_YUV411P \ - || (x)==PIX_FMT_YUV422P \ - || (x)==PIX_FMT_YUV444P \ - || (x)==PIX_FMT_YUV440P \ - || (x)==PIX_FMT_NV12 \ - || (x)==PIX_FMT_NV21 \ - ) -#define isPlanarYUV(x) ( \ - isPlanar8YUV(x) \ - || (x)==PIX_FMT_YUV420P9LE \ - || (x)==PIX_FMT_YUV422P9LE \ - || (x)==PIX_FMT_YUV444P9LE \ - || (x)==PIX_FMT_YUV420P10LE \ - || (x)==PIX_FMT_YUV422P10LE \ - || (x)==PIX_FMT_YUV444P10LE \ - || (x)==PIX_FMT_YUV420P16LE \ - || (x)==PIX_FMT_YUV422P16LE \ - || (x)==PIX_FMT_YUV444P16LE \ - || (x)==PIX_FMT_YUV420P9BE \ - || (x)==PIX_FMT_YUV422P9BE \ - || (x)==PIX_FMT_YUV444P9BE \ - || (x)==PIX_FMT_YUV420P10BE \ - || (x)==PIX_FMT_YUV422P10BE \ - || (x)==PIX_FMT_YUV444P10BE \ - || (x)==PIX_FMT_YUV420P16BE \ - || (x)==PIX_FMT_YUV422P16BE \ - || (x)==PIX_FMT_YUV444P16BE \ - ) -#define isYUV(x) ( \ - (x)==PIX_FMT_UYVY422 \ - || (x)==PIX_FMT_YUYV422 \ - || isPlanarYUV(x) \ - ) -#define isGray(x) ( \ - (x)==PIX_FMT_GRAY8 \ - || (x)==PIX_FMT_Y400A \ - || (x)==PIX_FMT_GRAY16BE \ - || (x)==PIX_FMT_GRAY16LE \ - ) -#define isGray16(x) ( \ - (x)==PIX_FMT_GRAY16BE \ - || (x)==PIX_FMT_GRAY16LE \ - ) +#define is16BPS(x) \ + (av_pix_fmt_descriptors[x].comp[0].depth_minus1 == 15) + +#define is9_OR_10BPS(x) \ + (av_pix_fmt_descriptors[x].comp[0].depth_minus1 == 8 || \ + av_pix_fmt_descriptors[x].comp[0].depth_minus1 == 9) + +#define isBE(x) \ + (av_pix_fmt_descriptors[x].flags & PIX_FMT_BE) + +#define isYUV(x) \ + (!(av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB) && \ + av_pix_fmt_descriptors[x].nb_components >= 2) + +#define isPlanarYUV(x) \ + ((av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR) && \ + isYUV(x)) + +#define isRGB(x) \ + (av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB) + +#define isGray(x) \ + (!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) && \ + av_pix_fmt_descriptors[x].nb_components <= 2) + #define isRGBinInt(x) ( \ (x)==PIX_FMT_RGB48BE \ || (x)==PIX_FMT_RGB48LE \ @@ -633,39 +582,18 @@ const char *sws_format_name(enum PixelFormat format); || (x)==PIX_FMT_MONOBLACK \ || (x)==PIX_FMT_MONOWHITE \ ) -#define isRGBinBytes(x) ( \ - (x)==PIX_FMT_RGB48BE \ - || (x)==PIX_FMT_RGB48LE \ - || (x)==PIX_FMT_RGBA \ - || (x)==PIX_FMT_ARGB \ - || (x)==PIX_FMT_RGB24 \ - ) -#define isBGRinBytes(x) ( \ - (x)==PIX_FMT_BGR48BE \ - || (x)==PIX_FMT_BGR48LE \ - || (x)==PIX_FMT_BGRA \ - || (x)==PIX_FMT_ABGR \ - || (x)==PIX_FMT_BGR24 \ - ) #define isAnyRGB(x) ( \ isRGBinInt(x) \ || isBGRinInt(x) \ ) -#define isALPHA(x) ( \ - (x)==PIX_FMT_BGR32 \ - || (x)==PIX_FMT_BGR32_1 \ - || (x)==PIX_FMT_RGB32 \ - || (x)==PIX_FMT_RGB32_1 \ - || (x)==PIX_FMT_Y400A \ - || (x)==PIX_FMT_YUVA420P \ - ) -#define isPacked(x) ( \ - (x)==PIX_FMT_PAL8 \ - || (x)==PIX_FMT_YUYV422 \ - || (x)==PIX_FMT_UYVY422 \ - || (x)==PIX_FMT_Y400A \ - || isAnyRGB(x) \ - ) +#define isALPHA(x) \ + (av_pix_fmt_descriptors[x].nb_components == 2 || \ + av_pix_fmt_descriptors[x].nb_components == 4) + +#define isPacked(x) \ + (av_pix_fmt_descriptors[x].nb_components >= 2 && \ + !(av_pix_fmt_descriptors[x].flags & PIX_FMT_PLANAR)) + #define usePal(x) ((av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) || (x) == PIX_FMT_Y400A) extern const uint64_t ff_dither4[2]; -- 2.39.5