LIBJXL
Loading...
Searching...
No Matches
cms_interface.h
Go to the documentation of this file.
1/* Copyright (c) the JPEG XL Project Authors. All rights reserved.
2 *
3 * Use of this source code is governed by a BSD-style
4 * license that can be found in the LICENSE file.
5 */
6
18#ifndef JXL_CMS_INTERFACE_H_
19#define JXL_CMS_INTERFACE_H_
20
21#include <jxl/color_encoding.h>
22#include <jxl/types.h>
23
24#if defined(__cplusplus) || defined(c_plusplus)
25extern "C" {
26#endif
27
38 const uint8_t* icc_data,
39 size_t icc_size,
41 JXL_BOOL* cmyk);
42
45typedef struct {
47 struct {
48 const uint8_t* data;
49 size_t size;
50 } icc;
51
58
64
100typedef void* (*jpegxl_cms_init_func)(void* init_data, size_t num_threads,
101 size_t pixels_per_thread,
102 const JxlColorProfile* input_profile,
103 const JxlColorProfile* output_profile,
104 float intensity_target);
105
113typedef float* (*jpegxl_cms_get_buffer_func)(void* user_data, size_t thread);
114
138typedef JXL_BOOL (*jpegxl_cms_run_func)(void* user_data, size_t thread,
139 const float* input_buffer,
140 float* output_buffer,
141 size_t num_pixels);
142
146typedef void (*jpegxl_cms_destroy_func)(void*);
147
245
246#if defined(__cplusplus) || defined(c_plusplus)
247}
248#endif
249
250#endif /* JXL_CMS_INTERFACE_H_ */
251
Color Encoding definitions used by JPEG XL. All CIE units are for the standard 1931 2 degree observer...
JXL_BOOL(* jpegxl_cms_set_fields_from_icc_func)(void *user_data, const uint8_t *icc_data, size_t icc_size, JxlColorEncoding *c, JXL_BOOL *cmyk)
Definition cms_interface.h:37
JXL_BOOL(* jpegxl_cms_run_func)(void *user_data, size_t thread, const float *input_buffer, float *output_buffer, size_t num_pixels)
Definition cms_interface.h:138
float *(* jpegxl_cms_get_buffer_func)(void *user_data, size_t thread)
Definition cms_interface.h:113
void(* jpegxl_cms_destroy_func)(void *)
Definition cms_interface.h:146
void *(* jpegxl_cms_init_func)(void *init_data, size_t num_threads, size_t pixels_per_thread, const JxlColorProfile *input_profile, const JxlColorProfile *output_profile, float intensity_target)
Definition cms_interface.h:100
#define JXL_BOOL
Definition types.h:30
Definition cms_interface.h:224
jpegxl_cms_get_buffer_func get_src_buf
Definition cms_interface.h:236
jpegxl_cms_init_func init
Definition cms_interface.h:234
void * set_fields_data
Definition cms_interface.h:226
jpegxl_cms_destroy_func destroy
Definition cms_interface.h:243
jpegxl_cms_set_fields_from_icc_func set_fields_from_icc
Definition cms_interface.h:228
jpegxl_cms_get_buffer_func get_dst_buf
Definition cms_interface.h:238
jpegxl_cms_run_func run
Definition cms_interface.h:241
void * init_data
Definition cms_interface.h:231
Definition color_encoding.h:116
Definition cms_interface.h:45
JxlColorEncoding color_encoding
Definition cms_interface.h:57
size_t num_channels
Definition cms_interface.h:62
Data types for the JPEG XL API, for both encoding and decoding.