2013-08-27 5 views
0

Я использую turbojpeg для чтения изображений.realloc буфер изображения в turbojpeg cpp

я делаю что-то вдоль этих линий:

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); 

Я хочу перераспределить m_data и c_jpeg_buffer в случае _jpegSize или (tj_width * tj_height) слишком велики. Документация turbojpeg предполагает, что это произойдет автоматически, если я использую tjCompress2 (...) или tjTransform (...). Он ничего не говорит о том, что происходит в этом случае. Предположим, я перезаряжу буферы - было бы безопасно использовать tjFree()?

ответ

0

Для будущих пользователей turboJpeg ... RTFM ...

Если отправить предварительно выделенный буфер, вы должны передать его размер. Оба буфера сами и размер могут быть изменены.

 Смежные вопросы

  • Нет связанных вопросов^_^