decode.h File Reference
JPEG XL library (libjxl) » JPEG XL Decoder

Decoding API for JPEG XL. More...

`#include <stddef.h>`
`#include <stdint.h>`
`#include "jxl/codestream_header.h"`
`#include "jxl/color_encoding.h"`
`#include "jxl/jxl_export.h"`
`#include "jxl/memory_manager.h"`
`#include "jxl/parallel_runner.h"`
`#include "jxl/types.h"`
`#include "jxl/version.h"`
Include dependency graph for decode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Typedefs

typedef struct JxlDecoderStruct | JxlDecoder
typedef void(* | JxlImageOutCallback) (void *opaque, size_t x, size_t y, size_t num_pixels, const void *pixels)
typedef void *(* | JxlImageOutInitCallback) (void *init_opaque, size_t num_threads, size_t num_pixels_per_thread)
typedef void(* | JxlImageOutRunCallback) (void *run_opaque, size_t thread_id, size_t x, size_t y, size_t num_pixels, const void *pixels)
typedef void(* | JxlImageOutDestroyCallback) (void *run_opaque)

## Enumerations

enum | JxlSignature { JXL_SIG_NOT_ENOUGH_BYTES = 0 , JXL_SIG_INVALID = 1 , JXL_SIG_CODESTREAM = 2 , JXL_SIG_CONTAINER = 3 }

enum

JxlDecoderStatus {
JXL_DEC_SUCCESS = 0 , JXL_DEC_ERROR = 1 , JXL_DEC_NEED_MORE_INPUT = 2 , JXL_DEC_NEED_PREVIEW_OUT_BUFFER = 3 ,
JXL_DEC_NEED_DC_OUT_BUFFER = 4 , JXL_DEC_NEED_IMAGE_OUT_BUFFER = 5 , JXL_DEC_JPEG_NEED_MORE_OUTPUT = 6 , JXL_DEC_BOX_NEED_MORE_OUTPUT = 7 ,
JXL_DEC_BASIC_INFO = 0x40 , JXL_DEC_EXTENSIONS = 0x80 , JXL_DEC_COLOR_ENCODING = 0x100 , JXL_DEC_PREVIEW_IMAGE = 0x200 ,
JXL_DEC_FRAME = 0x400 , JXL_DEC_DC_IMAGE = 0x800 , JXL_DEC_FULL_IMAGE = 0x1000 , JXL_DEC_JPEG_RECONSTRUCTION = 0x2000 ,
JXL_DEC_BOX = 0x4000 , JXL_DEC_FRAME_PROGRESSION = 0x8000
}

enum | JxlColorProfileTarget { JXL_COLOR_PROFILE_TARGET_ORIGINAL = 0 , JXL_COLOR_PROFILE_TARGET_DATA = 1 }

## Functions

JXL_EXPORT uint32_t | JxlDecoderVersion (void)
JXL_EXPORT JxlSignature | JxlSignatureCheck (const uint8_t *buf, size_t len)
JXL_EXPORT JxlDecoder * | JxlDecoderCreate (const JxlMemoryManager *memory_manager)
JXL_EXPORT void | JxlDecoderReset (JxlDecoder *dec)
JXL_EXPORT void | JxlDecoderDestroy (JxlDecoder *dec)
JXL_EXPORT void | JxlDecoderRewind (JxlDecoder *dec)
JXL_EXPORT void | JxlDecoderSkipFrames (JxlDecoder *dec, size_t amount)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSkipCurrentFrame (JxlDecoder *dec)
JXL_EXPORT JXL_DEPRECATED JxlDecoderStatus | JxlDecoderDefaultPixelFormat (const JxlDecoder *dec, JxlPixelFormat *format)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetParallelRunner (JxlDecoder *dec, JxlParallelRunner parallel_runner, void *parallel_runner_opaque)
JXL_EXPORT size_t | JxlDecoderSizeHintBasicInfo (const JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSubscribeEvents (JxlDecoder *dec, int events_wanted)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetKeepOrientation (JxlDecoder *dec, JXL_BOOL skip_reorientation)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetUnpremultiplyAlpha (JxlDecoder *dec, JXL_BOOL unpremul_alpha)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetRenderSpotcolors (JxlDecoder *dec, JXL_BOOL render_spotcolors)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetCoalescing (JxlDecoder *dec, JXL_BOOL coalescing)
JXL_EXPORT JxlDecoderStatus | JxlDecoderProcessInput (JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetInput (JxlDecoder *dec, const uint8_t *data, size_t size)
JXL_EXPORT size_t | JxlDecoderReleaseInput (JxlDecoder *dec)
JXL_EXPORT void | JxlDecoderCloseInput (JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetBasicInfo (const JxlDecoder *dec, JxlBasicInfo *info)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetExtraChannelInfo (const JxlDecoder *dec, size_t index, JxlExtraChannelInfo *info)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetExtraChannelName (const JxlDecoder *dec, size_t index, char *name, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetColorAsEncodedProfile (const JxlDecoder *dec, const JxlPixelFormat *unused_format, JxlColorProfileTarget target, JxlColorEncoding *color_encoding)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetICCProfileSize (const JxlDecoder *dec, const JxlPixelFormat *unused_format, JxlColorProfileTarget target, size_t *size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetColorAsICCProfile (const JxlDecoder *dec, const JxlPixelFormat *unused_format, JxlColorProfileTarget target, uint8_t *icc_profile, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetPreferredColorProfile (JxlDecoder *dec, const JxlColorEncoding *color_encoding)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetDesiredIntensityTarget (JxlDecoder *dec, float desired_intensity_target)
JXL_EXPORT JxlDecoderStatus | JxlDecoderPreviewOutBufferSize (const JxlDecoder *dec, const JxlPixelFormat *format, size_t *size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetPreviewOutBuffer (JxlDecoder *dec, const JxlPixelFormat *format, void *buffer, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetFrameHeader (const JxlDecoder *dec, JxlFrameHeader *header)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetFrameName (const JxlDecoder *dec, char *name, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetExtraChannelBlendInfo (const JxlDecoder *dec, size_t index, JxlBlendInfo *blend_info)
JXL_EXPORT JXL_DEPRECATED JxlDecoderStatus | JxlDecoderDCOutBufferSize (const JxlDecoder *dec, const JxlPixelFormat *format, size_t *size)
JXL_EXPORT JXL_DEPRECATED JxlDecoderStatus | JxlDecoderSetDCOutBuffer (JxlDecoder *dec, const JxlPixelFormat *format, void *buffer, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderImageOutBufferSize (const JxlDecoder *dec, const JxlPixelFormat *format, size_t *size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetImageOutBuffer (JxlDecoder *dec, const JxlPixelFormat *format, void *buffer, size_t size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetImageOutCallback (JxlDecoder *dec, const JxlPixelFormat *format, JxlImageOutCallback callback, void *opaque)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetMultithreadedImageOutCallback (JxlDecoder *dec, const JxlPixelFormat *format, JxlImageOutInitCallback init_callback, JxlImageOutRunCallback run_callback, JxlImageOutDestroyCallback destroy_callback, void *init_opaque)
JXL_EXPORT JxlDecoderStatus | JxlDecoderExtraChannelBufferSize (const JxlDecoder *dec, const JxlPixelFormat *format, size_t *size, uint32_t index)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetExtraChannelBuffer (JxlDecoder *dec, const JxlPixelFormat *format, void *buffer, size_t size, uint32_t index)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetJPEGBuffer (JxlDecoder *dec, uint8_t *data, size_t size)
JXL_EXPORT size_t | JxlDecoderReleaseJPEGBuffer (JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetBoxBuffer (JxlDecoder *dec, uint8_t *data, size_t size)
JXL_EXPORT size_t | JxlDecoderReleaseBoxBuffer (JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetDecompressBoxes (JxlDecoder *dec, JXL_BOOL decompress)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetBoxType (JxlDecoder *dec, JxlBoxType type, JXL_BOOL decompressed)
JXL_EXPORT JxlDecoderStatus | JxlDecoderGetBoxSizeRaw (const JxlDecoder *dec, uint64_t *size)
JXL_EXPORT JxlDecoderStatus | JxlDecoderSetProgressiveDetail (JxlDecoder *dec, JxlProgressiveDetail detail)
JXL_EXPORT size_t | JxlDecoderGetIntendedDownsamplingRatio (JxlDecoder *dec)
JXL_EXPORT JxlDecoderStatus | JxlDecoderFlushImage (JxlDecoder *dec)

## Detailed Description

Decoding API for JPEG XL.