Realloc буфер изображения в Turbojpeg CPP

Я использую Turbojpeg для чтения изображений.

Я делаю что-то вроде этого:

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 …

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]