[FFmpeg-cvslog] Clean up swscale pixfmt macros using av_pix_fmt_descriptors[].

Ronald S. Bultje git at videolan.org
Fri Nov 25 04:43:27 CET 2011


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Sun Nov  6 16:52:27 2011 -0800| [6b0768e2021b90215a2ab55ed427bce91d148148] | committer: Ronald S. Bultje

Clean up swscale pixfmt macros using av_pix_fmt_descriptors[].

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6b0768e2021b90215a2ab55ed427bce91d148148
---

 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 a93a079..a2d3073 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 5864cdb..2b5c2fd 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 979a235..b5972c7 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 6fcd41d..7048265 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];



More information about the ffmpeg-cvslog mailing list