#ifndef COSMOPOLITAN_TOOL_VIZ_LIB_YCBCR_H_ #define COSMOPOLITAN_TOOL_VIZ_LIB_YCBCR_H_ #if !(__ASSEMBLER__ + __LINKER__ + 0) COSMOPOLITAN_C_START_ struct YCbCr; extern const double kBt601Primaries[3]; extern const double kBt709Primaries[3]; extern long magikarp_latency_; extern long ycbcr2rgb_latency_; void Y2Rgb(long yn, long xn, unsigned char[restrict 3][yn][xn], long yys, long yxs, const unsigned char[restrict yys][yxs], const int[4][4], const unsigned char[256]); void YCbCr2Rgb(long yn, long xn, unsigned char[restrict 3][yn][xn], long yys, long yxs, const unsigned char[restrict yys][yxs], long cys, long cxs, const unsigned char[restrict cys][cxs], const unsigned char[restrict cys][cxs], const int[4][4], const int[3][4], const unsigned char[256]); void YCbCrFree(struct YCbCr **); void YCbCrInit(struct YCbCr **, bool, int, double, const double[3], const double[3]); void *YCbCr2RgbScale(long dyn, long dxn, unsigned char[restrict 3][dyn][dxn], long yys, long yxs, unsigned char[restrict yys][yxs], long cys, long cxs, unsigned char[restrict cys][cxs], unsigned char[restrict cys][cxs], long, long, long, long, double, double, double, double, struct YCbCr **); COSMOPOLITAN_C_END_ #endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */ #endif /* COSMOPOLITAN_TOOL_VIZ_LIB_YCBCR_H_ */