Grok  9.5.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 
25 namespace grk
26 {
28 // Debug Interface
30 
31 #define DEBUG_CONTEXT_CACHE_SIZE 3
32 
33 // debugging variables
35 {
36  uint32_t debug_state;
37  uint8_t context_number;
38  uint32_t* contextStream;
42  uint8_t orientation;
43  uint32_t compno;
44  uint32_t level;
45 };
46 
47 typedef uint32_t (*PLUGIN_GET_DEBUG_STATE)(void);
48 
49 typedef void (*PLUGIN_DEBUG_MQC_NEXT_CXD)(grk_plugin_debug_mqc* mqc, uint32_t d);
50 
52 
54 // compressor interface
56 
58 {
59  const char* input_file_name;
61  const char* output_file_name;
65  int32_t error_code;
66 };
67 
69 
70 typedef bool (*PLUGIN_INIT)(grk_plugin_init_info initInfo);
71 
72 typedef int32_t (*PLUGIN_ENCODE)(grk_cparameters* encoding_parameters,
74 
75 typedef int32_t (*PLUGIN_BATCH_ENCODE)(const char* input_dir, const char* output_dir,
76  grk_cparameters* encoding_parameters,
77  PLUGIN_ENCODE_USER_CALLBACK userCallback);
78 
79 typedef void (*PLUGIN_STOP_BATCH_ENCODE)(void);
80 
81 typedef bool (*PLUGIN_IS_BATCH_COMPLETE)(void);
82 
84 // decompressor interface
86 
88 {
90  PluginDecodeCallbackInfo(std::string input, std::string output,
91  grk_decompress_parameters* decompressorParameters,
92  GRK_SUPPORTED_FILE_FMT format, uint32_t flags)
93  : deviceId(0), init_decompressors_func(nullptr), inputFile(input), outputFile(output),
94  decod_format(format), cod_format(GRK_UNK_FMT), stream(nullptr), codec(nullptr),
95  decompressor_parameters(decompressorParameters), image(nullptr), plugin_owns_image(false),
96  tile(nullptr), error_code(0), decompress_flags(flags), user_data(nullptr)
97 
98  {
99  memset(&header_info, 0, sizeof(header_info));
100  }
101  size_t deviceId;
103  std::string inputFile;
104  std::string outputFile;
105  // input file format 0: J2K, 1: JP2
107  // output file format 0: PGX, 1: PxM, 2: BMP etc
116  int32_t error_code;
118  void* user_data;
119 };
120 
122 
123 typedef int32_t (*PLUGIN_DECODE)(grk_decompress_parameters* decoding_parameters,
124  PLUGIN_DECODE_USER_CALLBACK userCallback);
125 
126 typedef int32_t (*PLUGIN_INIT_BATCH_DECODE)(const char* input_dir, const char* output_dir,
127  grk_decompress_parameters* decoding_parameters,
128  PLUGIN_DECODE_USER_CALLBACK userCallback);
129 
130 typedef int32_t (*PLUGIN_BATCH_DECODE)(void);
131 
132 typedef void (*PLUGIN_STOP_BATCH_DECODE)(void);
133 
134 } // namespace grk
GRK_SUPPORTED_FILE_FMT
Definition: grok.h:66
@ GRK_UNK_FMT
Definition: grok.h:67
int(* GROK_INIT_DECOMPRESSORS)(grk_header_info *header_info, grk_image *image)
Definition: grok.h:1621
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: ICacheable.h:20
void(* PLUGIN_ENCODE_USER_CALLBACK)(plugin_encode_user_callback_info *info)
Definition: plugin_interface.h:68
int32_t(* PLUGIN_DECODE)(grk_decompress_parameters *decoding_parameters, PLUGIN_DECODE_USER_CALLBACK userCallback)
Definition: plugin_interface.h:123
void(* PLUGIN_STOP_BATCH_DECODE)(void)
Definition: plugin_interface.h:132
bool(* PLUGIN_INIT)(grk_plugin_init_info initInfo)
Definition: plugin_interface.h:70
void(* PLUGIN_STOP_BATCH_ENCODE)(void)
Definition: plugin_interface.h:79
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
int32_t(* PLUGIN_BATCH_ENCODE)(const char *input_dir, const char *output_dir, grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK userCallback)
Definition: plugin_interface.h:75
void(* PLUGIN_DEBUG_MQC_NEXT_PLANE)(grk_plugin_debug_mqc *mqc)
Definition: plugin_interface.h:51
bool(* PLUGIN_IS_BATCH_COMPLETE)(void)
Definition: plugin_interface.h:81
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:126
int32_t(* PLUGIN_ENCODE)(grk_cparameters *encoding_parameters, PLUGIN_ENCODE_USER_CALLBACK callback)
Definition: plugin_interface.h:72
int32_t(* PLUGIN_BATCH_DECODE)(void)
Definition: plugin_interface.h:130
int32_t(* PLUGIN_DECODE_USER_CALLBACK)(PluginDecodeCallbackInfo *info)
Definition: plugin_interface.h:121
HWY_NORETURN void int const char * format
Definition: base.h:665
message_info info
Definition: ojph_message.cpp:50
#define DEBUG_CONTEXT_CACHE_SIZE
Definition: plugin_interface.h:31
Compress parameters.
Definition: grok.h:489
Decompress parameters.
Definition: grok.h:806
Header info.
Definition: grok.h:681
Definition: grok.h:960
Base Grok ref-counted object.
Definition: grok.h:408
Definition: grok.h:1556
Plugin tile.
Definition: grok.h:1096
Definition: plugin_interface.h:88
GRK_SUPPORTED_FILE_FMT decod_format
Definition: plugin_interface.h:106
grk_image * image
Definition: plugin_interface.h:113
grk_plugin_tile * tile
Definition: plugin_interface.h:115
std::string inputFile
Definition: plugin_interface.h:103
PluginDecodeCallbackInfo(std::string input, std::string output, grk_decompress_parameters *decompressorParameters, GRK_SUPPORTED_FILE_FMT format, uint32_t flags)
Definition: plugin_interface.h:90
GROK_INIT_DECOMPRESSORS init_decompressors_func
Definition: plugin_interface.h:102
grk_header_info header_info
Definition: plugin_interface.h:112
uint32_t decompress_flags
Definition: plugin_interface.h:117
void * user_data
Definition: plugin_interface.h:118
grk_codec * codec
Definition: plugin_interface.h:110
grk_stream * stream
Definition: plugin_interface.h:109
std::string outputFile
Definition: plugin_interface.h:104
GRK_SUPPORTED_FILE_FMT cod_format
Definition: plugin_interface.h:108
int32_t error_code
Definition: plugin_interface.h:116
size_t deviceId
Definition: plugin_interface.h:101
grk_decompress_parameters * decompressor_parameters
Definition: plugin_interface.h:111
PluginDecodeCallbackInfo()
Definition: plugin_interface.h:89
bool plugin_owns_image
Definition: plugin_interface.h:114
Definition: plugin_interface.h:35
uint32_t debug_state
Definition: plugin_interface.h:36
uint32_t * contextStream
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
uint8_t orientation
Definition: plugin_interface.h:42
uint32_t contextStreamByteCount
Definition: plugin_interface.h:39
uint32_t compno
Definition: plugin_interface.h:43
uint32_t level
Definition: plugin_interface.h:44
Definition: plugin_interface.h:58
grk_plugin_tile * tile
Definition: plugin_interface.h:64
int32_t error_code
Definition: plugin_interface.h:65
bool outputFileNameIsRelative
Definition: plugin_interface.h:60
const char * input_file_name
Definition: plugin_interface.h:59
grk_image * image
Definition: plugin_interface.h:63
const char * output_file_name
Definition: plugin_interface.h:61
grk_cparameters * compressor_parameters
Definition: plugin_interface.h:62