Grok 13.0.0
plugin_interface.h
Go to the documentation of this file.
1
18#include <plugin/minpf_plugin.h>
19#include "grok.h"
20#include <cstring>
21#include <string>
22
23#pragma once
24
25namespace grk
26{
28// Debug Interface
30
31#define DEBUG_CONTEXT_CACHE_SIZE 3
32
33// debugging variables
46
47typedef uint32_t (*PLUGIN_GET_DEBUG_STATE)(void);
48
49typedef void (*PLUGIN_DEBUG_MQC_NEXT_CXD)(grk_plugin_debug_mqc* mqc, uint32_t d);
50
52
54// compressor interface
56
57typedef bool (*PLUGIN_INIT)(grk_plugin_init_info initInfo);
58
59typedef int32_t (*PLUGIN_ENCODE)(grk_cparameters* encoding_parameters,
61
63
64typedef void (*PLUGIN_STOP_BATCH_ENCODE)(void);
65
66typedef void (*PLUGIN_WAIT_FOR_BATCH_COMPLETE)(void);
67
69// decompressor interface
71
73{
75 PluginDecodeCallbackInfo(std::string input, std::string output,
76 grk_decompress_parameters* decompressorParameters,
77 GRK_CODEC_FORMAT format, uint32_t flags)
78 : device_id(0), init_decompressors_func(nullptr), inputFile(input), outputFile(output),
79 decod_format(format), cod_format(GRK_FMT_UNK), codec(nullptr),
80 decompressor_parameters(decompressorParameters), image(nullptr), plugin_owns_image(false),
81 tile(nullptr), error_code(0), decompress_flags(flags), user_data(nullptr)
82
83 {
84 memset(&header_info, 0, sizeof(header_info));
85 }
86 size_t device_id;
88 std::string inputFile;
89 std::string outputFile;
90 // input file format 0: J2K, 1: JP2
92 // output file format 0: PGX, 1: PxM, 2: BMP etc
100 int32_t error_code;
103};
104
106
107typedef int32_t (*PLUGIN_DECODE)(grk_decompress_parameters* decoding_parameters,
108 PLUGIN_DECODE_USER_CALLBACK userCallback);
109
110typedef int32_t (*PLUGIN_INIT_BATCH_DECODE)(const char* input_dir, const char* output_dir,
111 grk_decompress_parameters* decoding_parameters,
112 PLUGIN_DECODE_USER_CALLBACK userCallback);
113
114typedef int32_t (*PLUGIN_BATCH_DECODE)(void);
115
116typedef void (*PLUGIN_STOP_BATCH_DECODE)(void);
117
118} // namespace grk
@ GRK_FMT_UNK
Definition grok.h:227
uint64_t(* GRK_PLUGIN_COMPRESS_USER_CALLBACK)(grk_plugin_compress_user_callback_info *info)
Definition grok.h:1482
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Supported JPEG 2000 formats.
enum _GRK_SUPPORTED_FILE_FMT GRK_SUPPORTED_FILE_FMT
All supported file formats.
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Definition grok.h:1528
@ GRK_CODEC_UNK
unknown format
Definition grok.h:246
Copyright (C) 2016-2024 Grok Image Compression Inc.
Definition ICacheable.h:20
void(* PLUGIN_WAIT_FOR_BATCH_COMPLETE)(void)
Definition plugin_interface.h:66
int32_t(* PLUGIN_DECODE)(grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
Definition plugin_interface.h:107
void(* PLUGIN_STOP_BATCH_DECODE)(void)
Definition plugin_interface.h:116
bool(* PLUGIN_INIT)(grk_plugin_init_info initInfo)
Definition plugin_interface.h:57
void(* PLUGIN_STOP_BATCH_ENCODE)(void)
Definition plugin_interface.h:64
uint32_t(* PLUGIN_GET_DEBUG_STATE)(void)
Definition plugin_interface.h:47
void(* PLUGIN_DEBUG_MQC_NEXT_CXD)(grk_plugin_debug_mqc *mqc, uint32_t d)
Definition plugin_interface.h:49
void(* PLUGIN_DEBUG_MQC_NEXT_PLANE)(grk_plugin_debug_mqc *mqc)
Definition plugin_interface.h:51
int32_t(* PLUGIN_ENCODE)(grk_cparameters *encoding_parameters, GRK_PLUGIN_COMPRESS_USER_CALLBACK callback)
Definition plugin_interface.h:59
int32_t(* PLUGIN_BATCH_ENCODE)(grk_plugin_compress_batch_info info)
Definition plugin_interface.h:62
int32_t(* PLUGIN_INIT_BATCH_DECODE)(const char *input_dir, const char *output_dir, grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
Definition plugin_interface.h:110
int32_t(* PLUGIN_BATCH_DECODE)(void)
Definition plugin_interface.h:114
int32_t(* PLUGIN_DECODE_USER_CALLBACK)(PluginDecodeCallbackInfo *info)
Definition plugin_interface.h:105
#define DEBUG_CONTEXT_CACHE_SIZE
Definition plugin_interface.h:31
Compress parameters.
Definition grok.h:976
Decompression parameters.
Definition grok.h:588
Header info.
Definition grok.h:387
Definition grok.h:681
Grok ref-counted object.
Definition grok.h:144
Definition grok.h:1457
Plugin tile.
Definition grok.h:807
Definition plugin_interface.h:73
grk_image * image
Definition plugin_interface.h:97
grk_plugin_tile * tile
Definition plugin_interface.h:99
std::string inputFile
Definition plugin_interface.h:88
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition plugin_interface.h:87
grk_header_info header_info
Definition plugin_interface.h:96
uint32_t decompress_flags
Definition plugin_interface.h:101
void * user_data
Definition plugin_interface.h:102
grk_codec * codec
Definition plugin_interface.h:94
size_t device_id
Definition plugin_interface.h:86
std::string outputFile
Definition plugin_interface.h:89
GRK_SUPPORTED_FILE_FMT cod_format
Definition plugin_interface.h:93
int32_t error_code
Definition plugin_interface.h:100
grk_decompress_parameters * decompressor_parameters
Definition plugin_interface.h:95
GRK_CODEC_FORMAT decod_format
Definition plugin_interface.h:91
PluginDecodeCallbackInfo()
Definition plugin_interface.h:74
PluginDecodeCallbackInfo(std::string input, std::string output, grk_decompress_parameters *decompressorParameters, GRK_CODEC_FORMAT format, uint32_t flags)
Definition plugin_interface.h:75
bool plugin_owns_image
Definition plugin_interface.h:98
Definition plugin_interface.h:35
uint32_t debug_state
Definition plugin_interface.h:36
uint32_t * context_stream
Definition plugin_interface.h:38
uint8_t contextCache[DEBUG_CONTEXT_CACHE_SIZE]
Definition plugin_interface.h:40
uint8_t context_number
Definition plugin_interface.h:37
uint32_t contextCacheCount
Definition plugin_interface.h:41
uint16_t compno
Definition plugin_interface.h:43
uint8_t orientation
Definition plugin_interface.h:42
uint32_t contextStreamByteCount
Definition plugin_interface.h:39
uint32_t level
Definition plugin_interface.h:44
Definition grok.h:1485