2013-08-27 45 views
0

我正在使用turbojpeg讀取圖像。turbojpeg cpp中的realloc圖像緩衝區

我做的東西沿着這些路線:

m_data = tjAlloc(MAX_RAW_SIZE); 
c_jpeg_buffer = tjAlloc(MAX_RAW_SIZE); 
tjDecompressHeader2(jpegDecompressor, c_jpeg_buffer, _jpegSize, &tj_width, &tj_height, &jpegSubsamp); 
tjDecompress2(c_jpegDecompressor, m_data, _jpegSize, c_jpeg_buffer, tj_width, 0/*pitch*/, tj_height, TJPF_GRAY, TJFLAG_FASTDCT); 
tjFree(c_jpeg_buffer); 
tjFree(m_data); 

我想realloc的M_DATA和c_jpeg_buffer萬一_jpegSize或(tj_width * tj_height)過大。 turbojpeg文檔建議,如果我使用tjCompress2(...)或tjTransform(...),會自動發生。它沒有說明在這種情況下會發生什麼。假設我重新分配緩衝區 - 使用tjFree()它會安全嗎?

回答

0

對於turboJpeg ... RTFM的未來用戶...

如果發送預先分配的緩衝區,你需要通過它的大小。兩者都緩衝本身,大小可能會改變。