swscale: use a (more correct) function for isPacked

pull/244/merge
Clément Bœsch 8 years ago
parent 2b9a52bcca
commit ff6bc16c5a
  1. 21
      libswscale/swscale_internal.h
  2. 19
      tests/ref/fate/sws-pixdesc-query

@ -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);

@ -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

Loading…
Cancel
Save