libpng
libpng copied to clipboard
zstream not in use when calling png_write_png second time
I have this code:
std::vector<uint8_t> out;
out.reserve(w * h * 4);
png_set_write_fn(png_ptr, &out, PngWriteCallback, NULL);
png_set_compression_strategy(png_ptr, Z_HUFFMAN_ONLY);
png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
std::vector<uint8_t> out1 = std::move(out);
out.clear();
out.reserve(w * h * 4);
png_set_compression_strategy(png_ptr, Z_FILTERED);
png_write_png(png_ptr, info_ptr, PNG_TRANSFORM_IDENTITY, NULL);
However, when I call png_write_png second time, program crashes with:
libpng warning: zstream not in use (internal error)
libpng error: stream error
This happens on Linux with libpng15, on Windows 10 all is working correctly.