-#define RGB_PIXEL_FORMATS PIX_FMT_RGB24, PIX_FMT_RGBA, \
- PIX_FMT_RGB48
-
-#define GRAY_PIXEL_FORMATS PIX_FMT_GRAY8, PIX_FMT_Y400A, \
- PIX_FMT_GRAY16
-
-#define YUV_PIXEL_FORMATS PIX_FMT_YUV410P, PIX_FMT_YUV411P, \
- PIX_FMT_YUVA420P, \
- PIX_FMT_YUV420P, PIX_FMT_YUV422P, \
- PIX_FMT_YUV440P, PIX_FMT_YUV444P, \
- PIX_FMT_YUV420P9, PIX_FMT_YUV422P9, \
- PIX_FMT_YUV444P9, \
- PIX_FMT_YUV420P10, PIX_FMT_YUV422P10, \
- PIX_FMT_YUV444P10, \
- PIX_FMT_YUV420P16, PIX_FMT_YUV422P16, \
- PIX_FMT_YUV444P16
-
-static const enum PixelFormat rgb_pix_fmts[] = {RGB_PIXEL_FORMATS};
-static const enum PixelFormat gray_pix_fmts[] = {GRAY_PIXEL_FORMATS};
-static const enum PixelFormat yuv_pix_fmts[] = {YUV_PIXEL_FORMATS};
-static const enum PixelFormat any_pix_fmts[] = {RGB_PIXEL_FORMATS,
- GRAY_PIXEL_FORMATS,
- YUV_PIXEL_FORMATS};
-
-typedef struct {
+#define RGB_PIXEL_FORMATS AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, \
+ AV_PIX_FMT_RGB48, AV_PIX_FMT_RGBA64
+
+#define GRAY_PIXEL_FORMATS AV_PIX_FMT_GRAY8, AV_PIX_FMT_YA8, \
+ AV_PIX_FMT_GRAY16
+
+#define YUV_PIXEL_FORMATS AV_PIX_FMT_YUV410P, AV_PIX_FMT_YUV411P, \
+ AV_PIX_FMT_YUVA420P, \
+ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, \
+ AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUV444P, \
+ AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUV422P9, \
+ AV_PIX_FMT_YUV444P9, \
+ AV_PIX_FMT_YUV420P10, AV_PIX_FMT_YUV422P10, \
+ AV_PIX_FMT_YUV444P10, \
+ AV_PIX_FMT_YUV420P16, AV_PIX_FMT_YUV422P16, \
+ AV_PIX_FMT_YUV444P16
+
+#define XYZ_PIXEL_FORMATS AV_PIX_FMT_XYZ12
+
+static const enum AVPixelFormat rgb_pix_fmts[] = {
+ RGB_PIXEL_FORMATS
+};
+static const enum AVPixelFormat gray_pix_fmts[] = {
+ GRAY_PIXEL_FORMATS
+};
+static const enum AVPixelFormat yuv_pix_fmts[] = {
+ YUV_PIXEL_FORMATS
+};
+static const enum AVPixelFormat any_pix_fmts[] = {
+ RGB_PIXEL_FORMATS, GRAY_PIXEL_FORMATS, YUV_PIXEL_FORMATS, XYZ_PIXEL_FORMATS
+};
+
+typedef struct LibOpenJPEGContext {