This patch cleans up several macros consisting of PixelFormat lists with simpler checks derived from av_pix_fmt_descriptors.
--- libswscale/swscale_internal.h | 168 +++------------------ libswscale/utils.c | 326 ++++++++++++++++++++++++++--------------- 2 files changed, 231 insertions(+), 263 deletions(-) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 9492303..bbd7ddc 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -494,149 +494,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_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_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_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 isRGBinInt(x) ( \ - (x)==PIX_FMT_RGB48BE \ - || (x)==PIX_FMT_RGB48LE \ - || (x)==PIX_FMT_RGB32 \ - || (x)==PIX_FMT_RGB32_1 \ - || (x)==PIX_FMT_RGB24 \ - || (x)==PIX_FMT_RGB565BE \ - || (x)==PIX_FMT_RGB565LE \ - || (x)==PIX_FMT_RGB555BE \ - || (x)==PIX_FMT_RGB555LE \ - || (x)==PIX_FMT_RGB444BE \ - || (x)==PIX_FMT_RGB444LE \ - || (x)==PIX_FMT_RGB8 \ - || (x)==PIX_FMT_RGB4 \ - || (x)==PIX_FMT_RGB4_BYTE \ - || (x)==PIX_FMT_MONOBLACK \ - || (x)==PIX_FMT_MONOWHITE \ - ) -#define isBGRinInt(x) ( \ - (x)==PIX_FMT_BGR48BE \ - || (x)==PIX_FMT_BGR48LE \ - || (x)==PIX_FMT_BGR32 \ - || (x)==PIX_FMT_BGR32_1 \ - || (x)==PIX_FMT_BGR24 \ - || (x)==PIX_FMT_BGR565BE \ - || (x)==PIX_FMT_BGR565LE \ - || (x)==PIX_FMT_BGR555BE \ - || (x)==PIX_FMT_BGR555LE \ - || (x)==PIX_FMT_BGR444BE \ - || (x)==PIX_FMT_BGR444LE \ - || (x)==PIX_FMT_BGR8 \ - || (x)==PIX_FMT_BGR4 \ - || (x)==PIX_FMT_BGR4_BYTE \ - || (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 usePal(x) ((av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) || (x) == PIX_FMT_Y400A) +#define is16BPS(x) ff_is_16bps(x) +#define is9_OR_10BPS(x) ff_is_9_or_10bps(x) +#define isBE(x) ff_is_be(x) +#define isPlanarYUV(x) ff_is_planar_yuv(x) +#define isYUV(x) ff_is_yuv(x) +#define isGray(x) ff_is_gray(x) +#define isRGBinInt(x) ff_is_rgb_in_int(x) +#define isBGRinInt(x) ff_is_bgr_in_int(x) +#define isAnyRGB(x) ff_is_any_rgb(x) +#define isALPHA(x) ff_has_alpha(x) +#define isPacked(x) ff_is_packed(x) +#define usePal(x) ff_use_pal(x) + +int ff_is_16bps(enum PixelFormat pix_fmt); +int ff_is_9_or_10bps(enum PixelFormat pix_fmt); +int ff_is_be(enum PixelFormat pix_fmt); +int ff_is_planar_yuv(enum PixelFormat pix_fmt); +int ff_is_yuv(enum PixelFormat pix_fmt); +int ff_is_gray(enum PixelFormat pix_fmt); +int ff_is_rgb_in_int(enum PixelFormat pix_fmt); +int ff_is_bgr_in_int(enum PixelFormat pix_fmt); +int ff_is_any_rgb(enum PixelFormat pix_fmt); +int ff_has_alpha(enum PixelFormat pix_fmt); +int ff_is_packed(enum PixelFormat pix_fmt); +int ff_use_pal(enum PixelFormat pix_fmt); extern const uint64_t ff_dither4[2]; extern const uint64_t ff_dither8[2]; diff --git a/libswscale/utils.c b/libswscale/utils.c index 296c845..44581c6 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -63,131 +63,217 @@ const char *swscale_license(void) #define RET 0xC3 //near return opcode for x86 -#define isSupportedIn(x) ( \ - (x)==PIX_FMT_YUV420P \ - || (x)==PIX_FMT_YUVA420P \ - || (x)==PIX_FMT_YUYV422 \ - || (x)==PIX_FMT_UYVY422 \ - || (x)==PIX_FMT_RGB48BE \ - || (x)==PIX_FMT_RGB48LE \ - || (x)==PIX_FMT_RGB32 \ - || (x)==PIX_FMT_RGB32_1 \ - || (x)==PIX_FMT_BGR48BE \ - || (x)==PIX_FMT_BGR48LE \ - || (x)==PIX_FMT_BGR24 \ - || (x)==PIX_FMT_BGR565LE \ - || (x)==PIX_FMT_BGR565BE \ - || (x)==PIX_FMT_BGR555LE \ - || (x)==PIX_FMT_BGR555BE \ - || (x)==PIX_FMT_BGR32 \ - || (x)==PIX_FMT_BGR32_1 \ - || (x)==PIX_FMT_RGB24 \ - || (x)==PIX_FMT_RGB565LE \ - || (x)==PIX_FMT_RGB565BE \ - || (x)==PIX_FMT_RGB555LE \ - || (x)==PIX_FMT_RGB555BE \ - || (x)==PIX_FMT_GRAY8 \ - || (x)==PIX_FMT_Y400A \ - || (x)==PIX_FMT_YUV410P \ - || (x)==PIX_FMT_YUV440P \ - || (x)==PIX_FMT_NV12 \ - || (x)==PIX_FMT_NV21 \ - || (x)==PIX_FMT_GRAY16BE \ - || (x)==PIX_FMT_GRAY16LE \ - || (x)==PIX_FMT_YUV444P \ - || (x)==PIX_FMT_YUV422P \ - || (x)==PIX_FMT_YUV411P \ - || (x)==PIX_FMT_YUVJ420P \ - || (x)==PIX_FMT_YUVJ422P \ - || (x)==PIX_FMT_YUVJ440P \ - || (x)==PIX_FMT_YUVJ444P \ - || (x)==PIX_FMT_PAL8 \ - || (x)==PIX_FMT_BGR8 \ - || (x)==PIX_FMT_RGB8 \ - || (x)==PIX_FMT_BGR4_BYTE \ - || (x)==PIX_FMT_RGB4_BYTE \ - || (x)==PIX_FMT_YUV440P \ - || (x)==PIX_FMT_MONOWHITE \ - || (x)==PIX_FMT_MONOBLACK \ - || (x)==PIX_FMT_YUV420P9LE \ - || (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_YUV444P9BE \ - || (x)==PIX_FMT_YUV420P10BE \ - || (x)==PIX_FMT_YUV444P10BE \ - || (x)==PIX_FMT_YUV422P10BE \ - || (x)==PIX_FMT_YUV420P16BE \ - || (x)==PIX_FMT_YUV422P16BE \ - || (x)==PIX_FMT_YUV444P16BE \ - ) +int ff_is_16bps(enum PixelFormat pix_fmt) +{ + return av_pix_fmt_descriptors[pix_fmt].comp[0].depth_minus1 == 15; +} -int sws_isSupportedInput(enum PixelFormat pix_fmt) +int ff_is_9_or_10bps(enum PixelFormat pix_fmt) +{ + return av_pix_fmt_descriptors[pix_fmt].comp[0].depth_minus1 == 8 + || av_pix_fmt_descriptors[pix_fmt].comp[0].depth_minus1 == 9; +} + +int ff_is_be(enum PixelFormat pix_fmt) +{ + return av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_BE; +} + +int ff_is_planar_yuv(enum PixelFormat pix_fmt) +{ + if (ff_is_yuv(pix_fmt)) { + for (int i = 0; i < av_pix_fmt_descriptors[pix_fmt].nb_components; i++) + if (av_pix_fmt_descriptors[pix_fmt].comp[i].plane != 0) + return 1; + } + return 0; +} + +int ff_is_yuv(enum PixelFormat pix_fmt) +{ + return (av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_CS_BITS) == PIX_FMT_YUV; +} + +int ff_is_gray(enum PixelFormat pix_fmt) +{ + // PIX_FMT_MONOBLACK/WHITE are because of implementation details. + // To SWScale they are considered somewhere between gray and rgb in actual handling. + return (av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_CS_BITS) == PIX_FMT_GRAY + && pix_fmt != PIX_FMT_MONOBLACK + && pix_fmt != PIX_FMT_MONOWHITE; +} + +int ff_is_rgb_in_int(enum PixelFormat pix_fmt) +{ + return ((av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_CS_BITS) == PIX_FMT_RGB + || pix_fmt == PIX_FMT_RGB32 + || pix_fmt == PIX_FMT_RGB32_1 + || pix_fmt == PIX_FMT_MONOBLACK + || pix_fmt == PIX_FMT_MONOWHITE) + && pix_fmt != PIX_FMT_BGR32 + && pix_fmt != PIX_FMT_BGR32_1 + && pix_fmt != PIX_FMT_PAL8; +} + +int ff_is_bgr_in_int(enum PixelFormat pix_fmt) +{ + return ((av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_CS_BITS) == PIX_FMT_BGR + || pix_fmt == PIX_FMT_BGR32 + || pix_fmt == PIX_FMT_BGR32_1 + || pix_fmt == PIX_FMT_MONOBLACK + || pix_fmt == PIX_FMT_MONOWHITE) + && pix_fmt != PIX_FMT_RGB32 + && pix_fmt != PIX_FMT_RGB32_1 + && pix_fmt != PIX_FMT_PAL8; +} + +int ff_is_any_rgb(enum PixelFormat pix_fmt) +{ + return ff_is_rgb_in_int(pix_fmt) || ff_is_bgr_in_int(pix_fmt); +} + +int ff_has_alpha(enum PixelFormat pix_fmt) { - return isSupportedIn(pix_fmt); + return !!(av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_ALPHA); } -#define isSupportedOut(x) ( \ - (x)==PIX_FMT_YUV420P \ - || (x)==PIX_FMT_YUVA420P \ - || (x)==PIX_FMT_YUYV422 \ - || (x)==PIX_FMT_UYVY422 \ - || (x)==PIX_FMT_YUV444P \ - || (x)==PIX_FMT_YUV422P \ - || (x)==PIX_FMT_YUV411P \ - || (x)==PIX_FMT_YUVJ420P \ - || (x)==PIX_FMT_YUVJ422P \ - || (x)==PIX_FMT_YUVJ440P \ - || (x)==PIX_FMT_YUVJ444P \ - || isRGBinBytes(x) \ - || isBGRinBytes(x) \ - || (x)==PIX_FMT_RGB565LE \ - || (x)==PIX_FMT_RGB565BE \ - || (x)==PIX_FMT_RGB555LE \ - || (x)==PIX_FMT_RGB555BE \ - || (x)==PIX_FMT_RGB444LE \ - || (x)==PIX_FMT_RGB444BE \ - || (x)==PIX_FMT_BGR565LE \ - || (x)==PIX_FMT_BGR565BE \ - || (x)==PIX_FMT_BGR555LE \ - || (x)==PIX_FMT_BGR555BE \ - || (x)==PIX_FMT_BGR444LE \ - || (x)==PIX_FMT_BGR444BE \ - || (x)==PIX_FMT_RGB8 \ - || (x)==PIX_FMT_BGR8 \ - || (x)==PIX_FMT_RGB4_BYTE \ - || (x)==PIX_FMT_BGR4_BYTE \ - || (x)==PIX_FMT_RGB4 \ - || (x)==PIX_FMT_BGR4 \ - || (x)==PIX_FMT_MONOBLACK \ - || (x)==PIX_FMT_MONOWHITE \ - || (x)==PIX_FMT_NV12 \ - || (x)==PIX_FMT_NV21 \ - || (x)==PIX_FMT_GRAY16BE \ - || (x)==PIX_FMT_GRAY16LE \ - || (x)==PIX_FMT_GRAY8 \ - || (x)==PIX_FMT_YUV410P \ - || (x)==PIX_FMT_YUV440P \ - || (x)==PIX_FMT_YUV420P9LE \ - || (x)==PIX_FMT_YUV420P10LE \ - || (x)==PIX_FMT_YUV420P16LE \ - || (x)==PIX_FMT_YUV422P16LE \ - || (x)==PIX_FMT_YUV444P16LE \ - || (x)==PIX_FMT_YUV420P9BE \ - || (x)==PIX_FMT_YUV420P10BE \ - || (x)==PIX_FMT_YUV420P16BE \ - || (x)==PIX_FMT_YUV422P16BE \ - || (x)==PIX_FMT_YUV444P16BE \ - ) +int ff_is_packed(enum PixelFormat pix_fmt) +{ + return ff_is_any_rgb(pix_fmt) + || (ff_is_yuv(pix_fmt) && !ff_is_planar_yuv(pix_fmt)) + || pix_fmt == PIX_FMT_PAL8 || pix_fmt == PIX_FMT_Y400A; +} + +int ff_use_pal(enum PixelFormat pix_fmt) +{ + return (av_pix_fmt_descriptors[pix_fmt].flags & PIX_FMT_PAL) || pix_fmt == PIX_FMT_Y400A; +} + +int sws_isSupportedInput(enum PixelFormat pix_fmt) +{ + return pix_fmt==PIX_FMT_YUV420P + || pix_fmt==PIX_FMT_YUVA420P + || pix_fmt==PIX_FMT_YUYV422 + || pix_fmt==PIX_FMT_UYVY422 + || pix_fmt==PIX_FMT_RGB48BE + || pix_fmt==PIX_FMT_RGB48LE + || pix_fmt==PIX_FMT_RGB32 + || pix_fmt==PIX_FMT_RGB32_1 + || pix_fmt==PIX_FMT_BGR48BE + || pix_fmt==PIX_FMT_BGR48LE + || pix_fmt==PIX_FMT_BGR24 + || pix_fmt==PIX_FMT_BGR565LE + || pix_fmt==PIX_FMT_BGR565BE + || pix_fmt==PIX_FMT_BGR555LE + || pix_fmt==PIX_FMT_BGR555BE + || pix_fmt==PIX_FMT_BGR32 + || pix_fmt==PIX_FMT_BGR32_1 + || pix_fmt==PIX_FMT_RGB24 + || pix_fmt==PIX_FMT_RGB565LE + || pix_fmt==PIX_FMT_RGB565BE + || pix_fmt==PIX_FMT_RGB555LE + || pix_fmt==PIX_FMT_RGB555BE + || pix_fmt==PIX_FMT_GRAY8 + || pix_fmt==PIX_FMT_Y400A + || pix_fmt==PIX_FMT_YUV410P + || pix_fmt==PIX_FMT_YUV440P + || pix_fmt==PIX_FMT_NV12 + || pix_fmt==PIX_FMT_NV21 + || pix_fmt==PIX_FMT_GRAY16BE + || pix_fmt==PIX_FMT_GRAY16LE + || pix_fmt==PIX_FMT_YUV444P + || pix_fmt==PIX_FMT_YUV422P + || pix_fmt==PIX_FMT_YUV411P + || pix_fmt==PIX_FMT_YUVJ420P + || pix_fmt==PIX_FMT_YUVJ422P + || pix_fmt==PIX_FMT_YUVJ440P + || pix_fmt==PIX_FMT_YUVJ444P + || pix_fmt==PIX_FMT_PAL8 + || pix_fmt==PIX_FMT_BGR8 + || pix_fmt==PIX_FMT_RGB8 + || pix_fmt==PIX_FMT_BGR4_BYTE + || pix_fmt==PIX_FMT_RGB4_BYTE + || pix_fmt==PIX_FMT_YUV440P + || pix_fmt==PIX_FMT_MONOWHITE + || pix_fmt==PIX_FMT_MONOBLACK + || pix_fmt==PIX_FMT_YUV420P9LE + || pix_fmt==PIX_FMT_YUV444P9LE + || pix_fmt==PIX_FMT_YUV420P10LE + || pix_fmt==PIX_FMT_YUV422P10LE + || pix_fmt==PIX_FMT_YUV444P10LE + || pix_fmt==PIX_FMT_YUV420P16LE + || pix_fmt==PIX_FMT_YUV422P16LE + || pix_fmt==PIX_FMT_YUV444P16LE + || pix_fmt==PIX_FMT_YUV420P9BE + || pix_fmt==PIX_FMT_YUV444P9BE + || pix_fmt==PIX_FMT_YUV420P10BE + || pix_fmt==PIX_FMT_YUV444P10BE + || pix_fmt==PIX_FMT_YUV422P10BE + || pix_fmt==PIX_FMT_YUV420P16BE + || pix_fmt==PIX_FMT_YUV422P16BE + || pix_fmt==PIX_FMT_YUV444P16BE; +} int sws_isSupportedOutput(enum PixelFormat pix_fmt) { - return isSupportedOut(pix_fmt); + return pix_fmt==PIX_FMT_YUV420P + || pix_fmt==PIX_FMT_YUVA420P + || pix_fmt==PIX_FMT_YUYV422 + || pix_fmt==PIX_FMT_UYVY422 + || pix_fmt==PIX_FMT_YUV444P + || pix_fmt==PIX_FMT_YUV422P + || pix_fmt==PIX_FMT_YUV411P + || pix_fmt==PIX_FMT_YUVJ420P + || pix_fmt==PIX_FMT_YUVJ422P + || pix_fmt==PIX_FMT_YUVJ440P + || pix_fmt==PIX_FMT_YUVJ444P + || pix_fmt==PIX_FMT_RGB48BE + || pix_fmt==PIX_FMT_RGB48LE + || pix_fmt==PIX_FMT_RGBA + || pix_fmt==PIX_FMT_ARGB + || pix_fmt==PIX_FMT_RGB24 + || pix_fmt==PIX_FMT_BGR48BE + || pix_fmt==PIX_FMT_BGR48LE + || pix_fmt==PIX_FMT_BGRA + || pix_fmt==PIX_FMT_ABGR + || pix_fmt==PIX_FMT_BGR24 + || pix_fmt==PIX_FMT_RGB565LE + || pix_fmt==PIX_FMT_RGB565BE + || pix_fmt==PIX_FMT_RGB555LE + || pix_fmt==PIX_FMT_RGB555BE + || pix_fmt==PIX_FMT_RGB444LE + || pix_fmt==PIX_FMT_RGB444BE + || pix_fmt==PIX_FMT_BGR565LE + || pix_fmt==PIX_FMT_BGR565BE + || pix_fmt==PIX_FMT_BGR555LE + || pix_fmt==PIX_FMT_BGR555BE + || pix_fmt==PIX_FMT_BGR444LE + || pix_fmt==PIX_FMT_BGR444BE + || pix_fmt==PIX_FMT_RGB8 + || pix_fmt==PIX_FMT_BGR8 + || pix_fmt==PIX_FMT_RGB4_BYTE + || pix_fmt==PIX_FMT_BGR4_BYTE + || pix_fmt==PIX_FMT_RGB4 + || pix_fmt==PIX_FMT_BGR4 + || pix_fmt==PIX_FMT_MONOBLACK + || pix_fmt==PIX_FMT_MONOWHITE + || pix_fmt==PIX_FMT_NV12 + || pix_fmt==PIX_FMT_NV21 + || pix_fmt==PIX_FMT_GRAY16BE + || pix_fmt==PIX_FMT_GRAY16LE + || pix_fmt==PIX_FMT_GRAY8 + || pix_fmt==PIX_FMT_YUV410P + || pix_fmt==PIX_FMT_YUV440P + || pix_fmt==PIX_FMT_YUV420P9LE + || pix_fmt==PIX_FMT_YUV420P10LE + || pix_fmt==PIX_FMT_YUV420P16LE + || pix_fmt==PIX_FMT_YUV422P16LE + || pix_fmt==PIX_FMT_YUV444P16LE + || pix_fmt==PIX_FMT_YUV420P9BE + || pix_fmt==PIX_FMT_YUV420P10BE + || pix_fmt==PIX_FMT_YUV420P16BE + || pix_fmt==PIX_FMT_YUV422P16BE + || pix_fmt==PIX_FMT_YUV444P16BE; } extern const int32_t ff_yuv2rgb_coeffs[8][4]; @@ -792,11 +878,11 @@ int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) unscaled = (srcW == dstW && srcH == dstH); - if (!isSupportedIn(srcFormat)) { + if (!sws_isSupportedInput(srcFormat)) { av_log(c, AV_LOG_ERROR, "%s is not supported as input pixel format\n", sws_format_name(srcFormat)); return AVERROR(EINVAL); } - if (!isSupportedOut(dstFormat)) { + if (!sws_isSupportedOutput(dstFormat)) { av_log(c, AV_LOG_ERROR, "%s is not supported as output pixel format\n", sws_format_name(dstFormat)); return AVERROR(EINVAL); } -- 1.7.4.msysgit.0 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel