Grok 14.0.0
grok.cpp File Reference
#include <sys/stat.h>
#include <unistd.h>
#include <sys/mman.h>
#include <fcntl.h>
#include "grk_includes.h"

Classes

struct  GrkCodec
 

Functions

static bool grk_compress_start (grk_object *codec)
 Start compressing image.
 
static grk_streamgrk_stream_create_file_stream (const char *fname, size_t buffer_size, bool is_read_stream)
 Create stream from a file identified with its filename with a specific buffer size.
 
static grk_streamgrk_stream_create_stream (grk_stream_params *stream_params)
 
static grk_streamgrk_stream_new (size_t buffer_size, bool is_input)
 
grk_objectgrk_decompress_create (grk_stream *stream)
 
static void errorCallback (const char *msg, void *client_data)
 
static void warningCallback (const char *msg, void *client_data)
 
static void infoCallback (const char *msg, void *client_data)
 
bool GRK_CALLCONV grk_initialize (const char *pluginPath, uint32_t numthreads, bool verbose)
 Initializes library.
 
GRK_API void GRK_CALLCONV grk_deinitialize ()
 De-initializes library.
 
GRK_API grk_object *GRK_CALLCONV grk_object_ref (grk_object *obj)
 Increments ref count.
 
GRK_API void GRK_CALLCONV grk_object_unref (grk_object *obj)
 
GRK_API void GRK_CALLCONV grk_set_msg_handlers (grk_msg_handlers msg_handlers)
 Sets log message handlers.
 
static size_t grk_read_from_file (uint8_t *buffer, size_t numBytes, void *p_file)
 
static uint64_t grk_get_data_length_from_file (void *filePtr)
 
static size_t grk_write_to_file (const uint8_t *buffer, size_t numBytes, void *p_file)
 
static bool grk_seek_in_file (uint64_t numBytes, void *p_user_data)
 
const char *GRK_CALLCONV grk_version (void)
 Gets library version.
 
grk_image *GRK_CALLCONV grk_image_new (uint16_t numcmpts, grk_image_comp *cmptparms, GRK_COLOR_SPACE clrspc, bool alloc_data)
 Creates image.
 
grk_image_meta *GRK_CALLCONV grk_image_meta_new (void)
 Creates meta.
 
bool 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.
 
bool GRK_CALLCONV grk_decompress_detect_format (const char *fileName, GRK_CODEC_FORMAT *fmt)
 Detects JPEG 2000 format from file.
 
static grk_objectgrk_decompress_create_from_buffer (uint8_t *buf, size_t len)
 
static grk_objectgrk_decompress_create_from_callbacks (grk_stream_params *stream_params)
 
static grk_objectgrk_decompress_create_from_file (const char *file_name)
 
void GRK_CALLCONV grk_decompress_set_default_params (grk_decompress_parameters *parameters)
 Initializes decompress parameters with default values.
 
grk_object *GRK_CALLCONV grk_decompress_init (grk_stream_params *stream_params, grk_decompress_parameters *params)
 Initializes decompressor.
 
bool GRK_CALLCONV grk_decompress_read_header (grk_object *codecWrapper, grk_header_info *header_info)
 Decompresses JPEG 2000 header.
 
bool GRK_CALLCONV grk_decompress_set_window (grk_object *codecWrapper, double start_x, double start_y, double end_x, double end_y)
 Specifies area to be decompressed.
 
bool GRK_CALLCONV grk_decompress (grk_object *codecWrapper, grk_plugin_tile *tile)
 Decompresses image from a JPEG 2000 code stream.
 
bool GRK_CALLCONV grk_decompress_tile (grk_object *codecWrapper, uint16_t tile_index)
 Decompresses a specific tile.
 
void GRK_CALLCONV grk_dump_codec (grk_object *codecWrapper, uint32_t info_flag, FILE *output_stream)
 Dumps codec information to file.
 
bool GRK_CALLCONV grk_set_MCT (grk_cparameters *parameters, float *pEncodingMatrix, int32_t *p_dc_shift, uint32_t pNbComp)
 Sets MCT matrix.
 
grk_image *GRK_CALLCONV grk_decompress_get_tile_image (grk_object *codecWrapper, uint16_t tile_index)
 Gets decompressed tile image.
 
grk_progression_state GRK_CALLCONV grk_decompress_get_progression_state (grk_object *codec, uint16_t tile_index)
 Gets grk_progression_state for a tile.
 
bool GRK_CALLCONV grk_decompress_set_progression_state (grk_object *codec, grk_progression_state state)
 Sets grk_progression_state for a tile.
 
grk_image *GRK_CALLCONV grk_decompress_get_image (grk_object *codecWrapper)
 Gets decompressed image.
 
grk_object *GRK_CALLCONV grk_compress_create (GRK_CODEC_FORMAT p_format, grk_stream *stream)
 
void GRK_CALLCONV grk_compress_set_default_params (grk_cparameters *parameters)
 Sets compression parameters to default values:
 
grk_object *GRK_CALLCONV grk_compress_init (grk_stream_params *stream_params, grk_cparameters *parameters, grk_image *image)
 Initializes compression process.
 
bool GRK_CALLCONV grk_decompress_update (grk_decompress_parameters *params, grk_object *codec)
 Updates decompressor.
 
uint64_t GRK_CALLCONV grk_compress (grk_object *codecWrapper, grk_plugin_tile *tile)
 Compresses an image into a JPEG 2000 code stream using plugin.
 
static void grkFree_file (void *p_user_data)
 
static const char * pathSeparator ()
 
bool GRK_CALLCONV grk_plugin_load (grk_plugin_load_info info)
 Loads plugin.
 
uint32_t GRK_CALLCONV grk_plugin_get_debug_state ()
 Gets debug state of plugin.
 
void GRK_CALLCONV grk_plugin_cleanup (void)
 Cleans up plugin resources.
 
GRK_API bool GRK_CALLCONV grk_plugin_init (grk_plugin_init_info initInfo)
 Initializes plugin.
 
uint64_t grk_plugin_internal_encode_callback (grk_plugin_compress_user_callback_info *info)
 
int32_t GRK_CALLCONV grk_plugin_compress (grk_cparameters *compress_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
 Compresses with plugin.
 
int32_t GRK_CALLCONV grk_plugin_batch_compress (grk_plugin_compress_batch_info info)
 Batch-compresses with plugin.
 
GRK_API void GRK_CALLCONV grk_plugin_wait_for_batch_complete (void)
 Waits for batch job to complete.
 
void GRK_CALLCONV grk_plugin_stop_batch_compress (void)
 Stops batch compress.
 
int32_t grk_plugin_internal_decode_callback (PluginDecodeCallbackInfo *info)
 
int32_t GRK_CALLCONV grk_plugin_decompress (grk_decompress_parameters *decompress_parameters, grk_plugin_decompress_callback callback)
 Decompresses single image with plugin.
 
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)
 Initializes batch decompress with plugin.
 
int32_t GRK_CALLCONV grk_plugin_batch_decompress (void)
 Initiates batch decompress.
 
void GRK_CALLCONV grk_plugin_stop_batch_decompress (void)
 Stops batch decompress.
 
void grk_stream_set_read_function (grk_stream *stream, grk_stream_read_fn func)
 Set read function.
 
void grk_stream_set_seek_function (grk_stream *stream, grk_stream_seek_fn func)
 Set (absolute) seek function (stream must be seekable)
 
void grk_stream_set_write_function (grk_stream *stream, grk_stream_write_fn func)
 Set write function.
 
void grk_stream_set_user_data (grk_stream *stream, void *p_data, grk_stream_free_user_data_fn func)
 Set user data for JPEG 2000 stream.
 
void grk_stream_set_user_data_length (grk_stream *stream, uint64_t data_length)
 Set the length of the user data for the stream.
 

Variables

static bool is_plugin_initialized = false
 
static const char * JP2_RFC3745_MAGIC = "\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a"
 
static const char * J2K_CODESTREAM_MAGIC = "\xff\x4f\xff\x51"
 
static const char * plugin_get_debug_state_method_name = "plugin_get_debug_state"
 
static const char * plugin_init_method_name = "plugin_init"
 
static const char * plugin_encode_method_name = "plugin_encode"
 
static const char * plugin_batch_encode_method_name = "plugin_batch_encode"
 
static const char * plugin_stop_batch_encode_method_name = "plugin_stop_batch_encode"
 
static const char * plugin_wait_for_batch_complete_method_name = "plugin_wait_for_batch_complete"
 
static const char * plugin_decode_method_name = "plugin_decompress"
 
static const char * plugin_init_batch_decode_method_name = "plugin_init_batch_decompress"
 
static const char * plugin_batch_decode_method_name = "plugin_batch_decompress"
 
static const char * plugin_stop_batch_decode_method_name = "plugin_stop_batch_decompress"
 
bool pluginLoaded = false
 
GRK_PLUGIN_COMPRESS_USER_CALLBACK userEncodeCallback = 0
 
PLUGIN_WAIT_FOR_BATCH_COMPLETE funcPluginWaitForBatchComplete = nullptr
 
grk_plugin_decompress_callback decodeCallback = 0
 

Function Documentation

◆ errorCallback()

static void errorCallback ( const char * msg,
void * client_data )
static

Referenced by grk_initialize().

◆ grk_compress()

uint64_t GRK_CALLCONV grk_compress ( grk_object * codec,
grk_plugin_tile * tile )

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

Parameters
codeccompression codec (see grk_object)
tileplugin tile (see grk_plugin_tile)
Returns
number of bytes written if successful, 0 otherwise

References GrkCodec::getImpl().

◆ grk_compress_create()

◆ grk_compress_init()

grk_object *GRK_CALLCONV grk_compress_init ( grk_stream_params * stream_params,
grk_cparameters * parameters,
grk_image * image )

Initializes compression process.

Parameters
stream_paramsStream parameters (see grk_stream_params)
parametersCompression parameters (see grk_cparameters)
imageInput image (see grk_image)
Returns
pointer to initialized codec.

References grk::create_mem_stream(), grk::Logger::error(), GrkCodec::getImpl(), GRK_CODEC_J2K, GRK_CODEC_JP2, grk_compress_create(), grk_compress_start(), GRK_FMT_J2K, GRK_FMT_JP2, grk_object_unref(), grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::Logger::logger_.

◆ grk_compress_set_default_params()

void GRK_CALLCONV grk_compress_set_default_params ( grk_cparameters * parameters)

Sets compression 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
parametersCompression parameters (see grk_cparameters)

References grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH, grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW, grk::GRK_DEFAULT_NUMRESOLUTION, grk::GRK_DEFAULT_PROG_ORDER, GRK_FMT_UNK, and GRK_PROFILE_NONE.

◆ grk_compress_start()

static bool grk_compress_start ( grk_object * codec)
static

Start compressing image.

Parameters
codeccompression codec

References GrkCodec::getImpl().

Referenced by grk_compress_init().

◆ grk_decompress()

bool GRK_CALLCONV grk_decompress ( grk_object * codec,
grk_plugin_tile * tile )

Decompresses image from a JPEG 2000 code stream.

Parameters
codecdecompression codec (see grk_object)
tiletile struct from plugin (see grk_plugin_tile)
Returns
true if successful, otherwise false

References GrkCodec::getImpl().

◆ grk_decompress_buffer_detect_format()

bool 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
bufferbuffer
lenbuffer length
fmtpointer to detected format
Returns
true if format was detected, otherwise false

References grk::Logger::error(), GRK_CODEC_J2K, GRK_CODEC_JP2, GRK_CODEC_UNK, J2K_CODESTREAM_MAGIC, JP2_RFC3745_MAGIC, and grk::Logger::logger_.

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

◆ grk_decompress_create()

◆ grk_decompress_create_from_buffer()

static grk_object * grk_decompress_create_from_buffer ( uint8_t * buf,
size_t len )
static

◆ grk_decompress_create_from_callbacks()

static grk_object * grk_decompress_create_from_callbacks ( grk_stream_params * stream_params)
static

◆ grk_decompress_create_from_file()

static grk_object * grk_decompress_create_from_file ( const char * file_name)
static

◆ grk_decompress_detect_format()

bool GRK_CALLCONV grk_decompress_detect_format ( const char * file_name,
GRK_CODEC_FORMAT * fmt )

Detects JPEG 2000 format from file.

Format is either GRK_FMT_J2K, GRK_FMT_JP2 or GRK_FMT_MJ2

Parameters
file_namefile name
fmtpointer to detected format (see GRK_CODEC_FORMAT)
Returns
true if format was detected, otherwise false

References grk_decompress_buffer_detect_format().

◆ grk_decompress_get_image()

grk_image *GRK_CALLCONV grk_decompress_get_image ( grk_object * codec)

Gets decompressed image.

Parameters
codecdecompression codec (see grk_object)
Returns
pointer to grk_image

References GrkCodec::getImpl().

◆ grk_decompress_get_progression_state()

grk_progression_state GRK_CALLCONV grk_decompress_get_progression_state ( grk_object * codec,
uint16_t tile_index )

Gets grk_progression_state for a tile.

Parameters
codeccodec (see grk_object)
tile_indextile index
Returns
grk_progression_state. Struct will be all zeros if tile has not been decompressed yet

◆ grk_decompress_get_tile_image()

grk_image *GRK_CALLCONV grk_decompress_get_tile_image ( grk_object * codec,
uint16_t tile_index )

Gets decompressed tile image.

Parameters
codecdecompression codec (see grk_object)
tile_indextile index
Returns
pointer to grk_image

References GrkCodec::getImpl().

◆ grk_decompress_init()

grk_object *GRK_CALLCONV grk_decompress_init ( grk_stream_params * stream_params,
grk_decompress_parameters * params )

Initializes decompressor.

Parameters
stream_paramssource stream parameters (see grk_stream_params)
paramsdecompress parameters (see grk_decompress_parameters) object will be created, otherwise the codec object stored in *codec will be re-initialized
Returns
pointer to grk_object if successful, otherwise nullptr

References GrkCodec::getImpl(), grk_decompress_create_from_buffer(), grk_decompress_create_from_callbacks(), grk_decompress_create_from_file(), and grk_object_unref().

◆ grk_decompress_read_header()

bool GRK_CALLCONV grk_decompress_read_header ( grk_object * codec,
grk_header_info * header_info )

Decompresses JPEG 2000 header.

Parameters
codecdecompression codec (see grk_object)
header_infoinformation read from JPEG 2000 header (see grk_header_info)
Returns
true if the main header of the code stream and the JP2 header is correctly read.

References GrkCodec::getImpl().

◆ grk_decompress_set_default_params()

void GRK_CALLCONV grk_decompress_set_default_params ( grk_decompress_parameters * parameters)

Initializes decompress parameters with default values.

Parameters
parametersdecompression parameters (see grk_decompress_parameters)

References GRK_RANDOM_ACCESS_PLM, GRK_RANDOM_ACCESS_PLT, GRK_RANDOM_ACCESS_TLM, and GRK_TILE_CACHE_NONE.

◆ grk_decompress_set_progression_state()

bool GRK_CALLCONV grk_decompress_set_progression_state ( grk_object * codec,
grk_progression_state state )

Sets grk_progression_state for a tile.

Parameters
codeccodec (see grk_object)
stategrk_progression_state
Returns
true if tile exists in cache and state marked tile as dirty

◆ grk_decompress_set_window()

bool GRK_CALLCONV grk_decompress_set_window ( grk_object * codec,
double start_x,
double start_y,
double end_x,
double end_y )

Specifies 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
codecdecompression codec (see grk_object)
start_xleft position of the rectangle to decompress (in image coordinates).
end_xthe right position of the rectangle to decompress (in image coordinates).
start_yup position of the rectangle to decompress (in image coordinates).
end_ybottom position of the rectangle to decompress (in image coordinates).
Returns
true if the area could be set.

References GrkCodec::getImpl().

◆ grk_decompress_tile()

bool GRK_CALLCONV grk_decompress_tile ( grk_object * codec,
uint16_t tile_index )

Decompresses a specific tile.

Parameters
codecdecompression codec (see grk_object)
tile_indexindex of the tile to be decompressed
Returns
true if successful, otherwise false

References GrkCodec::getImpl().

◆ grk_decompress_update()

bool GRK_CALLCONV grk_decompress_update ( grk_decompress_parameters * params,
grk_object * codec )

Updates decompressor.

Parameters
paramsdecompress parameters (see grk_decompress_parameters)
codeccodec (see grk_object)
Returns
true if successful, otherwise false

◆ grk_deinitialize()

GRK_API void GRK_CALLCONV grk_deinitialize ( )

De-initializes library.

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

◆ grk_dump_codec()

void GRK_CALLCONV grk_dump_codec ( grk_object * codec,
uint32_t info_flag,
FILE * output_stream )

Dumps codec information to file.

Parameters
codecdecompression codec (see grk_object)
info_flagtype of information dump.
output_streamcodec information is dumped to output stream

References GrkCodec::getImpl().

◆ grk_get_data_length_from_file()

static uint64_t grk_get_data_length_from_file ( void * filePtr)
static

References GRK_FSEEK, and GRK_FTELL.

Referenced by grk_stream_create_file_stream().

◆ grk_image_meta_new()

◆ grk_image_new()

grk_image *GRK_CALLCONV grk_image_new ( uint16_t numcmpts,
grk_image_comp * cmptparms,
GRK_COLOR_SPACE clrspc,
bool alloc_data )

Creates image.

Parameters
numcmptsnumber of components
cmptparmscomponent parameters (see grk_image_comp)
clrspcimage color space (see GRK_COLOR_SPACE)
alloc_dataif true, allocate component data buffers
Returns
returns a new image if successful, otherwise NULL

References grk::GrkImage::create().

◆ grk_initialize()

bool GRK_CALLCONV grk_initialize ( const char * pluginPath,
uint32_t num_threads,
bool verbose )

Initializes library.

Parameters
pluginPathpath to plugin
num_threadsnumber of threads to use for compress/decompress
verbosetoggle verbose mode

References errorCallback(), grk_plugin_load(), grk_set_msg_handlers(), grk::Logger::info(), infoCallback(), ExecSingleton::instance(), is_plugin_initialized, grk::Logger::logger_, and warningCallback().

◆ grk_object_ref()

GRK_API grk_object *GRK_CALLCONV grk_object_ref ( grk_object * obj)

Increments ref count.

Parameters
objGrok object (see grk_object)

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

◆ grk_object_unref()

◆ grk_plugin_batch_compress()

◆ grk_plugin_batch_decompress()

int32_t GRK_CALLCONV grk_plugin_batch_decompress ( void )

Initiates batch decompress.

Returns
0 if successful, otherwise return error code

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

◆ grk_plugin_cleanup()

void GRK_CALLCONV grk_plugin_cleanup ( void )

Cleans up plugin resources.

References grk::minpf_cleanup_plugin_manager(), and pluginLoaded.

Referenced by grk_deinitialize().

◆ grk_plugin_compress()

int32_t GRK_CALLCONV grk_plugin_compress ( grk_cparameters * compress_parameters,
GRK_PLUGIN_COMPRESS_USER_CALLBACK callback )

Compresses with plugin.

Parameters
compress_parameterscompress parameters (see grk_cparameters)
callbackcallback (see GRK_PLUGIN_COMPRESS_USER_CALLBACK)

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

◆ grk_plugin_decompress()

int32_t GRK_CALLCONV grk_plugin_decompress ( grk_decompress_parameters * decompress_parameters,
grk_plugin_decompress_callback callback )

Decompresses single image with plugin.

Parameters
decompress_parametersdecompress parameters (see grk_decompress_parameters)
callbackcallback (see grk_plugin_decompress_callback)
Returns
0 if successful, otherwise return error code

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

◆ grk_plugin_get_debug_state()

◆ grk_plugin_init()

GRK_API bool GRK_CALLCONV grk_plugin_init ( grk_plugin_init_info init_info)

Initializes plugin.

Parameters
init_infoplugin init info (see grk_plugin_init_info)

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

◆ grk_plugin_init_batch_decompress()

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 )

Initializes batch decompress with plugin.

Parameters
input_dirinput directory holding compressed images
output_diroutput directory holding decompressed images
decompress_parametersdecompress parameters (see grk_decompress_parameters)
callbackcallback (see grk_plugin_decompress_callback)
Returns
0 if successful, otherwise return error code

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

◆ grk_plugin_internal_decode_callback()

◆ grk_plugin_internal_encode_callback()

uint64_t grk_plugin_internal_encode_callback ( grk_plugin_compress_user_callback_info * info)

◆ grk_plugin_load()

◆ grk_plugin_stop_batch_compress()

void GRK_CALLCONV grk_plugin_stop_batch_compress ( void )

◆ grk_plugin_stop_batch_decompress()

void GRK_CALLCONV grk_plugin_stop_batch_decompress ( void )

◆ grk_plugin_wait_for_batch_complete()

GRK_API void GRK_CALLCONV grk_plugin_wait_for_batch_complete ( void )

◆ grk_read_from_file()

static size_t grk_read_from_file ( uint8_t * buffer,
size_t numBytes,
void * p_file )
static

◆ grk_seek_in_file()

static bool grk_seek_in_file ( uint64_t numBytes,
void * p_user_data )
static

References GRK_FSEEK.

Referenced by grk_stream_create_file_stream().

◆ grk_set_MCT()

bool GRK_CALLCONV grk_set_MCT ( grk_cparameters * parameters,
float * encoding_matrix,
int32_t * dc_shift,
uint32_t nb_comp )

Sets MCT matrix.

Parameters
parameterscompression parameters (see grk_cparameters)
encoding_matrixmatrix
dc_shiftdc shift coefficients to use
nb_compnumber of components of the image.
Returns
true if matrix was successfully set

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

◆ grk_set_msg_handlers()

◆ grk_stream_create_file_stream()

static grk_stream * grk_stream_create_file_stream ( const char * fname,
size_t buffer_size,
bool is_read_stream )
static

Create stream from a file identified with its filename with a specific buffer size.

Parameters
fnamethe name of the file to stream
buffer_sizesize of the chunk used to stream
is_read_streamwhether the stream is a read stream (true) or not (false)

References grk::Logger::error(), grk::BufferedStream::getImpl(), grk_decompress_buffer_detect_format(), grk_get_data_length_from_file(), grk_read_from_file(), grk_seek_in_file(), grk_stream_new(), grk_stream_set_read_function(), grk_stream_set_seek_function(), grk_stream_set_user_data(), grk_stream_set_user_data_length(), grk_stream_set_write_function(), grk_write_to_file(), grkFree_file(), and grk::Logger::logger_.

Referenced by grk_compress_init(), and grk_decompress_create_from_file().

◆ grk_stream_create_stream()

◆ grk_stream_new()

static grk_stream * grk_stream_new ( size_t buffer_size,
bool is_input )
static

◆ grk_stream_set_read_function()

void grk_stream_set_read_function ( grk_stream * stream,
grk_stream_read_fn func )

Set read function.

Parameters
streamJPEG 2000 stream
funcread function

References grk::BufferedStream::getImpl(), and GROK_STREAM_STATUS_INPUT.

Referenced by grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::set_up_mem_stream().

◆ grk_stream_set_seek_function()

void grk_stream_set_seek_function ( grk_stream * stream,
grk_stream_seek_fn func )

Set (absolute) seek function (stream must be seekable)

Parameters
streamJPEG 2000 stream
func(absolute) seek function.

References grk::BufferedStream::getImpl().

Referenced by grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::set_up_mem_stream().

◆ grk_stream_set_user_data()

void grk_stream_set_user_data ( grk_stream * stream,
void * data,
grk_stream_free_user_data_fn func )

Set user data for JPEG 2000 stream.

Parameters
streamJPEG 2000 stream
datauser data
funcfunction to free data when grk_object_unref() is called.

References grk::BufferedStream::getImpl().

Referenced by grk::create_mem_stream(), grk_stream_create_file_stream(), and grk_stream_create_stream().

◆ grk_stream_set_user_data_length()

void grk_stream_set_user_data_length ( grk_stream * stream,
uint64_t data_length )

Set the length of the user data for the stream.

Parameters
streamJPEG 2000 stream
data_lengthlength of data.

References grk::BufferedStream::getImpl().

Referenced by grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::set_up_mem_stream().

◆ grk_stream_set_write_function()

void grk_stream_set_write_function ( grk_stream * stream,
grk_stream_write_fn func )

Set write function.

Parameters
streamJPEG 2000 stream
funcwrite function

References grk::BufferedStream::getImpl(), and GROK_STREAM_STATUS_OUTPUT.

Referenced by grk_stream_create_file_stream(), grk_stream_create_stream(), and grk::set_up_mem_stream().

◆ grk_version()

const char *GRK_CALLCONV grk_version ( void )

Gets library version.

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

◆ grk_write_to_file()

static size_t grk_write_to_file ( const uint8_t * buffer,
size_t numBytes,
void * p_file )
static

◆ grkFree_file()

static void grkFree_file ( void * p_user_data)
static

◆ infoCallback()

static void infoCallback ( const char * msg,
void * client_data )
static

Referenced by grk_initialize().

◆ pathSeparator()

static const char * pathSeparator ( )
static

Referenced by grk_plugin_load().

◆ warningCallback()

static void warningCallback ( const char * msg,
void * client_data )
static

Referenced by grk_initialize().

Variable Documentation

◆ decodeCallback

◆ funcPluginWaitForBatchComplete

PLUGIN_WAIT_FOR_BATCH_COMPLETE funcPluginWaitForBatchComplete = nullptr

◆ is_plugin_initialized

bool is_plugin_initialized = false
static

Referenced by grk_initialize().

◆ J2K_CODESTREAM_MAGIC

const char* J2K_CODESTREAM_MAGIC = "\xff\x4f\xff\x51"
static

◆ JP2_RFC3745_MAGIC

const char* JP2_RFC3745_MAGIC = "\x00\x00\x00\x0c\x6a\x50\x20\x20\x0d\x0a\x87\x0a"
static

◆ plugin_batch_decode_method_name

const char* plugin_batch_decode_method_name = "plugin_batch_decompress"
static

◆ plugin_batch_encode_method_name

const char* plugin_batch_encode_method_name = "plugin_batch_encode"
static

◆ plugin_decode_method_name

const char* plugin_decode_method_name = "plugin_decompress"
static

Referenced by grk_plugin_decompress().

◆ plugin_encode_method_name

const char* plugin_encode_method_name = "plugin_encode"
static

Referenced by grk_plugin_compress().

◆ plugin_get_debug_state_method_name

const char* plugin_get_debug_state_method_name = "plugin_get_debug_state"
static

◆ plugin_init_batch_decode_method_name

const char* plugin_init_batch_decode_method_name = "plugin_init_batch_decompress"
static

◆ plugin_init_method_name

const char* plugin_init_method_name = "plugin_init"
static

Referenced by grk_plugin_init().

◆ plugin_stop_batch_decode_method_name

const char* plugin_stop_batch_decode_method_name = "plugin_stop_batch_decompress"
static

◆ plugin_stop_batch_encode_method_name

const char* plugin_stop_batch_encode_method_name = "plugin_stop_batch_encode"
static

◆ plugin_wait_for_batch_complete_method_name

const char* plugin_wait_for_batch_complete_method_name = "plugin_wait_for_batch_complete"
static

◆ pluginLoaded

◆ userEncodeCallback