[FFmpeg-cvslog] swscale: use a function for isGray

Clément Bœsch git at videolan.org
Mon Mar 20 09:06:24 EET 2017


ffmpeg | branch: master | Clément Bœsch <u at pkh.me> | Sun Mar 19 14:57:29 2017 +0100| [f052b1b40f94dd89ce86330cffb8f6e4793ff203] | committer: Clément Bœsch

swscale: use a function for isGray

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

 libswscale/swscale_internal.h | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
index af82396..6bcb464 100644
--- a/libswscale/swscale_internal.h
+++ b/libswscale/swscale_internal.h
@@ -687,23 +687,16 @@ static av_always_inline int isRGB(enum AVPixelFormat pix_fmt)
     return (desc->flags & AV_PIX_FMT_FLAG_RGB);
 }
 
-#if 0 // FIXME
-#define isGray(x) \
-    (!(av_pix_fmt_desc_get(x)->flags & AV_PIX_FMT_FLAG_PAL) && \
-     av_pix_fmt_desc_get(x)->nb_components <= 2)
-#else
-#define isGray(x)                      \
-    ((x) == AV_PIX_FMT_GRAY8       ||  \
-     (x) == AV_PIX_FMT_YA8         ||  \
-     (x) == AV_PIX_FMT_GRAY10BE    ||  \
-     (x) == AV_PIX_FMT_GRAY10LE    ||  \
-     (x) == AV_PIX_FMT_GRAY12BE    ||  \
-     (x) == AV_PIX_FMT_GRAY12LE    ||  \
-     (x) == AV_PIX_FMT_GRAY16BE    ||  \
-     (x) == AV_PIX_FMT_GRAY16LE    ||  \
-     (x) == AV_PIX_FMT_YA16BE      ||  \
-     (x) == AV_PIX_FMT_YA16LE)
-#endif
+static av_always_inline int isGray(enum AVPixelFormat pix_fmt)
+{
+    const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
+    av_assert0(desc);
+    return !(desc->flags & AV_PIX_FMT_FLAG_PAL) &&
+           !(desc->flags & AV_PIX_FMT_FLAG_HWACCEL) &&
+           desc->nb_components <= 2 &&
+           pix_fmt != AV_PIX_FMT_MONOBLACK &&
+           pix_fmt != AV_PIX_FMT_MONOWHITE;
+}
 
 #define isRGBinInt(x) \
     (           \



More information about the ffmpeg-cvslog mailing list