49 return (
data_ !=
nullptr);
68 for(
auto iter =
pool.begin(); iter !=
pool.end(); ++iter)
70 if(iter->second.allocLen_ >=
len)
72 auto b = iter->second;
91 std::map<uint8_t*, GrkIOBuf>
pool;
96 Strip(GrkImage* outputImage, uint16_t index, uint32_t nominalHeight, uint8_t reduce);
116 uint32_t nominalStripHeight, uint8_t reduce, GrkImage* outputImg,
uint8_t buf
Definition BitIO.h:84
size_t offset
Definition BitIO.h:80
void * ioUserData
Definition CodeStreamDecompress.h:332
grk_io_pixels_callback ioBufferCallback
Definition CodeStreamDecompress.h:331
uint32_t len
Definition Codeblock.h:38
uint8_t * data
Definition Codeblock.h:61
size_t dataLen
Definition SparseBuffer.h:52
Definition StripCache.h:59
std::map< uint8_t *, GrkIOBuf > pool
Definition StripCache.h:91
~BufPool(void)
Definition StripCache.h:61
void put(GrkIOBuf b)
Definition StripCache.h:83
GrkIOBuf get(size_t len)
Definition StripCache.h:66
Definition StripCache.h:110
void init(uint32_t concurrency, uint16_t numTiles_, uint32_t numStrips, uint32_t nominalStripHeight, uint8_t reduce, GrkImage *outputImg, grk_io_pixels_callback ioBufferCallback, void *ioUserData, grk_io_register_reclaim_callback grkRegisterReclaimCallback)
uint16_t numTiles_
Definition StripCache.h:130
bool ingestTile(GrkImage *src)
void * ioUserData_
Definition StripCache.h:135
uint32_t numStrips_
Definition StripCache.h:131
bool ingestTile(uint32_t threadId, GrkImage *src)
MinHeap< GrkIOBuf, uint32_t, MinHeapFakeLocker > serializeHeap
Definition StripCache.h:138
std::mutex serializeMutex_
Definition StripCache.h:137
bool ingestStrip(uint32_t threadId, Tile *src, uint32_t yBegin, uint32_t yEnd)
void returnBufferToPool(uint32_t threadId, GrkIOBuf b)
bool multiTile_
Definition StripCache.h:141
std::vector< BufPool * > pools_
Definition StripCache.h:128
bool initialized_
Definition StripCache.h:140
uint64_t packedRowBytes_
Definition StripCache.h:134
uint32_t nominalStripHeight_
Definition StripCache.h:132
uint32_t imageY0_
Definition StripCache.h:133
std::mutex heapMutex_
Definition StripCache.h:139
Strip ** strips
Definition StripCache.h:129
bool serialize(uint32_t threadId, GrkIOBuf buf)
grk_io_pixels_callback ioBufferCallback_
Definition StripCache.h:136
uint32_t yEnd
Definition mct.h:49
uint32_t yBegin
Definition mct.h:48
Copyright (C) 2016-2023 Grok Image Compression Inc.
Definition ICacheable.h:20
bool(* grk_io_pixels_callback)(uint32_t threadId, grk_io_buf buffer, void *user_data)
Definition TileCache.h:456
void * grk_aligned_malloc(size_t size)
Allocate memory aligned to a 16 byte boundary.
Definition MemManager.cpp:76
void grk_aligned_free(void *ptr)
Definition MemManager.cpp:80
void(* grk_io_register_reclaim_callback)(grk_io_init io_init, grk_io_callback reclaim_callback, void *io_user_data, void *reclaim_user_data)
Definition TileCache.h:453
Definition TileCache.h:437
uint8_t * data_
Definition TileCache.h:438
bool pooled_
Definition TileCache.h:442
size_t offset_
Definition TileCache.h:439
size_t allocLen_
Definition TileCache.h:441
size_t len_
Definition TileCache.h:440
uint32_t index_
Definition TileCache.h:443
Definition StripCache.h:13
GrkIOBuf(uint8_t *data, size_t offset, size_t dataLen, size_t allocLen, bool pooled, uint32_t index)
Definition StripCache.h:16
GrkIOBuf()
Definition StripCache.h:15
uint32_t getIndex(void) const
Definition StripCache.h:35
void dealloc()
Definition StripCache.h:51
GrkIOBuf(const grk_io_buf rhs)
Definition StripCache.h:26
bool alloc(size_t len)
Definition StripCache.h:39
Definition StripCache.h:95
std::atomic< uint32_t > tileCounter
Definition StripCache.h:103
GrkImage * stripImg
Definition StripCache.h:102
uint32_t reduceDim(uint32_t dim)
std::atomic< bool > allocatedInterleaved_
Definition StripCache.h:106
std::mutex interleaveMutex_
Definition StripCache.h:105
Strip(GrkImage *outputImage, uint16_t index, uint32_t nominalHeight, uint8_t reduce)
uint8_t reduce_
Definition StripCache.h:104
bool allocInterleaved(uint64_t len, BufPool *pool)
bool allocInterleavedLocked(uint64_t len, BufPool *pool)