mirror of https://git.ffmpeg.org/ffmpeg.git
95 lines
2.5 KiB
C
95 lines
2.5 KiB
C
/*
|
|
* 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 */
|