grok.h File Reference
`#include "grk_config.h"`
`#include <stdint.h>`
`#include <stdio.h>`
`#include <stdbool.h>`
`#include <limits.h>`

Go to the source code of this file.

## Classes

struct | _grk_object
| Grok ref-counted object. More...
struct | _grk_progression
| Progression order change. More...
struct | _grk_raw_comp_cparameters
| RAW component compress parameters. More...
struct | _grk_raw_cparameters
| RAW image compress parameters. More...
struct | _grk_component_mapping_comp
| Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box. More...
struct | _grk_palette_data
| Palette data. More...
struct | _grk_channel_description
| Channel definition: channel index, type, association. More...
struct | _grk_channel_definition
| Channel definitions and number of definitions. More...
struct | _grk_color
| ICC profile, palette, channel definition. More...
struct | _grk_asoc
| Association box info. More...
struct | _grk_precision
| Precision. More...
struct | _grk_header_info
| Header info. More...
struct | _grk_io_buf
struct | _grk_io_init
struct | _grk_stream_params
| JPEG 2000 stream parameters - either file or buffer. More...
struct | _grk_decompress_core_params
| Core decompression parameters. More...
struct | _grk_decompress_params
| Decompression parameters. More...
struct | _grk_image_comp
| Image component. More...
struct | _grk_image_meta
struct | _grk_image
struct | _grk_plugin_pass
| Plugin pass. More...
struct | _grk_plugin_code_block
| Plugin code block. More...
struct | _grk_plugin_precinct
| Plugin precinct. More...
struct | _grk_plugin_band
| Plugin band. More...
struct | _grk_plugin_resolution
| Plugin resolution. More...
struct | grk_plugin_tile_component
| Plugin tile component. More...
struct | _grk_plugin_tile
| Plugin tile. More...
struct | _grk_cparameters
| Compress parameters. More...
struct | _grk_plugin_load_info
struct | _grk_plugin_init_info
struct | grk_plugin_compress_user_callback_info
struct | _grk_plugin_decompress_callback_info

## Macros

#define | GRK_CALLCONV
#define | GRK_API __attribute__((visibility("default")))
#define | GRK_NUM_COMMENTS_SUPPORTED 256
#define | GRK_NUM_ASOC_BOXES_SUPPORTED 256
#define | GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2)
#define | GRK_PATH_LEN 4096 /* Maximum allowed filename size */
#define | GRK_MAX_LAYERS 100 /* Maximum number of quality layers */
#define | GRK_J2K_MAX_DECOMP_LVLS
#define | GRK_J2K_MAXRLVLS (GRK_J2K_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/
#define | GRK_J2K_MAXBANDS (3 * GRK_J2K_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */
#define | GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)
#define | GRK_DECODE_HEADER (1 << 0)
#define | GRK_DECODE_T2 (1 << 1)
#define | GRK_DECODE_T1 (1 << 2)
#define | GRK_DECODE_POST_T1 (1 << 3)
#define | GRK_PLUGIN_DECODE_CLEAN (1 << 4)
#define | GRK_DECODE_ALL
#define | GRK_MAX_SUPPORTED_IMAGE_PRECISION 16 /* Maximum supported precision in library */
#define | GRK_IMG_INFO 1 /* Basic image information provided to the user */
#define | GRK_J2K_MH_INFO 2 /* Codestream information based only on the main header */
#define | GRK_J2K_TH_INFO 4 /* Tile information based on the current tile header */
#define | GRK_J2K_TCH_INFO 8
| Tile/Component information of all tiles.
#define | GRK_J2K_MH_IND 16
| Codestream index based only on the main header.
#define | GRK_J2K_TH_IND 32
| Tile index based on the current tile.
#define | GRK_JP2_INFO 128
| JP2 file information.
#define | GRK_JP2_IND 256
| JP2 file index.
#define | GRK_CBLKSTY_LAZY 0x001
| Selective arithmetic coding bypass.
#define | GRK_CBLKSTY_RESET 0x002
| Reset context probabilities on coding pass boundaries.
#define | GRK_CBLKSTY_TERMALL 0x004
| Termination on each coding pass.
#define | GRK_CBLKSTY_VSC 0x008
| Vertical stripe causal context.
#define | GRK_CBLKSTY_PTERM 0x010
| Predictable termination.
#define | GRK_CBLKSTY_SEGSYM 0x020
| Segmentation symbols are used.
#define | GRK_CBLKSTY_HT 0x040
| high throughput block coding
#define | GRK_CBLKSTY_HT_MIXED 0x080
| high throughput block coding - mixed
#define | GRK_CBLKSTY_HT_PHLD 0x100
| high throughput block coding - placeholder
#define | GRK_JPH_RSIZ_FLAG 0x4000
| for JPH, bit 14 of RSIZ must be set to 1
#define | GRK_PROFILE_NONE 0x0000 /** no profile, conform to 15444-1 */
#define | GRK_PROFILE_0 0x0001 /** Profile 0 as described in 15444-1,Table A.45 */
#define | GRK_PROFILE_1 0x0002 /** Profile 1 as described in 15444-1,Table A.45 */
#define | GRK_PROFILE_CINEMA_2K 0x0003 /** 2K cinema profile defined in 15444-1 AMD1 */
#define | GRK_PROFILE_CINEMA_4K 0x0004 /** 4K cinema profile defined in 15444-1 AMD1 */
#define | GRK_PROFILE_CINEMA_S2K 0x0005 /** Scalable 2K cinema profile defined in 15444-1 AMD2 */
#define | GRK_PROFILE_CINEMA_S4K 0x0006 /** Scalable 4K cinema profile defined in 15444-1 AMD2 */
#define | GRK_PROFILE_CINEMA_LTS 0x0007 /** Long term storage cinema profile defined in 15444-1 AMD2 */
#define | GRK_PROFILE_BC_SINGLE 0x0100 /** Single Tile Broadcast profile defined in 15444-1 AMD3 */
#define | GRK_PROFILE_BC_MULTI 0x0200 /** Multi Tile Broadcast profile defined in 15444-1 AMD3 */
#define | GRK_PROFILE_BC_MULTI_R 0x0300 /** Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 */
#define | GRK_PROFILE_BC_MASK 0x030F /** Mask for broadcast profile including main level */
#define | GRK_PROFILE_IMF_2K 0x0400 /** 2K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_IMF_4K 0x0500 /** 4K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_IMF_8K 0x0600 /** 8K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_IMF_2K_R 0x0700 /** 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_IMF_4K_R 0x0800 /** 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_IMF_8K_R 0x0900 /** 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */
#define | GRK_PROFILE_MASK 0x0FFF /** Mask for profile bits */
#define | GRK_PROFILE_PART2 0x8000 /** At least 1 extension defined in 15444-2 (Part-2) */
#define | GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF
#define | GRK_EXTENSION_NONE 0x0000 /** No Part-2 extension */
| JPEG 2000 Part-2 extensions.
#define | GRK_EXTENSION_MCT 0x0100 /** Custom MCT support */
#define | GRK_IS_PART2(v) ((v)&GRK_PROFILE_PART2)
#define | GRK_IS_CINEMA(v) (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))
#define | GRK_IS_STORAGE(v) ((v) == GRK_PROFILE_CINEMA_LTS)
#define | GRK_GET_IMF_OR_BROADCAST_PROFILE(v) ((v)&0x0f00) /** Extract profile without mainlevel/sublevel */
#define | GRK_LEVEL_MAX 11U /** Maximum (main) level */
#define | GRK_GET_LEVEL(v) ((v)&0xf) /** Extract (main) level */
#define | GRK_IS_BROADCAST(v)
#define | GRK_BROADCAST_LEVEL_1_MBITSSEC 200U /** Mbits/sec for level 1 */
#define | GRK_BROADCAST_LEVEL_2_MBITSSEC 200U /** Mbits/sec for level 2 */
#define | GRK_BROADCAST_LEVEL_3_MBITSSEC 200U /** Mbits/sec for level 3 */
#define | GRK_BROADCAST_LEVEL_4_MBITSSEC 400U /** Mbits/sec for level 4 */
#define | GRK_BROADCAST_LEVEL_5_MBITSSEC 800U /** Mbits/sec for level 5 */
#define | GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U /** Mbits/sec for level 6 */
#define | GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U /** Mbits/sec for level 7 */
#define | GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U /** Mbits/sec for level 8 */
#define | GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U /** Mbits/sec for level 9 */
#define | GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U /** Mbits/sec for level 10 */
#define | GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U /** Mbits/sec for level 11 */
#define | GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U /** MSamples/sec for level 1 */
#define | GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for level 2 */
#define | GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for level 3 */
#define | GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for level 4 */
#define | GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for level 5 */
#define | GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for level 6 */
#define | GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for level 7 */
#define | GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for level 8 */
#define | GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for level 9 */
#define | GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for level 10 */
#define | GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for level 11 */
#define | GRK_IS_IMF(v)
#define | GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U /** MSamples/sec for main level 1 */
#define | GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for main level 2 */
#define | GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for main level 3 */
#define | GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for main level 4 */
#define | GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for main level 5 */
#define | GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for main level 6 */
#define | GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for main level 7 */
#define | GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for main level 8 */
#define | GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for main level 9 */
#define | GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for main level 10 */
#define | GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for main level 11 */
#define | GRK_IMF_SUBLEVEL_MAX 9U /** Maximum IMF sublevel */
#define | GRK_GET_IMF_SUBLEVEL(v) (((v) >> 4) & 0xf) /** Extract IMF sub level */
#define | GRK_IMF_SUBLEVEL_1_MBITSSEC 200U /** Mbits/s for IMF sub level 1 */
| Maximum compressed bit rate (Mbits/s) per IMF sub level.
#define | GRK_IMF_SUBLEVEL_2_MBITSSEC 400U /** Mbits/s for IMF sub level 2 */
#define | GRK_IMF_SUBLEVEL_3_MBITSSEC 800U /** Mbits/s for IMF sub level 3 */
#define | GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U /** Mbits/s for IMF sub level 4 */
#define | GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U /** Mbits/s for IMF sub level 5 */
#define | GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U /** Mbits/s for IMF sub level 6 */
#define | GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U /** Mbits/s for IMF sub level 7 */
#define | GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U /** Mbits/s for IMF sub level 8 */
#define | GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U /** Mbits/s for IMF sub level 9 */
#define | GRK_CINEMA_24_CS 1302083U /** Maximum code stream length @ 24fps */
| JPEG 2000 cinema profile code stream and component size limits.
#define | GRK_CINEMA_48_CS 651041U /** Maximum code stream length @ 48fps */
#define | GRK_CINEMA_24_COMP 1041666U /** Maximum size per color component @ 24fps */
#define | GRK_CINEMA_48_COMP 520833U /** Maximum size per color component @ 48fps */
#define | GRK_CUSTOM_CIELAB_SPACE 0x0
#define | GRK_DEFAULT_CIELAB_SPACE 0x44454600 /* 'DEF' */
#define | GRK_CIE_DAY ((((uint32_t)'C') << 24) + (((uint32_t)'T') << 16))
#define | GRK_CIE_D50 ((uint32_t)0x00443530)
#define | GRK_CIE_D65 ((uint32_t)0x00443635)
#define | GRK_CIE_D75 ((uint32_t)0x00443735)
#define | GRK_CIE_SA ((uint32_t)0x00005341)
#define | GRK_CIE_SC ((uint32_t)0x00005343)
#define | GRK_CIE_F2 ((uint32_t)0x00004632)
#define | GRK_CIE_F7 ((uint32_t)0x00004637)
#define | GRK_CIE_F11 ((uint32_t)0x00463131)
#define | GRK_RANDOM_ACCESS_PLT 1 /* use PLT marker if present */
| Toggle random access markers.
#define | GRK_RANDOM_ACCESS_TLM 2 /* use TLM marker if present */
#define | GRK_RANDOM_ACCESS_PLM 4 /* use PLM marker if present */
#define | GRK_PLUGIN_STATE_NO_DEBUG 0x0
#define | GRK_PLUGIN_STATE_DEBUG 0x1
#define | GRK_PLUGIN_STATE_PRE_TR1 0x2
#define | GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4
#define | GRK_PLUGIN_STATE_MCT_ONLY 0x8

## Typedefs

typedef enum _GRK_PROG_ORDER | GRK_PROG_ORDER
| Progression order.
typedef enum _GRK_COLOR_SPACE | GRK_COLOR_SPACE
| Supported color spaces.
typedef enum _GRK_ENUM_COLOUR_SPACE | GRK_ENUM_COLOUR_SPACE
typedef void(* | grk_msg_callback) (const char *msg, void *client_data)
| Logging callback.
typedef struct _grk_object | grk_object
| Grok ref-counted object.
typedef struct _grk_progression | grk_progression
| Progression order change.
typedef struct _grk_raw_comp_cparameters | grk_raw_comp_cparameters
| RAW component compress parameters.
typedef struct _grk_raw_cparameters | grk_raw_cparameters
| RAW image compress parameters.
typedef enum _GRK_RATE_CONTROL_ALGORITHM | GRK_RATE_CONTROL_ALGORITHM
| Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points.
typedef enum _GRK_SUPPORTED_FILE_FMT | GRK_SUPPORTED_FILE_FMT
| All supported file formats.
typedef struct _grk_component_mapping_comp | grk_component_mapping_comp
| Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box.
typedef struct _grk_palette_data | grk_palette_data
| Palette data.
typedef enum _GRK_CHANNEL_TYPE | GRK_CHANNEL_TYPE
typedef enum _GRK_CHANNEL_ASSOC | GRK_CHANNEL_ASSOC
typedef struct _grk_channel_description | grk_channel_description
| Channel definition: channel index, type, association.
typedef struct _grk_channel_definition | grk_channel_definition
| Channel definitions and number of definitions.
typedef struct _grk_color | grk_color
| ICC profile, palette, channel definition.
typedef struct _grk_asoc | grk_asoc
| Association box info.
typedef enum _grk_precision_mode | grk_precision_mode
| Precision mode.
typedef struct _grk_precision | grk_precision
| Precision.
typedef struct _grk_header_info | grk_header_info
| Header info.
typedef struct _grk_io_buf | grk_io_buf
typedef struct _grk_io_init | grk_io_init
typedef bool(* | grk_io_callback) (uint32_t threadId, grk_io_buf buffer, void *io_user_data)
typedef void(* | grk_io_register_reclaim_callback) (grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
typedef bool(* | grk_io_pixels_callback) (uint32_t threadId, grk_io_buf buffer, void *user_data)
typedef struct _grk_stream_params | grk_stream_params
| JPEG 2000 stream parameters - either file or buffer.
typedef enum _GRK_TILE_CACHE_STRATEGY | GRK_TILE_CACHE_STRATEGY
typedef struct _grk_decompress_core_params | grk_decompress_core_params
| Core decompression parameters.
typedef enum _GRK_CODEC_FORMAT | GRK_CODEC_FORMAT
| Supported JPEG 2000 formats.
typedef struct _grk_decompress_params | grk_decompress_parameters
| Decompression parameters.
typedef struct _grk_image_comp | grk_image_comp
| Image component.
typedef struct _grk_image_meta | grk_image_meta
typedef struct _grk_image | grk_image
typedef struct _grk_plugin_pass | grk_plugin_pass
| Plugin pass.
typedef struct _grk_plugin_code_block | grk_plugin_code_block
| Plugin code block.
typedef struct _grk_plugin_precinct | grk_plugin_precinct
| Plugin precinct.
typedef struct _grk_plugin_band | grk_plugin_band
| Plugin band.
typedef struct _grk_plugin_resolution | grk_plugin_resolution
| Plugin resolution.
typedef struct grk_plugin_tile_component | grk_plugin_tile_component
| Plugin tile component.
typedef struct _grk_plugin_tile | grk_plugin_tile
| Plugin tile.
typedef grk_object | grk_codec
typedef struct _grk_cparameters | grk_cparameters
| Compress parameters.
typedef struct _grk_plugin_load_info | grk_plugin_load_info
typedef struct _grk_plugin_init_info | grk_plugin_init_info
typedef struct grk_plugin_compress_user_callback_info | grk_plugin_compress_user_callback_info
typedef bool(* | GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info)
typedef int(* | GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image)
typedef struct _grk_plugin_decompress_callback_info | grk_plugin_decompress_callback_info
typedef int32_t(* | grk_plugin_decompress_callback) (grk_plugin_decompress_callback_info *info)

## Enumerations

enum | _GRK_PROG_ORDER { GRK_PROG_UNKNOWN = -1 , GRK_LRCP = 0 , GRK_RLCP = 1 , GRK_RPCL = 2 , GRK_PCRL = 3 , GRK_CPRL = 4 , GRK_NUM_PROGRESSION_ORDERS = 5 }
| Progression order. More...
enum | _GRK_COLOR_SPACE { GRK_CLRSPC_UNKNOWN = 0 , GRK_CLRSPC_SRGB = 2 , GRK_CLRSPC_GRAY = 3 , GRK_CLRSPC_SYCC = 4 , GRK_CLRSPC_EYCC = 5 , GRK_CLRSPC_CMYK = 6 , GRK_CLRSPC_DEFAULT_CIE = 7 , GRK_CLRSPC_CUSTOM_CIE = 8 , GRK_CLRSPC_ICC = 9 }
| Supported color spaces. More...

enum

_GRK_ENUM_COLOUR_SPACE {
GRK_ENUM_CLRSPC_UNKNOWN = 0xFFFFFFFF , GRK_ENUM_CLRSPC_BILEVEL1 = 0 , GRK_ENUM_CLRSPC_YCBCR1 = 1 , GRK_ENUM_CLRSPC_YCBCR2 = 3 ,
GRK_ENUM_CLRSPC_YCBCR3 = 4 , GRK_ENUM_CLRSPC_PHOTO_YCC = 9 , GRK_ENUM_CLRSPC_CMY = 11 , GRK_ENUM_CLRSPC_CMYK = 12 ,
GRK_ENUM_CLRSPC_YCCK = 13 , GRK_ENUM_CLRSPC_CIE = 14 , GRK_ENUM_CLRSPC_BILEVEL2 = 15 , GRK_ENUM_CLRSPC_SRGB = 16 ,
GRK_ENUM_CLRSPC_GRAY = 17 , GRK_ENUM_CLRSPC_SYCC = 18 , GRK_ENUM_CLRSPC_CIEJAB = 19 , GRK_ENUM_CLRSPC_ESRGB = 20 ,
GRK_ENUM_CLRSPC_ROMMRGB = 21 , GRK_ENUM_CLRSPC_YPBPR60 = 22 , GRK_ENUM_CLRSPC_YPBPR50 = 23 , GRK_ENUM_CLRSPC_EYCC = 24
}

enum | _GRK_RATE_CONTROL_ALGORITHM { GRK_RATE_CONTROL_BISECT , GRK_RATE_CONTROL_PCRD_OPT }
| Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points. More...
enum | _GRK_SUPPORTED_FILE_FMT { GRK_FMT_UNK , GRK_FMT_J2K , GRK_FMT_JP2 , GRK_FMT_PXM , GRK_FMT_PGX , GRK_FMT_PAM , GRK_FMT_BMP , GRK_FMT_TIF , GRK_FMT_RAW , GRK_FMT_PNG , GRK_FMT_RAWL , GRK_FMT_JPG }
| All supported file formats. More...
enum | _GRK_CHANNEL_TYPE { GRK_CHANNEL_TYPE_COLOUR = 0 , GRK_CHANNEL_TYPE_OPACITY = 1 , GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY = 2 , GRK_CHANNEL_TYPE_UNSPECIFIED = 65535U }
enum | _GRK_CHANNEL_ASSOC { GRK_CHANNEL_ASSOC_WHOLE_IMAGE = 0 , GRK_CHANNEL_ASSOC_COLOUR_1 = 1 , GRK_CHANNEL_ASSOC_COLOUR_2 = 2 , GRK_CHANNEL_ASSOC_COLOUR_3 = 3 , GRK_CHANNEL_ASSOC_UNASSOCIATED = 65535U }
enum | _grk_precision_mode { GRK_PREC_MODE_CLIP , GRK_PREC_MODE_SCALE }
| Precision mode. More...
enum | _GRK_TILE_CACHE_STRATEGY { GRK_TILE_CACHE_NONE , GRK_TILE_CACHE_IMAGE }
enum | _GRK_CODEC_FORMAT { GRK_CODEC_UNK = -1 , GRK_CODEC_J2K = 0 , GRK_CODEC_JP2 = 2 }
| Supported JPEG 2000 formats. More...

## Functions

GRK_API const char *GRK_CALLCONV | grk_version (void)
| Library version.
GRK_API bool GRK_CALLCONV | grk_initialize (const char *pluginPath, uint32_t numthreads)
| Initialize library.
GRK_API void GRK_CALLCONV | grk_deinitialize ()
| De-initialize library.
GRK_API grk_object *GRK_CALLCONV | grk_object_ref (grk_object *obj)
| Increment ref count.
GRK_API void GRK_CALLCONV | grk_object_unref (grk_object *obj)
GRK_API void GRK_CALLCONV | grk_set_msg_handlers (grk_msg_callback info_callback, void *info_user_data, grk_msg_callback warn_callback, void *warn_user_data, grk_msg_callback error_callback, void *error_user_data)
GRK_API grk_image *GRK_CALLCONV | grk_image_new (uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc)
| Create image.
GRK_API grk_image_meta *GRK_CALLCONV | grk_image_meta_new (void)
GRK_API bool GRK_CALLCONV | grk_decompress_detect_format (const char *fileName, GRK_CODEC_FORMAT *fmt)
| Detect jpeg 2000 format from file Format is either GRK_FMT_J2K or GRK_FMT_JP2.
GRK_API bool GRK_CALLCONV | grk_decompress_buffer_detect_format (uint8_t *buffer, size_t len, GRK_CODEC_FORMAT *fmt)
| Detect jpeg 2000 format from buffer Format is either GRK_FMT_J2K or GRK_FMT_JP2.
GRK_API void GRK_CALLCONV | grk_decompress_set_default_params (grk_decompress_core_params *parameters)
| Initialize decompress parameters with default values.
GRK_API grk_codec *GRK_CALLCONV | grk_decompress_init (grk_stream_params *stream_params, grk_decompress_core_params *core_params)
| Initialize decompressor.
GRK_API bool GRK_CALLCONV | grk_decompress_read_header (grk_codec *codec, grk_header_info *header_info)
| Decompress JPEG 2000 header.
GRK_API grk_image *GRK_CALLCONV | grk_decompress_get_tile_image (grk_codec *codec, uint16_t tileIndex)
| Get decompressed tile image.
GRK_API grk_image *GRK_CALLCONV | grk_decompress_get_composited_image (grk_codec *codec)
| Get decompressed composite image.
GRK_API bool GRK_CALLCONV | grk_decompress_set_window (grk_codec *codec, float start_x, float start_y, float end_x, float end_y)
| Set the given area to be decompressed.
GRK_API bool GRK_CALLCONV | grk_decompress (grk_codec *codec, grk_plugin_tile *tile)
| Decompress image from a JPEG 2000 code stream.
GRK_API bool GRK_CALLCONV | grk_decompress_tile (grk_codec *codec, uint16_t tileIndex)
| Decompress a specific tile.
GRK_API void GRK_CALLCONV | grk_compress_set_default_params (grk_cparameters *parameters)
| Set compressing parameters to default values:
GRK_API grk_codec *GRK_CALLCONV | grk_compress_init (grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *p_image)
| Set up the compressor parameters using the current image and user parameters.
GRK_API bool GRK_CALLCONV | grk_compress (grk_codec *codec, grk_plugin_tile *tile)
| Compress an image into a JPEG 2000 code stream using plugin.
GRK_API void GRK_CALLCONV | grk_dump_codec (grk_codec *codec, uint32_t info_flag, FILE *output_stream)
| Dump codec information to file.
GRK_API bool GRK_CALLCONV | grk_set_MCT (grk_cparameters *parameters, float *encodingMatrix, int32_t *dc_shift, uint32_t nbComp)
| Set the MCT matrix to use.
GRK_API bool GRK_CALLCONV | grk_plugin_load (grk_plugin_load_info info)
| Load plugin.
GRK_API void GRK_CALLCONV | grk_plugin_cleanup (void)
| Release plugin resources.
GRK_API uint32_t GRK_CALLCONV | grk_plugin_get_debug_state ()
| Get debug state of plugin.
GRK_API bool GRK_CALLCONV | grk_plugin_init (grk_plugin_init_info initInfo)
| Initialize plugin.
GRK_API int32_t GRK_CALLCONV | grk_plugin_compress (grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
| Compress with plugin.
GRK_API int32_t GRK_CALLCONV | grk_plugin_batch_compress (const char *input_dir, const char *output_dir, grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
| Batch compress with plugin.
GRK_API bool GRK_CALLCONV | grk_plugin_is_batch_complete (void)
| Check if batch job is complete.
GRK_API void GRK_CALLCONV | grk_plugin_stop_batch_compress (void)
| Stop batch compress.
GRK_API int32_t GRK_CALLCONV | grk_plugin_decompress (grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
| Decompress with plugin.
GRK_API int32_t GRK_CALLCONV | grk_plugin_init_batch_decompress (const char *input_dir, const char *output_dir, grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
| Initialize batch decompress.
GRK_API int32_t GRK_CALLCONV | grk_plugin_batch_decompress (void)
| Initiate batch decompress.
GRK_API void GRK_CALLCONV | grk_plugin_stop_batch_decompress (void)
| Stop batch decompress.

## Macro Definition Documentation

## GRK_API

#define GRK_API __attribute__((visibility("default")))

## GRK_BROADCAST_LEVEL_10_MBITSSEC

#define GRK_BROADCAST_LEVEL_10_MBITSSEC 25600U /** Mbits/sec for level 10 */

## GRK_BROADCAST_LEVEL_10_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for level 10 */

## GRK_BROADCAST_LEVEL_11_MBITSSEC

#define GRK_BROADCAST_LEVEL_11_MBITSSEC 51200U /** Mbits/sec for level 11 */

## GRK_BROADCAST_LEVEL_11_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for level 11 */

## GRK_BROADCAST_LEVEL_1_MBITSSEC

#define GRK_BROADCAST_LEVEL_1_MBITSSEC 200U /** Mbits/sec for level 1 */

## GRK_BROADCAST_LEVEL_1_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_1_MSAMPLESSEC 64U /** MSamples/sec for level 1 */

## GRK_BROADCAST_LEVEL_2_MBITSSEC

#define GRK_BROADCAST_LEVEL_2_MBITSSEC 200U /** Mbits/sec for level 2 */

## GRK_BROADCAST_LEVEL_2_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for level 2 */

## GRK_BROADCAST_LEVEL_3_MBITSSEC

#define GRK_BROADCAST_LEVEL_3_MBITSSEC 200U /** Mbits/sec for level 3 */

## GRK_BROADCAST_LEVEL_3_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for level 3 */

## GRK_BROADCAST_LEVEL_4_MBITSSEC

#define GRK_BROADCAST_LEVEL_4_MBITSSEC 400U /** Mbits/sec for level 4 */

## GRK_BROADCAST_LEVEL_4_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for level 4 */

## GRK_BROADCAST_LEVEL_5_MBITSSEC

#define GRK_BROADCAST_LEVEL_5_MBITSSEC 800U /** Mbits/sec for level 5 */

## GRK_BROADCAST_LEVEL_5_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for level 5 */

## GRK_BROADCAST_LEVEL_6_MBITSSEC

#define GRK_BROADCAST_LEVEL_6_MBITSSEC 1600U /** Mbits/sec for level 6 */

## GRK_BROADCAST_LEVEL_6_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for level 6 */

## GRK_BROADCAST_LEVEL_7_MBITSSEC

#define GRK_BROADCAST_LEVEL_7_MBITSSEC 3200U /** Mbits/sec for level 7 */

## GRK_BROADCAST_LEVEL_7_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for level 7 */

## GRK_BROADCAST_LEVEL_8_MBITSSEC

#define GRK_BROADCAST_LEVEL_8_MBITSSEC 6400U /** Mbits/sec for level 8 */

## GRK_BROADCAST_LEVEL_8_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for level 8 */

## GRK_BROADCAST_LEVEL_9_MBITSSEC

#define GRK_BROADCAST_LEVEL_9_MBITSSEC 12800U /** Mbits/sec for level 9 */

## GRK_BROADCAST_LEVEL_9_MSAMPLESSEC

#define GRK_BROADCAST_LEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for level 9 */

## GRK_CALLCONV

#define GRK_CALLCONV

## GRK_CBLKSTY_HT

#define GRK_CBLKSTY_HT 0x040

high throughput block coding

## GRK_CBLKSTY_HT_MIXED

#define GRK_CBLKSTY_HT_MIXED 0x080

high throughput block coding - mixed

## GRK_CBLKSTY_HT_PHLD

#define GRK_CBLKSTY_HT_PHLD 0x100

high throughput block coding - placeholder

## GRK_CBLKSTY_LAZY

#define GRK_CBLKSTY_LAZY 0x001

Selective arithmetic coding bypass.

## GRK_CBLKSTY_PTERM

#define GRK_CBLKSTY_PTERM 0x010

Predictable termination.

## GRK_CBLKSTY_RESET

#define GRK_CBLKSTY_RESET 0x002

Reset context probabilities on coding pass boundaries.

## GRK_CBLKSTY_SEGSYM

#define GRK_CBLKSTY_SEGSYM 0x020

Segmentation symbols are used.

## GRK_CBLKSTY_TERMALL

#define GRK_CBLKSTY_TERMALL 0x004

Termination on each coding pass.

## GRK_CBLKSTY_VSC

#define GRK_CBLKSTY_VSC 0x008

Vertical stripe causal context.

## GRK_CIE_D50

#define GRK_CIE_D50 ((uint32_t)0x00443530)

## GRK_CIE_D65

#define GRK_CIE_D65 ((uint32_t)0x00443635)

## GRK_CIE_D75

#define GRK_CIE_D75 ((uint32_t)0x00443735)

## GRK_CIE_DAY

#define GRK_CIE_DAY ((((uint32_t)'C') << 24) + (((uint32_t)'T') << 16))

## GRK_CIE_F11

#define GRK_CIE_F11 ((uint32_t)0x00463131)

## GRK_CIE_F2

#define GRK_CIE_F2 ((uint32_t)0x00004632)

## GRK_CIE_F7

#define GRK_CIE_F7 ((uint32_t)0x00004637)

## GRK_CIE_SA

#define GRK_CIE_SA ((uint32_t)0x00005341)

## GRK_CIE_SC

#define GRK_CIE_SC ((uint32_t)0x00005343)

## GRK_CINEMA_24_COMP

#define GRK_CINEMA_24_COMP 1041666U /** Maximum size per color component @ 24fps */

## GRK_CINEMA_24_CS

#define GRK_CINEMA_24_CS 1302083U /** Maximum code stream length @ 24fps */

JPEG 2000 cinema profile code stream and component size limits.

## GRK_CINEMA_48_COMP

#define GRK_CINEMA_48_COMP 520833U /** Maximum size per color component @ 48fps */

## GRK_CINEMA_48_CS

#define GRK_CINEMA_48_CS 651041U /** Maximum code stream length @ 48fps */

## GRK_CUSTOM_CIELAB_SPACE

#define GRK_CUSTOM_CIELAB_SPACE 0x0

## GRK_DECODE_ALL

#define GRK_DECODE_ALL

Value:
(GRK_PLUGIN_DECODE_CLEAN | GRK_DECODE_HEADER | GRK_DECODE_T2 | GRK_DECODE_T1 | \
GRK_DECODE_POST_T1)
GRK_DECODE_T1
#define GRK_DECODE_T1
Definition grok.h:728
GRK_DECODE_POST_T1
#define GRK_DECODE_POST_T1
Definition grok.h:729
GRK_DECODE_T2
#define GRK_DECODE_T2
Definition grok.h:727
GRK_DECODE_HEADER
#define GRK_DECODE_HEADER
Definition grok.h:726
GRK_PLUGIN_DECODE_CLEAN
#define GRK_PLUGIN_DECODE_CLEAN
Definition grok.h:730

## GRK_DECODE_HEADER

#define GRK_DECODE_HEADER (1 << 0)

## GRK_DECODE_POST_T1

#define GRK_DECODE_POST_T1 (1 << 3)

## GRK_DECODE_T1

#define GRK_DECODE_T1 (1 << 2)

## GRK_DECODE_T2

#define GRK_DECODE_T2 (1 << 1)

## GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT

#define GRK_DECOMPRESS_COMPRESSION_LEVEL_DEFAULT (UINT_MAX)

## GRK_DEFAULT_CIELAB_SPACE

#define GRK_DEFAULT_CIELAB_SPACE 0x44454600 /* 'DEF' */

## GRK_EXTENSION_MCT

#define GRK_EXTENSION_MCT 0x0100 /** Custom MCT support */

## GRK_EXTENSION_NONE

#define GRK_EXTENSION_NONE 0x0000 /** No Part-2 extension */

JPEG 2000 Part-2 extensions.

## GRK_GET_IMF_OR_BROADCAST_PROFILE

#define GRK_GET_IMF_OR_BROADCAST_PROFILE | ( |  | v | ) | ((v)&0x0f00) /** Extract profile without mainlevel/sublevel */

## GRK_GET_IMF_SUBLEVEL

#define GRK_GET_IMF_SUBLEVEL | ( |  | v | ) | (((v) >> 4) & 0xf) /** Extract IMF sub level */

## GRK_GET_LEVEL

#define GRK_GET_LEVEL | ( |  | v | ) | ((v)&0xf) /** Extract (main) level */

## GRK_IMF_MAINLEVEL_10_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_10_MSAMPLESSEC 19200U /** MSamples/sec for main level 10 */

## GRK_IMF_MAINLEVEL_11_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_11_MSAMPLESSEC 38400U /** MSamples/sec for main level 11 */

## GRK_IMF_MAINLEVEL_1_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_1_MSAMPLESSEC 65U /** MSamples/sec for main level 1 */

## GRK_IMF_MAINLEVEL_2_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_2_MSAMPLESSEC 130U /** MSamples/sec for main level 2 */

## GRK_IMF_MAINLEVEL_3_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_3_MSAMPLESSEC 195U /** MSamples/sec for main level 3 */

## GRK_IMF_MAINLEVEL_4_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_4_MSAMPLESSEC 260U /** MSamples/sec for main level 4 */

## GRK_IMF_MAINLEVEL_5_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_5_MSAMPLESSEC 520U /** MSamples/sec for main level 5 */

## GRK_IMF_MAINLEVEL_6_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_6_MSAMPLESSEC 1200U /** MSamples/sec for main level 6 */

## GRK_IMF_MAINLEVEL_7_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_7_MSAMPLESSEC 2400U /** MSamples/sec for main level 7 */

## GRK_IMF_MAINLEVEL_8_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_8_MSAMPLESSEC 4800U /** MSamples/sec for main level 8 */

## GRK_IMF_MAINLEVEL_9_MSAMPLESSEC

#define GRK_IMF_MAINLEVEL_9_MSAMPLESSEC 9600U /** MSamples/sec for main level 9 */

## GRK_IMF_SUBLEVEL_1_MBITSSEC

#define GRK_IMF_SUBLEVEL_1_MBITSSEC 200U /** Mbits/s for IMF sub level 1 */

Maximum compressed bit rate (Mbits/s) per IMF sub level.

## GRK_IMF_SUBLEVEL_2_MBITSSEC

#define GRK_IMF_SUBLEVEL_2_MBITSSEC 400U /** Mbits/s for IMF sub level 2 */

## GRK_IMF_SUBLEVEL_3_MBITSSEC

#define GRK_IMF_SUBLEVEL_3_MBITSSEC 800U /** Mbits/s for IMF sub level 3 */

## GRK_IMF_SUBLEVEL_4_MBITSSEC

#define GRK_IMF_SUBLEVEL_4_MBITSSEC 1600U /** Mbits/s for IMF sub level 4 */

## GRK_IMF_SUBLEVEL_5_MBITSSEC

#define GRK_IMF_SUBLEVEL_5_MBITSSEC 3200U /** Mbits/s for IMF sub level 5 */

## GRK_IMF_SUBLEVEL_6_MBITSSEC

#define GRK_IMF_SUBLEVEL_6_MBITSSEC 6400U /** Mbits/s for IMF sub level 6 */

## GRK_IMF_SUBLEVEL_7_MBITSSEC

#define GRK_IMF_SUBLEVEL_7_MBITSSEC 12800U /** Mbits/s for IMF sub level 7 */

## GRK_IMF_SUBLEVEL_8_MBITSSEC

#define GRK_IMF_SUBLEVEL_8_MBITSSEC 25600U /** Mbits/s for IMF sub level 8 */

## GRK_IMF_SUBLEVEL_9_MBITSSEC

#define GRK_IMF_SUBLEVEL_9_MBITSSEC 51200U /** Mbits/s for IMF sub level 9 */

## GRK_IMF_SUBLEVEL_MAX

#define GRK_IMF_SUBLEVEL_MAX 9U /** Maximum IMF sublevel */

## GRK_IMG_INFO

#define GRK_IMG_INFO 1 /* Basic image information provided to the user */

## GRK_IS_BROADCAST

#define GRK_IS_BROADCAST | ( |  | v | ) |

Value:
(((v) >= GRK_PROFILE_BC_SINGLE) && ((v) <= (GRK_PROFILE_BC_MULTI_R | 0x000b)) && \
(((v)&0xf) <= 0xb))
GRK_PROFILE_BC_MULTI_R
#define GRK_PROFILE_BC_MULTI_R
Definition grok.h:1153
GRK_PROFILE_BC_SINGLE
#define GRK_PROFILE_BC_SINGLE
Definition grok.h:1151

## GRK_IS_CINEMA

#define GRK_IS_CINEMA | ( |  | v | ) | (((v) >= GRK_PROFILE_CINEMA_2K) && ((v) <= GRK_PROFILE_CINEMA_S4K))

## GRK_IS_IMF

#define GRK_IS_IMF | ( |  | v | ) |

Value:
(((v) >= GRK_PROFILE_IMF_2K) && ((v) <= (GRK_PROFILE_IMF_8K_R | 0x009b)) && \
(((v)&0xf) <= 0xb) && (((v)&0xf0) <= 0x90))
GRK_PROFILE_IMF_8K_R
#define GRK_PROFILE_IMF_8K_R
Definition grok.h:1163
GRK_PROFILE_IMF_2K
#define GRK_PROFILE_IMF_2K
Definition grok.h:1156

## GRK_IS_PART2

#define GRK_IS_PART2 | ( |  | v | ) | ((v)&GRK_PROFILE_PART2)

## GRK_IS_STORAGE

#define GRK_IS_STORAGE | ( |  | v | ) | ((v) == GRK_PROFILE_CINEMA_LTS)

## GRK_J2K_MAX_DECOMP_LVLS

#define GRK_J2K_MAX_DECOMP_LVLS

Value:
32 /* Maximum number of decomposition levels allowed by standard \
*/

## GRK_J2K_MAXBANDS

#define GRK_J2K_MAXBANDS (3 * GRK_J2K_MAXRLVLS - 2) /* Maximum number of sub-bands allowed by standard */

## GRK_J2K_MAXRLVLS

#define GRK_J2K_MAXRLVLS (GRK_J2K_MAX_DECOMP_LVLS + 1) /* Maximum number of resolution levels allowed by standard*/

## GRK_J2K_MH_IND

#define GRK_J2K_MH_IND 16

Codestream index based only on the main header.

## GRK_J2K_MH_INFO

#define GRK_J2K_MH_INFO 2 /* Codestream information based only on the main header */

## GRK_J2K_TCH_INFO

#define GRK_J2K_TCH_INFO 8

Tile/Component information of all tiles.

## GRK_J2K_TH_IND

#define GRK_J2K_TH_IND 32

Tile index based on the current tile.

## GRK_J2K_TH_INFO

#define GRK_J2K_TH_INFO 4 /* Tile information based on the current tile header */

## GRK_JP2_IND

#define GRK_JP2_IND 256

JP2 file index.

## GRK_JP2_INFO

#define GRK_JP2_INFO 128

JP2 file information.

## GRK_JPH_RSIZ_FLAG

#define GRK_JPH_RSIZ_FLAG 0x4000

for JPH, bit 14 of RSIZ must be set to 1

## GRK_LEVEL_MAX

#define GRK_LEVEL_MAX 11U /** Maximum (main) level */

## GRK_MAX_COMMENT_LENGTH

#define GRK_MAX_COMMENT_LENGTH (UINT16_MAX - 2)

## GRK_MAX_LAYERS

#define GRK_MAX_LAYERS 100 /* Maximum number of quality layers */

## GRK_MAX_SUPPORTED_IMAGE_PRECISION

#define GRK_MAX_SUPPORTED_IMAGE_PRECISION 16 /* Maximum supported precision in library */

## GRK_NUM_ASOC_BOXES_SUPPORTED

#define GRK_NUM_ASOC_BOXES_SUPPORTED 256

## GRK_NUM_COMMENTS_SUPPORTED

#define GRK_NUM_COMMENTS_SUPPORTED 256

## GRK_PATH_LEN

#define GRK_PATH_LEN 4096 /* Maximum allowed filename size */

## GRK_PLUGIN_DECODE_CLEAN

#define GRK_PLUGIN_DECODE_CLEAN (1 << 4)

## GRK_PLUGIN_STATE_DEBUG

#define GRK_PLUGIN_STATE_DEBUG 0x1

## GRK_PLUGIN_STATE_DWT_QUANTIZATION

#define GRK_PLUGIN_STATE_DWT_QUANTIZATION 0x4

## GRK_PLUGIN_STATE_MCT_ONLY

#define GRK_PLUGIN_STATE_MCT_ONLY 0x8

## GRK_PLUGIN_STATE_NO_DEBUG

#define GRK_PLUGIN_STATE_NO_DEBUG 0x0

## GRK_PLUGIN_STATE_PRE_TR1

#define GRK_PLUGIN_STATE_PRE_TR1 0x2

## GRK_PROFILE_0

#define GRK_PROFILE_0 0x0001 /** Profile 0 as described in 15444-1,Table A.45 */

## GRK_PROFILE_1

#define GRK_PROFILE_1 0x0002 /** Profile 1 as described in 15444-1,Table A.45 */

## GRK_PROFILE_BC_MASK

#define GRK_PROFILE_BC_MASK 0x030F /** Mask for broadcast profile including main level */

## GRK_PROFILE_BC_MULTI

#define GRK_PROFILE_BC_MULTI 0x0200 /** Multi Tile Broadcast profile defined in 15444-1 AMD3 */

## GRK_PROFILE_BC_MULTI_R

#define GRK_PROFILE_BC_MULTI_R 0x0300 /** Multi Tile Reversible Broadcast profile defined in 15444-1 AMD3 */

## GRK_PROFILE_BC_SINGLE

#define GRK_PROFILE_BC_SINGLE 0x0100 /** Single Tile Broadcast profile defined in 15444-1 AMD3 */

## GRK_PROFILE_CINEMA_2K

#define GRK_PROFILE_CINEMA_2K 0x0003 /** 2K cinema profile defined in 15444-1 AMD1 */

## GRK_PROFILE_CINEMA_4K

#define GRK_PROFILE_CINEMA_4K 0x0004 /** 4K cinema profile defined in 15444-1 AMD1 */

## GRK_PROFILE_CINEMA_LTS

#define GRK_PROFILE_CINEMA_LTS 0x0007 /** Long term storage cinema profile defined in 15444-1 AMD2 */

## GRK_PROFILE_CINEMA_S2K

#define GRK_PROFILE_CINEMA_S2K 0x0005 /** Scalable 2K cinema profile defined in 15444-1 AMD2 */

## GRK_PROFILE_CINEMA_S4K

#define GRK_PROFILE_CINEMA_S4K 0x0006 /** Scalable 4K cinema profile defined in 15444-1 AMD2 */

## GRK_PROFILE_IMF_2K

#define GRK_PROFILE_IMF_2K 0x0400 /** 2K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_IMF_2K_R

#define GRK_PROFILE_IMF_2K_R 0x0700 /** 2K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_IMF_4K

#define GRK_PROFILE_IMF_4K 0x0500 /** 4K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_IMF_4K_R

#define GRK_PROFILE_IMF_4K_R 0x0800 /** 4K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_IMF_8K

#define GRK_PROFILE_IMF_8K 0x0600 /** 8K Single Tile Lossy IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_IMF_8K_R

#define GRK_PROFILE_IMF_8K_R 0x0900 /** 8K Single/Multi Tile Reversible IMF profile defined in 15444-1 AMD8 */

## GRK_PROFILE_MASK

#define GRK_PROFILE_MASK 0x0FFF /** Mask for profile bits */

## GRK_PROFILE_NONE

#define GRK_PROFILE_NONE 0x0000 /** no profile, conform to 15444-1 */

## GRK_PROFILE_PART2

#define GRK_PROFILE_PART2 0x8000 /** At least 1 extension defined in 15444-2 (Part-2) */

## GRK_PROFILE_PART2_EXTENSIONS_MASK

#define GRK_PROFILE_PART2_EXTENSIONS_MASK 0x3FFF

## GRK_RANDOM_ACCESS_PLM

#define GRK_RANDOM_ACCESS_PLM 4 /* use PLM marker if present */

## GRK_RANDOM_ACCESS_PLT

#define GRK_RANDOM_ACCESS_PLT 1 /* use PLT marker if present */

Toggle random access markers.

## GRK_RANDOM_ACCESS_TLM

#define GRK_RANDOM_ACCESS_TLM 2 /* use TLM marker if present */

## Typedef Documentation

## grk_asoc

typedef struct _grk_asoc grk_asoc

Association box info.

## GRK_CHANNEL_ASSOC

typedef enum _GRK_CHANNEL_ASSOC GRK_CHANNEL_ASSOC

## grk_channel_definition

typedef struct _grk_channel_definition grk_channel_definition

Channel definitions and number of definitions.

## grk_channel_description

typedef struct _grk_channel_description grk_channel_description

Channel definition: channel index, type, association.

## GRK_CHANNEL_TYPE

typedef enum _GRK_CHANNEL_TYPE GRK_CHANNEL_TYPE

## grk_codec

typedef grk_object grk_codec

## GRK_CODEC_FORMAT

typedef enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT

Supported JPEG 2000 formats.

## grk_color

typedef struct _grk_color grk_color

ICC profile, palette, channel definition.

## GRK_COLOR_SPACE

typedef enum _GRK_COLOR_SPACE GRK_COLOR_SPACE

Supported color spaces.

## grk_component_mapping_comp

typedef struct _grk_component_mapping_comp grk_component_mapping_comp

Note: "component" refers to an image component as decompressed from the code stream, while "channel" refers to a component resulting from the application of a Palette box LUT and a Component mapping box.

Component mappings: component index, mapping type, palette column

## grk_cparameters

typedef struct _grk_cparameters grk_cparameters

Compress parameters.

## grk_decompress_core_params

typedef struct _grk_decompress_core_params grk_decompress_core_params

Core decompression parameters.

## grk_decompress_parameters

typedef struct _grk_decompress_params grk_decompress_parameters

Decompression parameters.

## GRK_ENUM_COLOUR_SPACE

typedef enum _GRK_ENUM_COLOUR_SPACE GRK_ENUM_COLOUR_SPACE

## grk_header_info

typedef struct _grk_header_info grk_header_info

Header info.

## grk_image

typedef struct _grk_image grk_image

## grk_image_comp

typedef struct _grk_image_comp grk_image_comp

Image component.

## grk_image_meta

typedef struct _grk_image_meta grk_image_meta

## grk_io_buf

typedef struct _grk_io_buf grk_io_buf

## grk_io_callback

typedef bool(* grk_io_callback) (uint32_t threadId, grk_io_buf buffer, void *io_user_data)

## grk_io_init

typedef struct _grk_io_init grk_io_init

## grk_io_pixels_callback

typedef bool(* grk_io_pixels_callback) (uint32_t threadId, grk_io_buf buffer, void *user_data)

## grk_io_register_reclaim_callback

typedef void(* grk_io_register_reclaim_callback) (grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)

## grk_msg_callback

typedef void(* grk_msg_callback) (const char *msg, void *client_data)

Logging callback.

Parameters

  msg | message
  client_data | client data passed to callback

## grk_object

typedef struct _grk_object grk_object

Grok ref-counted object.

## grk_palette_data

typedef struct _grk_palette_data grk_palette_data

Palette data.

## grk_plugin_band

typedef struct _grk_plugin_band grk_plugin_band

Plugin band.

## grk_plugin_code_block

typedef struct _grk_plugin_code_block grk_plugin_code_block

Plugin code block.

## GRK_PLUGIN_COMPRESS_USER_CALLBACK

typedef bool(* GRK_PLUGIN_COMPRESS_USER_CALLBACK) (grk_plugin_compress_user_callback_info *info)

## grk_plugin_compress_user_callback_info

typedef struct grk_plugin_compress_user_callback_info grk_plugin_compress_user_callback_info

## grk_plugin_decompress_callback

typedef int32_t(* grk_plugin_decompress_callback) (grk_plugin_decompress_callback_info *info)

## grk_plugin_decompress_callback_info

typedef struct _grk_plugin_decompress_callback_info grk_plugin_decompress_callback_info

## grk_plugin_init_info

typedef struct _grk_plugin_init_info grk_plugin_init_info

## grk_plugin_load_info

typedef struct _grk_plugin_load_info grk_plugin_load_info

## grk_plugin_pass

typedef struct _grk_plugin_pass grk_plugin_pass

Plugin pass.

## grk_plugin_precinct

typedef struct _grk_plugin_precinct grk_plugin_precinct

Plugin precinct.

## grk_plugin_resolution

typedef struct _grk_plugin_resolution grk_plugin_resolution

Plugin resolution.

## grk_plugin_tile

typedef struct _grk_plugin_tile grk_plugin_tile

Plugin tile.

## grk_plugin_tile_component

typedef struct grk_plugin_tile_component grk_plugin_tile_component

Plugin tile component.

## grk_precision

typedef struct _grk_precision grk_precision

Precision.

## grk_precision_mode

typedef enum _grk_precision_mode grk_precision_mode

Precision mode.

## GRK_PROG_ORDER

typedef enum _GRK_PROG_ORDER GRK_PROG_ORDER

Progression order.

## grk_progression

typedef struct _grk_progression grk_progression

Progression order change.

## GRK_RATE_CONTROL_ALGORITHM

typedef enum _GRK_RATE_CONTROL_ALGORITHM GRK_RATE_CONTROL_ALGORITHM

Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points.

## grk_raw_comp_cparameters

typedef struct _grk_raw_comp_cparameters grk_raw_comp_cparameters

RAW component compress parameters.

## grk_raw_cparameters

typedef struct _grk_raw_cparameters grk_raw_cparameters

RAW image compress parameters.

## grk_stream_params

typedef struct _grk_stream_params grk_stream_params

JPEG 2000 stream parameters - either file or buffer.

## GRK_SUPPORTED_FILE_FMT

typedef enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT

All supported file formats.

## GRK_TILE_CACHE_STRATEGY

typedef enum _GRK_TILE_CACHE_STRATEGY GRK_TILE_CACHE_STRATEGY

## GROK_INIT_DECOMPRESSORS

typedef int(* GROK_INIT_DECOMPRESSORS) (grk_header_info *header_info, grk_image *image)

## Enumeration Type Documentation

## _GRK_CHANNEL_ASSOC

enum _GRK_CHANNEL_ASSOC

Enumerator
GRK_CHANNEL_ASSOC_WHOLE_IMAGE |
GRK_CHANNEL_ASSOC_COLOUR_1 |
GRK_CHANNEL_ASSOC_COLOUR_2 |
GRK_CHANNEL_ASSOC_COLOUR_3 |
GRK_CHANNEL_ASSOC_UNASSOCIATED |

## _GRK_CHANNEL_TYPE

enum _GRK_CHANNEL_TYPE

Enumerator
GRK_CHANNEL_TYPE_COLOUR |
GRK_CHANNEL_TYPE_OPACITY |
GRK_CHANNEL_TYPE_PREMULTIPLIED_OPACITY |
GRK_CHANNEL_TYPE_UNSPECIFIED |

## _GRK_CODEC_FORMAT

enum _GRK_CODEC_FORMAT

Supported JPEG 2000 formats.

Enumerator
GRK_CODEC_UNK | place-holder
GRK_CODEC_J2K | JPEG 2000 code stream : read/write.
GRK_CODEC_JP2 | JP2 file format : read/write.

## _GRK_COLOR_SPACE

enum _GRK_COLOR_SPACE

Supported color spaces.

Enumerator
GRK_CLRSPC_UNKNOWN | unknown
GRK_CLRSPC_SRGB | sRGB
GRK_CLRSPC_GRAY | grayscale
GRK_CLRSPC_SYCC | standard YCC (YUV)
GRK_CLRSPC_EYCC | extended YCC
GRK_CLRSPC_CMYK | CMYK.
GRK_CLRSPC_DEFAULT_CIE | default CIE LAB
GRK_CLRSPC_CUSTOM_CIE | custom CIE LAB
GRK_CLRSPC_ICC | ICC profile.

## _GRK_ENUM_COLOUR_SPACE

enum _GRK_ENUM_COLOUR_SPACE

Enumerator
GRK_ENUM_CLRSPC_UNKNOWN |
GRK_ENUM_CLRSPC_BILEVEL1 |
GRK_ENUM_CLRSPC_YCBCR1 |
GRK_ENUM_CLRSPC_YCBCR2 |
GRK_ENUM_CLRSPC_YCBCR3 |
GRK_ENUM_CLRSPC_PHOTO_YCC |
GRK_ENUM_CLRSPC_CMY |
GRK_ENUM_CLRSPC_CMYK |
GRK_ENUM_CLRSPC_YCCK |
GRK_ENUM_CLRSPC_CIE |
GRK_ENUM_CLRSPC_BILEVEL2 |
GRK_ENUM_CLRSPC_SRGB |
GRK_ENUM_CLRSPC_GRAY |
GRK_ENUM_CLRSPC_SYCC |
GRK_ENUM_CLRSPC_CIEJAB |
GRK_ENUM_CLRSPC_ESRGB |
GRK_ENUM_CLRSPC_ROMMRGB |
GRK_ENUM_CLRSPC_YPBPR60 |
GRK_ENUM_CLRSPC_YPBPR50 |
GRK_ENUM_CLRSPC_EYCC |

## _grk_precision_mode

enum _grk_precision_mode

Precision mode.

Enumerator
GRK_PREC_MODE_CLIP |
GRK_PREC_MODE_SCALE |

## _GRK_PROG_ORDER

enum _GRK_PROG_ORDER

Progression order.

Enumerator
GRK_PROG_UNKNOWN | place-holder
GRK_LRCP | layer-resolution-component-precinct order
GRK_RLCP | resolution-layer-component-precinct order
GRK_RPCL | resolution-precinct-component-layer order
GRK_PCRL | precinct-component-resolution-layer order
GRK_CPRL | component-precinct-resolution-layer order
GRK_NUM_PROGRESSION_ORDERS |

## _GRK_RATE_CONTROL_ALGORITHM

enum _GRK_RATE_CONTROL_ALGORITHM

Rate control algorithms GRK_RATE_CONTROL_BISECT: bisect with all truncation points GRK_RATE_CONTROL_PCRD_OPT: bisect with only feasible truncation points.

Enumerator
GRK_RATE_CONTROL_BISECT |
GRK_RATE_CONTROL_PCRD_OPT |

## _GRK_SUPPORTED_FILE_FMT

enum _GRK_SUPPORTED_FILE_FMT

All supported file formats.

Enumerator
GRK_FMT_UNK |
GRK_FMT_J2K |
GRK_FMT_JP2 |
GRK_FMT_PXM |
GRK_FMT_PGX |
GRK_FMT_PAM |
GRK_FMT_BMP |
GRK_FMT_TIF |
GRK_FMT_RAW |
GRK_FMT_PNG |
GRK_FMT_RAWL |
GRK_FMT_JPG |

## _GRK_TILE_CACHE_STRATEGY

enum _GRK_TILE_CACHE_STRATEGY

Enumerator
GRK_TILE_CACHE_NONE |
GRK_TILE_CACHE_IMAGE |

## Function Documentation

## grk_compress()

GRK_API bool GRK_CALLCONV grk_compress | ( | grk_codec * | codec,
|  | grk_plugin_tile * | tile
| ) |  |

Compress an image into a JPEG 2000 code stream using plugin.

Parameters

  codec | compression codec
  tile | plugin tile

Returns
  Returns true if successful, returns false otherwise

References GrkCodec::getImpl(), and grk::grk_read().

## grk_compress_init()

GRK_API grk_codec *GRK_CALLCONV grk_compress_init | ( | grk_stream_params * | stream_params,
|  | grk_cparameters * | parameters,
|  | grk_image * | p_image
| ) |  |

Set up the compressor parameters using the current image and user parameters.

Parameters

  codec | compression codec
  parameters | compression parameters
  image | input image

References _grk_stream_params::buf, grk::create_mem_stream(), _grk_stream_params::file, GrkCodec::getImpl(), GRK_CODEC_J2K, GRK_CODEC_JP2, grk_compress_create(), grk_compress_start(), grk::GRK_ERROR(), GRK_FMT_J2K, GRK_FMT_JP2, grk_object_unref(), grk::grk_read(), grk_stream_create_file_stream(), and _grk_stream_params::len.

## grk_compress_set_default_params()

GRK_API void GRK_CALLCONV grk_compress_set_default_params | ( | grk_cparameters * | parameters | ) |

Set compressing parameters to default values:

Lossless Single tile Size of precinct : 2^15 x 2^15 (i.e. single precinct) Size of code block : 64 x 64 Number of resolutions: 6 No SOP marker in the code stream No EPH marker in the code stream No mode switches Progression order: LRCP No ROI upshifted Image origin lies at (0,0) Tile origin lies at (0,0) Reversible DWT 5-3 transform

Parameters

  parameters | Compression parameters

References grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH, grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW, grk::GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION, grk::GRK_COMP_PARAM_DEFAULT_PROG_ORDER, GRK_FMT_UNK, GRK_PROFILE_NONE, and grk::grk_read().

## grk_decompress()

GRK_API bool GRK_CALLCONV grk_decompress | ( | grk_codec * | codec,
|  | grk_plugin_tile * | tile
| ) |  |

Decompress image from a JPEG 2000 code stream.

Parameters

  codec | decompression codec
  tile | tile struct from plugin

Returns
  true if successful, otherwise false

References GrkCodec::getImpl(), and grk::grk_read().

## grk_decompress_buffer_detect_format()

GRK_API bool GRK_CALLCONV grk_decompress_buffer_detect_format | ( | uint8_t * | buffer,
|  | size_t | len,
|  | GRK_CODEC_FORMAT * | fmt
| ) |  |

Detect jpeg 2000 format from buffer Format is either GRK_FMT_J2K or GRK_FMT_JP2.

Parameters

  buffer | buffer
  len | buffer length
  fmt | pointer to detected format

Returns
  true if format was detected, otherwise false

References GRK_CODEC_J2K, GRK_CODEC_JP2, GRK_CODEC_UNK, grk::GRK_ERROR(), grk::grk_read(), J2K_CODESTREAM_MAGIC, and JP2_RFC3745_MAGIC.

Referenced by grk::create_mapped_file_read_stream(), grk::create_mem_stream(), grk_decompress_detect_format(), and grk_stream_create_file_stream().

## grk_decompress_detect_format()

GRK_API bool GRK_CALLCONV grk_decompress_detect_format | ( | const char * | fileName,
|  | GRK_CODEC_FORMAT * | fmt
| ) |  |

Detect jpeg 2000 format from file Format is either GRK_FMT_J2K or GRK_FMT_JP2.

Parameters

  fileName | file name
  fmt | pointer to detected format

Returns
  true if format was detected, otherwise false

References grk_decompress_buffer_detect_format(), and grk::grk_read().

## grk_decompress_get_composited_image()

GRK_API grk_image *GRK_CALLCONV grk_decompress_get_composited_image | ( | grk_codec * | codec | ) |

Get decompressed composite image.

Parameters

  codec | decompression codec

Returns
  pointer to decompressed image

References GrkCodec::getImpl(), and grk::grk_read().

## grk_decompress_get_tile_image()

GRK_API grk_image *GRK_CALLCONV grk_decompress_get_tile_image | ( | grk_codec * | codec,
|  | uint16_t | tileIndex
| ) |  |

Get decompressed tile image.

Parameters

  codec | decompression codec
  tileIndex | tile index

Returns
  pointer to decompressed image

References GrkCodec::getImpl(), and grk::grk_read().

## grk_decompress_init()

GRK_API grk_codec *GRK_CALLCONV grk_decompress_init | ( | grk_stream_params * | stream_params,
|  | grk_decompress_core_params * | core_params
| ) |  |

Initialize decompressor.

Parameters

  stream_params | source stream parameters
  core_params | decompress core parameters

Returns
  grk_codec* if successful, otherwise NULL

References _grk_stream_params::buf, _grk_stream_params::file, GrkCodec::getImpl(), grk_decompress_create_from_buffer(), grk_decompress_create_from_file(), grk_object_unref(), grk::grk_read(), and _grk_stream_params::len.

## grk_decompress_read_header()

GRK_API bool GRK_CALLCONV grk_decompress_read_header | ( | grk_codec * | codec,
|  | grk_header_info * | header_info
| ) |  |

Decompress JPEG 2000 header.

Parameters

  codec | decompression codec
  header_info | information read from JPEG 2000 header.

Returns
  true if the main header of the code stream and the JP2 header is correctly read.

References GrkCodec::getImpl(), and grk::grk_read().

## grk_decompress_set_default_params()

GRK_API void GRK_CALLCONV grk_decompress_set_default_params | ( | grk_decompress_core_params * | parameters | ) |

Initialize decompress parameters with default values.

Parameters

  parameters | decompression parameters

References GRK_RANDOM_ACCESS_PLM, GRK_RANDOM_ACCESS_PLT, GRK_RANDOM_ACCESS_TLM, grk::grk_read(), and GRK_TILE_CACHE_NONE.

## grk_decompress_set_window()

GRK_API bool GRK_CALLCONV grk_decompress_set_window | ( | grk_codec * | codec,
|  | float | start_x,
|  | float | start_y,
|  | float | end_x,
|  | float | end_y
| ) |  |

Set the given area to be decompressed.

This function should be called right after grk_decompress_read_header is called, and before any tile header is read.

Parameters

  codec | decompression codec
  start_x | left position of the rectangle to decompress (in image coordinates).
  end_x | the right position of the rectangle to decompress (in image coordinates).
  start_y | up position of the rectangle to decompress (in image coordinates).
  end_y | bottom position of the rectangle to decompress (in image coordinates).

Returns
  true if the area could be set.

References GrkCodec::getImpl(), and grk::grk_read().

## grk_decompress_tile()

GRK_API bool GRK_CALLCONV grk_decompress_tile | ( | grk_codec * | codec,
|  | uint16_t | tileIndex
| ) |  |

Decompress a specific tile.

Parameters

  codec | decompression codec
  tileIndex | index of the tile to be decompressed

Returns
  true if successful, otherwise false

References GrkCodec::getImpl(), and grk::grk_read().

## grk_deinitialize()

GRK_API void GRK_CALLCONV grk_deinitialize | ( |  | ) |

De-initialize library.

References grk_plugin_cleanup(), and ExecSingleton::release().

## grk_dump_codec()

GRK_API void GRK_CALLCONV grk_dump_codec | ( | grk_codec * | codec,
|  | uint32_t | info_flag,
|  | FILE * | output_stream
| ) |  |

Dump codec information to file.

Parameters

  codec | decompression codec
  info_flag | type of information dump.
  output_stream | codec information is dumped to output stream

References GrkCodec::getImpl(), and grk::grk_read().

## grk_image_meta_new()

GRK_API grk_image_meta *GRK_CALLCONV grk_image_meta_new | ( | void |  | ) |

Referenced by grk::CodeStreamDecompress::CodeStreamDecompress(), and grk::FileFormatCompress::init().

## grk_image_new()

GRK_API grk_image *GRK_CALLCONV grk_image_new | ( | uint16_t | numcmpts,
|  | grk_image_comp * | cmptparms,
|  | GRK_COLOR_SPACE | clrspc
| ) |  |

Create image.

Parameters

  numcmpts | number of components
  cmptparms | component parameters
  clrspc | image color space

Returns
  returns a new image if successful, otherwise nullptr

References grk::GrkImage::create(), and grk::grk_read().

## grk_initialize()

GRK_API bool GRK_CALLCONV grk_initialize | ( | const char * | pluginPath,
|  | uint32_t | numthreads
| ) |  |

Initialize library.

Parameters

  pluginPath | path to plugin
  numthreads | number of threads to use for compress/decompress

References grk_plugin_load(), grk::grk_read(), ExecSingleton::instance(), is_plugin_initialized, and _grk_plugin_load_info::pluginPath.

## grk_object_ref()

GRK_API grk_object *GRK_CALLCONV grk_object_ref | ( | grk_object * | obj | ) |

Increment ref count.

References _grk_object::wrapper.

Referenced by grk::GrkImage::copyHeader(), and grk::FileFormatCompress::init().

## grk_object_unref()

GRK_API void GRK_CALLCONV grk_object_unref | ( | grk_object * | obj | ) |

References grk::GrkObjectWrapper::unref(), and _grk_object::wrapper.

Referenced by grk::GrkImage::cieLabToRGB(), grk::CodeStreamDecompress::createOutputImage(), grk::TileProcessor::generateImage(), grk_compress_init(), grk_decompress_create_from_file(), grk_decompress_init(), grk::TileProcessor::release(), grk::GrkImage::sycc420_to_rgb(), grk::GrkImage::sycc422_to_rgb(), grk::GrkImage::sycc444_to_rgb(), grk::CodeStream::~CodeStream(), grk::CodeStreamDecompress::~CodeStreamDecompress(), grk::FileFormatCompress::~FileFormatCompress(), GrkCodec::~GrkCodec(), grk::GrkImage::~GrkImage(), grk::Strip::~Strip(), and grk::TileCache::~TileCache().

## grk_plugin_batch_compress()

GRK_API int32_t GRK_CALLCONV grk_plugin_batch_compress | ( | const char * | input_dir,
|  | const char * | output_dir,
|  | grk_cparameters * | compress_parameters,
|  | GRK_PLUGIN_COMPRESS_USER_CALLBACK | callback
| ) |  |

Batch compress with plugin.

Parameters

  input_dir | directory holding input images
  output_dir | directory holding compressed output images
  compress_parameters | compress parameters
  callback | callback

Returns
  0 if successful

References grk_plugin_internal_encode_callback(), grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_batch_encode_method_name, pluginLoaded, and userEncodeCallback.

## grk_plugin_batch_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_batch_decompress | ( | void |  | ) |

Initiate batch decompress.

References grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_batch_decode_method_name, and pluginLoaded.

## grk_plugin_cleanup()

GRK_API void GRK_CALLCONV grk_plugin_cleanup | ( | void |  | ) |

Release plugin resources.

References grk::minpf_cleanup_plugin_manager(), and pluginLoaded.

Referenced by grk_deinitialize().

## grk_plugin_compress()

GRK_API int32_t GRK_CALLCONV grk_plugin_compress | ( | grk_cparameters * | compress_parameters,
|  | GRK_PLUGIN_COMPRESS_USER_CALLBACK | callback
| ) |  |

Compress with plugin.

Parameters

  compress_parameters | compress parameters
  callback | callback

References grk_plugin_internal_encode_callback(), grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_encode_method_name, pluginLoaded, and userEncodeCallback.

## grk_plugin_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_decompress | ( | grk_decompress_parameters * | decompress_parameters,
|  | grk_plugin_decompress_callback | callback
| ) |  |

Decompress with plugin.

Parameters

  decompress_parameters | decompress parameters
  callback | callback

References decodeCallback, grk_plugin_internal_decode_callback(), grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_decode_method_name, and pluginLoaded.

## grk_plugin_get_debug_state()

GRK_API uint32_t GRK_CALLCONV grk_plugin_get_debug_state | ( |  | ) |

Get debug state of plugin.

References GRK_PLUGIN_STATE_NO_DEBUG, grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_get_debug_state_method_name, and pluginLoaded.

Referenced by grk::compress_synch_with_plugin(), grk::TileProcessor::doCompress(), grk::TileProcessor::init(), grk::TileProcessor::pcrdBisectFeasible(), grk::TileProcessor::pcrdBisectSimple(), and grk::tile_equals().

## grk_plugin_init()

GRK_API bool GRK_CALLCONV grk_plugin_init | ( | grk_plugin_init_info | initInfo | ) |

Initialize plugin.

References grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_init_method_name, and pluginLoaded.

## grk_plugin_init_batch_decompress()

GRK_API int32_t GRK_CALLCONV grk_plugin_init_batch_decompress | ( | const char * | input_dir,
|  | const char * | output_dir,
|  | grk_decompress_parameters * | decompress_parameters,
|  | grk_plugin_decompress_callback | callback
| ) |  |

Initialize batch decompress.

Parameters

  input_dir | input directory holding compressed images
  output_dir | output directory holding decompressed images
  decompress_parameters | decompress parameters
  callback | callback

Returns
  0 if successful

References decodeCallback, grk_plugin_internal_decode_callback(), grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_init_batch_decode_method_name, and pluginLoaded.

## grk_plugin_is_batch_complete()

GRK_API bool GRK_CALLCONV grk_plugin_is_batch_complete | ( | void |  | ) |

Check if batch job is complete.

References funcPluginIsBatchComplete, grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_is_batch_complete_method_name, and pluginLoaded.

## grk_plugin_load()

GRK_API bool GRK_CALLCONV grk_plugin_load | ( | grk_plugin_load_info | info | ) |

Load plugin.

Parameters

  info | plugin loading info

References grk::grk_read(), grk::minpf_cleanup_plugin_manager(), grk::minpf_get_dynamic_library_extension(), grk::minpf_load_from_path(), pathSeparator(), and pluginLoaded.

Referenced by grk_initialize().

## grk_plugin_stop_batch_compress()

GRK_API void GRK_CALLCONV grk_plugin_stop_batch_compress | ( | void |  | ) |

Stop batch compress.

References grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_stop_batch_encode_method_name, and pluginLoaded.

## grk_plugin_stop_batch_decompress()

GRK_API void GRK_CALLCONV grk_plugin_stop_batch_decompress | ( | void |  | ) |

Stop batch decompress.

References grk::grk_read(), grk::minpf_get_plugin_manager(), grk::minpf_get_symbol(), plugin_stop_batch_decode_method_name, and pluginLoaded.

## grk_set_MCT()

GRK_API bool GRK_CALLCONV grk_set_MCT | ( | grk_cparameters * | parameters,
|  | float * | encodingMatrix,
|  | int32_t * | dc_shift,
|  | uint32_t | nbComp
| ) |  |

Set the MCT matrix to use.

Parameters

  parameters | the parameters to change.
  encodingMatrix | the compressing matrix.
  dc_shift | the dc shift coefficients to use.
  nbComp | the number of components of the image.

Returns
  true if the parameters could be set.

References GRK_EXTENSION_MCT, GRK_IS_PART2, grk::grk_malloc(), GRK_PROFILE_PART2, and grk::grk_read().

## grk_set_msg_handlers()

GRK_API void GRK_CALLCONV grk_set_msg_handlers | ( | grk_msg_callback | info_callback,
|  | void * | info_user_data,
|  | grk_msg_callback | warn_callback,
|  | void * | warn_user_data,
|  | grk_msg_callback | error_callback,
|  | void * | error_user_data
| ) |  |

References grk::logger::error_data_, grk::logger::error_handler, grk::grk_read(), grk::logger::info_data_, grk::logger::info_handler, grk::logger::logger_, grk::logger::warning_data_, and grk::logger::warning_handler.

## grk_version()

GRK_API const char *GRK_CALLCONV grk_version | ( | void |  | ) |

Library version.

References grk::grk_read().

Referenced by grk::CodeStreamCompress::init().