| /* |
| * JPEG XL Common Header Definitions |
| * Copyright (c) 2023 Leo Izen <leo.izen@gmail.com> |
| * |
| * This file is part of FFmpeg. |
| * |
| * FFmpeg is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * FFmpeg is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with FFmpeg; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| #ifndef AVCODEC_JPEGXL_H |
| #define AVCODEC_JPEGXL_H |
| |
| #define FF_JPEGXL_CODESTREAM_SIGNATURE_LE 0x0aff |
| #define FF_JPEGXL_CONTAINER_SIGNATURE_LE 0x204c584a0c000000 |
| #define FF_JPEGXL_CODESTREAM_SIGNATURE_BE 0xff0a |
| #define FF_JPEGXL_CONTAINER_SIGNATURE_BE 0x0000000c4a584c20 |
| |
| typedef enum FFJXLFrameEncoding { |
| JPEGXL_ENC_VARDCT, |
| JPEGXL_ENC_MODULAR |
| } FFJXLFrameEncoding; |
| |
| typedef enum FFJXLFrameType { |
| JPEGXL_FRAME_REGULAR, |
| JPEGXL_FRAME_LF, |
| JPEGXL_FRAME_REFERENCE_ONLY, |
| JPEGXL_FRAME_SKIP_PROGRESSIVE |
| } FFJXLFrameType; |
| |
| typedef enum FFJXLBlendMode { |
| JPEGXL_BM_REPLACE, |
| JPEGXL_BM_ADD, |
| JPEGXL_BM_BLEND, |
| JPEGXL_BM_MULADD, |
| JPEGXL_BM_MUL |
| } FFJXLBlendMode; |
| |
| typedef enum FFJXLExtraChannelType { |
| JPEGXL_CT_ALPHA = 0, |
| JPEGXL_CT_DEPTH, |
| JPEGXL_CT_SPOT_COLOR, |
| JPEGXL_CT_SELECTION_MASK, |
| JPEGXL_CT_BLACK, |
| JPEGXL_CT_CFA, |
| JPEGXL_CT_THERMAL, |
| JPEGXL_CT_NON_OPTIONAL = 15, |
| JPEGXL_CT_OPTIONAL |
| } FFJXLExtraChannelType; |
| |
| typedef enum FFJXLColorSpace { |
| JPEGXL_CS_RGB = 0, |
| JPEGXL_CS_GRAY, |
| JPEGXL_CS_XYB, |
| JPEGXL_CS_UNKNOWN |
| } FFJXLColorSpace; |
| |
| typedef enum FFJXLWhitePoint { |
| JPEGXL_WP_D65 = 1, |
| JPEGXL_WP_CUSTOM, |
| JPEGXL_WP_E = 10, |
| JPEGXL_WP_DCI = 11 |
| } FFJXLWhitePoint; |
| |
| typedef enum FFJXLPrimaries { |
| JPEGXL_PR_SRGB = 1, |
| JPEGXL_PR_CUSTOM, |
| JPEGXL_PR_2100 = 9, |
| JPEGXL_PR_P3 = 11, |
| } FFJXLPrimaries; |
| |
| typedef enum FFJXLTransferCharacteristic { |
| JPEGXL_TR_BT709 = 1, |
| JPEGXL_TR_UNKNOWN, |
| JPEGXL_TR_LINEAR = 8, |
| JPEGXL_TR_SRGB = 13, |
| JPEGXL_TR_PQ = 16, |
| JPEGXL_TR_DCI, |
| JPEGXL_TR_HLG, |
| JPEGXL_TR_GAMMA = 1 << 24, |
| } FFJXLTransferCharacteristic; |
| |
| #endif /* AVCODEC_JPEGXL_H */ |