19#include <jxl/jxl_export.h>
24#include <jxl/version.h>
28#if defined(__cplusplus) || defined(c_plusplus)
453 void* parallel_runner_opaque);
624 const uint8_t* buffer,
size_t size);
696 const JxlPixelFormat* pixel_format,
const void* buffer,
size_t size);
752 void* (*get_buffer)(
void*
opaque,
size_t* size);
870 const void* (*get_color_channel_data_at)(
void*
opaque,
size_t xpos,
871 size_t ypos,
size_t xsize,
872 size_t ysize,
size_t* row_offset);
914 const void* (*get_extra_channel_data_at)(
void*
opaque,
size_t ec_index,
915 size_t xpos,
size_t ypos,
916 size_t xsize,
size_t ysize,
981 const JxlPixelFormat* pixel_format,
const void* buffer,
size_t size,
1054 const uint8_t* contents,
1148 const uint8_t* icc_profile,
1557 size_t xsize,
size_t ysize,
1559 const uint16_t* pixels);
1591#if defined(__cplusplus) || defined(c_plusplus)
Interface to allow the injection of different color management systems (CMSes, also called color mana...
Color Encoding definitions used by JPEG XL. All CIE units are for the standard 1931 2 degree observer...
char JxlBoxType[4]
Definition types.h:146
#define JXL_BOOL
Definition types.h:29
JXL_EXPORT int JxlEncoderGetRequiredCodestreamLevel(const JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetCodestreamLevel(JxlEncoder *enc, int level)
JXL_EXPORT JxlEncoderStatus JxlEncoderAddJPEGFrame(const JxlEncoderFrameSettings *frame_settings, const uint8_t *buffer, size_t size)
void(* JxlDebugImageCallback)(void *opaque, const char *label, size_t xsize, size_t ysize, const JxlColorEncoding *color, const uint16_t *pixels)
Definition encode.h:1556
JXL_EXPORT void JxlEncoderInitBlendInfo(JxlBlendInfo *blend_info)
JXL_EXPORT void JxlEncoderCloseInput(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetParallelRunner(JxlEncoder *enc, JxlParallelRunner parallel_runner, void *parallel_runner_opaque)
JXL_EXPORT void JxlEncoderCollectStats(JxlEncoderFrameSettings *frame_settings, JxlEncoderStats *stats)
struct JxlEncoderStatsStruct JxlEncoderStats
Definition stats.h:29
JXL_EXPORT JxlEncoderStatus JxlEncoderFrameSettingsSetOption(JxlEncoderFrameSettings *frame_settings, JxlEncoderFrameSettingId option, int64_t value)
struct JxlEncoderStruct JxlEncoder
Definition encode.h:47
JXL_EXPORT JxlEncoder * JxlEncoderCreate(const JxlMemoryManager *memory_manager)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetExtraChannelBuffer(const JxlEncoderFrameSettings *frame_settings, const JxlPixelFormat *pixel_format, const void *buffer, size_t size, uint32_t index)
JXL_EXPORT JxlEncoderStatus JxlEncoderProcessOutput(JxlEncoder *enc, uint8_t **next_out, size_t *avail_out)
JXL_EXPORT JxlEncoderStatus JxlEncoderUseContainer(JxlEncoder *enc, JXL_BOOL use_container)
JXL_EXPORT void JxlColorEncodingSetToSRGB(JxlColorEncoding *color_encoding, JXL_BOOL is_gray)
JXL_EXPORT void JxlEncoderSetCms(JxlEncoder *enc, JxlCmsInterface cms)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetFrameBitDepth(JxlEncoderFrameSettings *frame_settings, const JxlBitDepth *bit_depth)
JXL_EXPORT void JxlEncoderInitFrameHeader(JxlFrameHeader *frame_header)
JXL_EXPORT float JxlEncoderDistanceFromQuality(float quality)
JXL_EXPORT void JxlEncoderReset(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetFrameLossless(JxlEncoderFrameSettings *frame_settings, JXL_BOOL lossless)
JXL_EXPORT JxlEncoderStatus JxlEncoderFrameSettingsSetFloatOption(JxlEncoderFrameSettings *frame_settings, JxlEncoderFrameSettingId option, float value)
JXL_EXPORT JxlEncoderStatus JxlEncoderUseBoxes(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetOutputProcessor(JxlEncoder *enc, struct JxlEncoderOutputProcessor output_processor)
JXL_EXPORT void JxlEncoderInitBasicInfo(JxlBasicInfo *info)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetBasicInfo(JxlEncoder *enc, const JxlBasicInfo *info)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetColorEncoding(JxlEncoder *enc, const JxlColorEncoding *color)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetExtraChannelBlendInfo(JxlEncoderFrameSettings *frame_settings, size_t index, const JxlBlendInfo *blend_info)
JXL_EXPORT void JxlEncoderCloseBoxes(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetFrameDistance(JxlEncoderFrameSettings *frame_settings, float distance)
JxlEncoderStatus
Definition encode.h:62
JXL_EXPORT JxlEncoderStatus JxlEncoderSetUpsamplingMode(JxlEncoder *enc, int64_t factor, int64_t mode)
JXL_EXPORT void JxlEncoderAllowExpertOptions(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetFrameHeader(JxlEncoderFrameSettings *frame_settings, const JxlFrameHeader *frame_header)
JXL_EXPORT void JxlColorEncodingSetToLinearSRGB(JxlColorEncoding *color_encoding, JXL_BOOL is_gray)
JXL_EXPORT void JxlEncoderInitExtraChannelInfo(JxlExtraChannelType type, JxlExtraChannelInfo *info)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetExtraChannelDistance(JxlEncoderFrameSettings *frame_settings, size_t index, float distance)
JXL_EXPORT void JxlEncoderCloseFrames(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderAddImageFrame(const JxlEncoderFrameSettings *frame_settings, const JxlPixelFormat *pixel_format, const void *buffer, size_t size)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetICCProfile(JxlEncoder *enc, const uint8_t *icc_profile, size_t size)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetFrameName(JxlEncoderFrameSettings *frame_settings, const char *frame_name)
JXL_EXPORT void JxlEncoderSetDebugImageCallback(JxlEncoderFrameSettings *frame_settings, JxlDebugImageCallback callback, void *opaque)
JXL_EXPORT uint32_t JxlEncoderVersion(void)
JXL_EXPORT JxlEncoderFrameSettings * JxlEncoderFrameSettingsCreate(JxlEncoder *enc, const JxlEncoderFrameSettings *source)
JXL_EXPORT JxlEncoderError JxlEncoderGetError(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetExtraChannelName(JxlEncoder *enc, size_t index, const char *name, size_t size)
struct JxlEncoderFrameSettingsStruct JxlEncoderFrameSettings
Definition encode.h:57
JXL_EXPORT JxlEncoderStatus JxlEncoderAddBox(JxlEncoder *enc, const JxlBoxType type, const uint8_t *contents, size_t size, JXL_BOOL compress_box)
JXL_EXPORT JxlEncoderStatus JxlEncoderFlushInput(JxlEncoder *enc)
JxlEncoderError
Definition encode.h:83
JxlEncoderFrameSettingId
Definition encode.h:126
JXL_EXPORT void JxlEncoderDestroy(JxlEncoder *enc)
JXL_EXPORT JxlEncoderStatus JxlEncoderSetExtraChannelInfo(JxlEncoder *enc, size_t index, const JxlExtraChannelInfo *info)
JXL_EXPORT JxlEncoderStatus JxlEncoderStoreJPEGMetadata(JxlEncoder *enc, JXL_BOOL store_jpeg_metadata)
JXL_EXPORT JxlEncoderStatus JxlEncoderAddChunkedFrame(const JxlEncoderFrameSettings *frame_settings, JXL_BOOL is_last_frame, struct JxlChunkedFrameInputSource chunked_frame_input)
Adds a frame to the encoder using a chunked input source.
@ JXL_ENC_ERROR
Definition encode.h:70
@ JXL_ENC_NEED_MORE_OUTPUT
Definition encode.h:74
@ JXL_ENC_SUCCESS
Definition encode.h:66
@ JXL_ENC_ERR_NOT_SUPPORTED
Definition encode.h:110
@ JXL_ENC_ERR_JBRD
Definition encode.h:100
@ JXL_ENC_ERR_API_USAGE
Definition encode.h:116
@ JXL_ENC_ERR_OOM
Definition encode.h:95
@ JXL_ENC_ERR_OK
Definition encode.h:86
@ JXL_ENC_ERR_GENERIC
Definition encode.h:90
@ JXL_ENC_ERR_BAD_INPUT
Definition encode.h:104
@ JXL_ENC_FRAME_SETTING_DECODING_SPEED
Definition encode.h:138
@ JXL_ENC_FRAME_SETTING_JPEG_COMPRESS_BOXES
Definition encode.h:341
@ JXL_ENC_FRAME_SETTING_MODULAR_GROUP_SIZE
Definition encode.h:290
@ JXL_ENC_FRAME_SETTING_PROGRESSIVE_DC
Definition encode.h:248
@ JXL_ENC_FRAME_SETTING_EXTRA_CHANNEL_RESAMPLING
Definition encode.h:153
@ JXL_ENC_FRAME_SETTING_GROUP_ORDER_CENTER_X
Definition encode.h:220
@ JXL_ENC_FRAME_SETTING_USE_FULL_IMAGE_HEURISTICS
Definition encode.h:389
@ JXL_ENC_FRAME_SETTING_JPEG_KEEP_XMP
Definition encode.h:374
@ JXL_ENC_FRAME_SETTING_NOISE
Definition encode.h:177
@ JXL_ENC_FRAME_SETTING_ALREADY_DOWNSAMPLED
Definition encode.h:164
@ JXL_ENC_FRAME_SETTING_RESPONSIVE
Definition encode.h:230
@ JXL_ENC_FRAME_SETTING_JPEG_RECON_CFL
Definition encode.h:316
@ JXL_ENC_FRAME_SETTING_PATCHES
Definition encode.h:187
@ JXL_ENC_FRAME_SETTING_JPEG_KEEP_JUMBF
Definition encode.h:381
@ JXL_ENC_FRAME_SETTING_GROUP_ORDER
Definition encode.h:214
@ JXL_ENC_FRAME_SETTING_EPF
Definition encode.h:192
@ JXL_ENC_FRAME_SETTING_CHANNEL_COLORS_GLOBAL_PERCENT
Definition encode.h:254
@ JXL_ENC_FRAME_SETTING_RESAMPLING
Definition encode.h:146
@ JXL_ENC_FRAME_SETTING_DOTS
Definition encode.h:182
@ JXL_ENC_FRAME_SETTING_COLOR_TRANSFORM
Definition encode.h:277
@ JXL_ENC_FRAME_SETTING_EFFORT
Definition encode.h:132
@ JXL_ENC_FRAME_SETTING_MODULAR
Definition encode.h:203
@ JXL_ENC_FRAME_SETTING_MODULAR_COLOR_SPACE
Definition encode.h:286
@ JXL_ENC_FRAME_SETTING_KEEP_INVISIBLE
Definition encode.h:208
@ JXL_ENC_FRAME_SETTING_PHOTON_NOISE
Definition encode.h:171
@ JXL_ENC_FRAME_SETTING_BUFFERING
Definition encode.h:357
@ JXL_ENC_FRAME_SETTING_BROTLI_EFFORT
Definition encode.h:334
@ JXL_ENC_FRAME_SETTING_GROUP_ORDER_CENTER_Y
Definition encode.h:225
@ JXL_ENC_FRAME_SETTING_GABORISH
Definition encode.h:197
@ JXL_ENC_FRAME_SETTING_QPROGRESSIVE_AC
Definition encode.h:242
@ JXL_ENC_FRAME_SETTING_MODULAR_NB_PREV_CHANNELS
Definition encode.h:311
@ JXL_ENC_FRAME_SETTING_JPEG_KEEP_EXIF
Definition encode.h:366
@ JXL_ENC_FRAME_SETTING_FILL_ENUM
Definition encode.h:394
@ JXL_ENC_FRAME_SETTING_PROGRESSIVE_AC
Definition encode.h:236
@ JXL_ENC_FRAME_SETTING_MODULAR_MA_TREE_LEARNING_PERCENT
Definition encode.h:303
@ JXL_ENC_FRAME_SETTING_LOSSY_PALETTE
Definition encode.h:270
@ JXL_ENC_FRAME_SETTING_MODULAR_PREDICTOR
Definition encode.h:297
@ JXL_ENC_FRAME_SETTING_PALETTE_COLORS
Definition encode.h:265
@ JXL_ENC_FRAME_SETTING_CHANNEL_COLORS_GROUP_PERCENT
Definition encode.h:260
@ JXL_ENC_FRAME_INDEX_BOX
Definition encode.h:327
JxlParallelRetCode(* JxlParallelRunner)(void *runner_opaque, void *jpegxl_opaque, JxlParallelRunInit init, JxlParallelRunFunction func, uint32_t start_range, uint32_t end_range)
Definition parallel_runner.h:122
Abstraction functions used by JPEG XL to allocate memory.
API to collect various statistics from JXL encoder.
Definition codestream_header.h:95
Definition codestream_header.h:330
Definition cms_interface.h:227
Definition color_encoding.h:116
void * opaque
Definition encode.h:733
void(* seek)(void *opaque, uint64_t position)
Definition encode.h:775
void(* set_finalized_position)(void *opaque, uint64_t finalized_position)
Definition encode.h:788
void(* release_buffer)(void *opaque, size_t written_bytes)
Definition encode.h:763
Definition memory_manager.h:51
Data types for the JPEG XL API, for both encoding and decoding.