yuv2packed2_fn yuv2packed2;
yuv2packedX_fn yuv2packedX;
- void (*lumToYV12)(uint8_t *dst, const uint8_t *src,
+ void (*lumToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3,
int width, uint32_t *pal); ///< Unscaled conversion of luma plane to YV12 for horizontal scaler.
- void (*alpToYV12)(uint8_t *dst, const uint8_t *src,
+ void (*alpToYV12)(uint8_t *dst, const uint8_t *src, const uint8_t *src2, const uint8_t *src3,
int width, uint32_t *pal); ///< Unscaled conversion of alpha plane to YV12 for horizontal scaler.
void (*chrToYV12)(uint8_t *dstU, uint8_t *dstV,
- const uint8_t *src1, const uint8_t *src2,
+ const uint8_t *src1, const uint8_t *src2, const uint8_t *src3,
int width, uint32_t *pal); ///< Unscaled conversion of chroma planes to YV12 for horizontal scaler.
/**
* Scale one horizontal line of input data using a bilinear filter
int filterSize);
/** @} */
- void (*hScale16)(int16_t *dst, int dstW, const uint16_t *src, int srcW,
- int xInc, const int16_t *filter, const int16_t *filterPos,
- long filterSize, int shift);
-
void (*lumConvertRange)(int16_t *dst, int width); ///< Color range conversion function for luma plane if needed.
void (*chrConvertRange)(int16_t *dst1, int16_t *dst2, int width); ///< Color range conversion function for chroma planes if needed.
|| (x)==PIX_FMT_BGR48LE \
|| (x)==PIX_FMT_RGB48BE \
|| (x)==PIX_FMT_RGB48LE \
+ || (x)==PIX_FMT_BGRA64BE \
+ || (x)==PIX_FMT_BGRA64LE \
+ || (x)==PIX_FMT_RGBA64BE \
+ || (x)==PIX_FMT_RGBA64LE \
|| (x)==PIX_FMT_YUV420P16LE \
|| (x)==PIX_FMT_YUV422P16LE \
|| (x)==PIX_FMT_YUV444P16LE \
|| (x)==PIX_FMT_YUV422P16BE \
|| (x)==PIX_FMT_YUV444P16BE \
)
+
+#define isPlanar(x) ( \
+ isPlanarYUV(x) \
+ || (x)==PIX_FMT_GBR24P \
+ )
+
#define isYUV(x) ( \
(x)==PIX_FMT_UYVY422 \
|| (x)==PIX_FMT_YUYV422 \
#define isRGBinInt(x) ( \
(x)==PIX_FMT_RGB48BE \
|| (x)==PIX_FMT_RGB48LE \
+ || (x)==PIX_FMT_RGBA64BE \
+ || (x)==PIX_FMT_RGBA64LE \
|| (x)==PIX_FMT_RGB32 \
|| (x)==PIX_FMT_RGB32_1 \
|| (x)==PIX_FMT_RGB24 \
#define isBGRinInt(x) ( \
(x)==PIX_FMT_BGR48BE \
|| (x)==PIX_FMT_BGR48LE \
+ || (x)==PIX_FMT_BGRA64BE \
+ || (x)==PIX_FMT_BGRA64LE \
|| (x)==PIX_FMT_BGR32 \
|| (x)==PIX_FMT_BGR32_1 \
|| (x)==PIX_FMT_BGR24 \
#define isRGBinBytes(x) ( \
(x)==PIX_FMT_RGB48BE \
|| (x)==PIX_FMT_RGB48LE \
+ || (x)==PIX_FMT_RGBA64BE \
+ || (x)==PIX_FMT_RGBA64LE \
|| (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_BGRA64BE \
+ || (x)==PIX_FMT_BGRA64LE \
|| (x)==PIX_FMT_BGRA \
|| (x)==PIX_FMT_ABGR \
|| (x)==PIX_FMT_BGR24 \
#define isAnyRGB(x) ( \
isRGBinInt(x) \
|| isBGRinInt(x) \
+ || (x)==PIX_FMT_GBR24P \
)
#define isALPHA(x) ( \
- (x)==PIX_FMT_BGR32 \
+ (x)==PIX_FMT_BGRA64BE \
+ || (x)==PIX_FMT_BGRA64LE \
+ || (x)==PIX_FMT_RGBA64BE \
+ || (x)==PIX_FMT_RGBA64LE \
+ || (x)==PIX_FMT_BGR32 \
|| (x)==PIX_FMT_BGR32_1 \
|| (x)==PIX_FMT_RGB32 \
|| (x)==PIX_FMT_RGB32_1 \
|| (x)==PIX_FMT_YUYV422 \
|| (x)==PIX_FMT_UYVY422 \
|| (x)==PIX_FMT_Y400A \
- || isAnyRGB(x) \
+ || isRGBinInt(x) \
+ || isBGRinInt(x) \
)
#define usePal(x) ((av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) || (x) == PIX_FMT_GRAY8A)