@@ -102,18 +102,18 @@ MTMD_API const unsigned char * mtmd_bitmap_get_data(const mtmd_bitmap * bitmap);
102102MTMD_API void mtmd_bitmap_free (mtmd_bitmap * bitmap);
103103// bitmap ID is optional, but useful for KV cache tracking
104104// these getters/setters are dedicated functions, so you can for example calculate the hash of the image based on mtmd_bitmap_get_data()
105- MTMD_API const char * mtmd_bitmap_get_id (const mtmd_bitmap * bitmap);
106- MTMD_API void mtmd_bitmap_set_id (mtmd_bitmap * bitmap, const char * id);
105+ MTMD_API const char * mtmd_bitmap_get_id (const mtmd_bitmap * bitmap);
106+ MTMD_API void mtmd_bitmap_set_id (mtmd_bitmap * bitmap, const char * id);
107107
108108
109109// mtmd_input_chunks
110110//
111111// this is simply a list of mtmd_input_chunk
112112// the elements can only be populated via mtmd_tokenize()
113- MTMD_API mtmd_input_chunks * mtmd_input_chunks_init (void );
114- MTMD_API size_t mtmd_input_chunks_size (mtmd_input_chunks * chunks);
115- MTMD_API mtmd_input_chunk * mtmd_input_chunks_get (mtmd_input_chunks * chunks, size_t idx);
116- MTMD_API void mtmd_input_chunks_free (mtmd_input_chunks * chunks);
113+ MTMD_API mtmd_input_chunks * mtmd_input_chunks_init (void );
114+ MTMD_API size_t mtmd_input_chunks_size (const mtmd_input_chunks * chunks);
115+ MTMD_API const mtmd_input_chunk * mtmd_input_chunks_get (const mtmd_input_chunks * chunks, size_t idx);
116+ MTMD_API void mtmd_input_chunks_free (mtmd_input_chunks * chunks);
117117
118118// mtmd_input_chunk
119119//
@@ -126,8 +126,8 @@ MTMD_API const mtmd_image_tokens * mtmd_input_chunk_get_tokens_image(const mtmd
126126// in case you want to use custom logic to handle the chunk (i.e. KV cache management)
127127// you can move the chunk ownership to your own code by copying it
128128// remember to free the chunk when you are done with it
129- MTMD_API mtmd_input_chunk * mtmd_input_chunk_copy (const mtmd_input_chunk * chunk);
130- MTMD_API void mtmd_input_chunk_free (mtmd_input_chunk * chunk);
129+ MTMD_API const mtmd_input_chunk * mtmd_input_chunk_copy (const mtmd_input_chunk * chunk);
130+ MTMD_API void mtmd_input_chunk_free (mtmd_input_chunk * chunk);
131131
132132
133133// mtmd_image_tokens
@@ -159,7 +159,7 @@ MTMD_API llama_pos mtmd_image_tokens_get_n_pos (const mtmd_image_tokens * i
159159MTMD_API int32_t mtmd_tokenize (mtmd_context * ctx,
160160 mtmd_input_chunks * output,
161161 const mtmd_input_text * text,
162- mtmd_bitmap ** bitmaps,
162+ const mtmd_bitmap ** bitmaps,
163163 size_t n_bitmaps);
164164
165165// returns 0 on success
@@ -189,10 +189,10 @@ MTMD_API mtmd_bitmap * mtmd_helper_bitmap_init_from_file(const char * fname);
189189MTMD_API mtmd_bitmap * mtmd_helper_bitmap_init_from_buf (const unsigned char * buf, size_t len);
190190
191191// helper to count the total number of tokens from a list of chunks, useful to keep track of KV cache
192- MTMD_API size_t mtmd_helper_get_n_tokens (mtmd_input_chunks * chunks);
192+ MTMD_API size_t mtmd_helper_get_n_tokens (const mtmd_input_chunks * chunks);
193193
194194// helper to count the total position of tokens from a list of chunks, useful to keep track of n_past
195- MTMD_API llama_pos mtmd_helper_get_n_pos (mtmd_input_chunks * chunks);
195+ MTMD_API llama_pos mtmd_helper_get_n_pos (const mtmd_input_chunks * chunks);
196196
197197// helper function that automatically:
198198// 1. run llama_decode() on text chunks
@@ -202,7 +202,7 @@ MTMD_API llama_pos mtmd_helper_get_n_pos(mtmd_input_chunks * chunks);
202202// this function is NOT thread-safe
203203MTMD_API int32_t mtmd_helper_eval_chunks (mtmd_context * ctx,
204204 struct llama_context * lctx,
205- mtmd_input_chunks * chunks,
205+ const mtmd_input_chunks * chunks,
206206 llama_pos n_past,
207207 llama_seq_id seq_id,
208208 int32_t n_batch,
@@ -213,7 +213,7 @@ MTMD_API int32_t mtmd_helper_eval_chunks(mtmd_context * ctx,
213213// this function is NOT thread-safe
214214MTMD_API int32_t mtmd_helper_eval_chunk_single (mtmd_context * ctx,
215215 struct llama_context * lctx,
216- mtmd_input_chunk * chunk,
216+ const mtmd_input_chunk * chunk,
217217 llama_pos n_past,
218218 llama_seq_id seq_id,
219219 int32_t n_batch,
@@ -275,8 +275,8 @@ struct bitmaps {
275275 // example:
276276 // auto bitmaps_c_ptr = bitmaps.c_ptr();
277277 // int32_t res = mtmd_tokenize(... bitmaps_c_ptr.data(), bitmaps_c_ptr.size());
278- std::vector<mtmd_bitmap *> c_ptr () {
279- std::vector<mtmd_bitmap *> res (entries.size ());
278+ std::vector<const mtmd_bitmap *> c_ptr () {
279+ std::vector<const mtmd_bitmap *> res (entries.size ());
280280 for (size_t i = 0 ; i < entries.size (); i++) {
281281 res[i] = entries[i].ptr .get ();
282282 }
@@ -290,7 +290,7 @@ struct input_chunks {
290290 input_chunks (mtmd_input_chunks * chunks) : ptr(chunks) {}
291291 ~input_chunks () = default ;
292292 size_t size () { return mtmd_input_chunks_size (ptr.get ()); }
293- mtmd_input_chunk * operator [](size_t idx) {
293+ const mtmd_input_chunk * operator [](size_t idx) {
294294 return mtmd_input_chunks_get (ptr.get (), idx);
295295 }
296296};
0 commit comments