1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

swscale: use a (more correct) function for isPacked

This commit is contained in:
Clément Bœsch 2017-03-19 15:28:19 +01:00
parent 2b9a52bcca
commit ff6bc16c5a
2 changed files with 22 additions and 18 deletions

View File

@ -784,30 +784,15 @@ static av_always_inline int isALPHA(enum AVPixelFormat pix_fmt)
return desc->flags & AV_PIX_FMT_FLAG_ALPHA; return desc->flags & AV_PIX_FMT_FLAG_ALPHA;
} }
#if 1
#define isPacked(x) ( \
(x)==AV_PIX_FMT_PAL8 \
|| (x)==AV_PIX_FMT_YUYV422 \
|| (x)==AV_PIX_FMT_YVYU422 \
|| (x)==AV_PIX_FMT_UYVY422 \
|| (x)==AV_PIX_FMT_YA8 \
|| (x)==AV_PIX_FMT_YA16LE \
|| (x)==AV_PIX_FMT_YA16BE \
|| (x)==AV_PIX_FMT_AYUV64LE \
|| (x)==AV_PIX_FMT_AYUV64BE \
|| isRGBinInt(x) \
|| isBGRinInt(x) \
)
#else
static av_always_inline int isPacked(enum AVPixelFormat pix_fmt) static av_always_inline int isPacked(enum AVPixelFormat pix_fmt)
{ {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);
av_assert0(desc); av_assert0(desc);
return ((desc->nb_components >= 2 && !(desc->flags & AV_PIX_FMT_FLAG_PLANAR)) || return (desc->nb_components >= 2 && !(desc->flags & AV_PIX_FMT_FLAG_PLANAR)) ||
pix_fmt == AV_PIX_FMT_PAL8); pix_fmt == AV_PIX_FMT_PAL8 ||
pix_fmt == AV_PIX_FMT_MONOBLACK || pix_fmt == AV_PIX_FMT_MONOWHITE;
} }
#endif
static av_always_inline int isPlanar(enum AVPixelFormat pix_fmt) static av_always_inline int isPlanar(enum AVPixelFormat pix_fmt)
{ {
const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt);

View File

@ -594,6 +594,7 @@ Packed:
monob monob
pal8 pal8
uyvy422 uyvy422
uyyvyy411
bgr8 bgr8
bgr4 bgr4
bgr4_byte bgr4_byte
@ -621,6 +622,8 @@ Packed:
ya8 ya8
bgr48be bgr48be
bgr48le bgr48le
xyz12le
xyz12be
rgba64be rgba64be
rgba64le rgba64le
bgra64be bgra64be
@ -628,6 +631,22 @@ Packed:
yvyu422 yvyu422
ya16be ya16be
ya16le ya16le
0rgb
rgb0
0bgr
bgr0
bayer_bggr8
bayer_rggb8
bayer_gbrg8
bayer_grbg8
bayer_bggr16le
bayer_bggr16be
bayer_rggb16le
bayer_rggb16be
bayer_gbrg16le
bayer_gbrg16be
bayer_grbg16le
bayer_grbg16be
ayuv64le ayuv64le
ayuv64be ayuv64be