@@ -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