MCPcopy Create free account
hub / github.com/TheRealMJP/BakingLab / tdefl_compress

Function tdefl_compress

SampleFramework11/v1.02/TinyEXR.cpp:3770–3840  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3768}
3769
3770tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf,
3771 size_t *pIn_buf_size, void *pOut_buf,
3772 size_t *pOut_buf_size, tdefl_flush flush) {
3773 if (!d) {
3774 if (pIn_buf_size)
3775 *pIn_buf_size = 0;
3776 if (pOut_buf_size)
3777 *pOut_buf_size = 0;
3778 return TDEFL_STATUS_BAD_PARAM;
3779 }
3780
3781 d->m_pIn_buf = pIn_buf;
3782 d->m_pIn_buf_size = pIn_buf_size;
3783 d->m_pOut_buf = pOut_buf;
3784 d->m_pOut_buf_size = pOut_buf_size;
3785 d->m_pSrc = (const mz_uint8 *)(pIn_buf);
3786 d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0;
3787 d->m_out_buf_ofs = 0;
3788 d->m_flush = flush;
3789
3790 if (((d->m_pPut_buf_func != NULL) ==
3791 ((pOut_buf != NULL) || (pOut_buf_size != NULL))) ||
3792 (d->m_prev_return_status != TDEFL_STATUS_OKAY) ||
3793 (d->m_wants_to_finish && (flush != TDEFL_FINISH)) ||
3794 (pIn_buf_size && *pIn_buf_size && !pIn_buf) ||
3795 (pOut_buf_size && *pOut_buf_size && !pOut_buf)) {
3796 if (pIn_buf_size)
3797 *pIn_buf_size = 0;
3798 if (pOut_buf_size)
3799 *pOut_buf_size = 0;
3800 return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM);
3801 }
3802 d->m_wants_to_finish |= (flush == TDEFL_FINISH);
3803
3804 if ((d->m_output_flush_remaining) || (d->m_finished))
3805 return (d->m_prev_return_status = tdefl_flush_output_buffer(d));
3806
3807#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
3808 if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) &&
3809 ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) &&
3810 ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS |
3811 TDEFL_RLE_MATCHES)) == 0)) {
3812 if (!tdefl_compress_fast(d))
3813 return d->m_prev_return_status;
3814 } else
3815#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN
3816 {
3817 if (!tdefl_compress_normal(d))
3818 return d->m_prev_return_status;
3819 }
3820
3821 if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) &&
3822 (pIn_buf))
3823 d->m_adler32 =
3824 (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf,
3825 d->m_pSrc - (const mz_uint8 *)pIn_buf);
3826
3827 if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) &&

Callers 2

mz_deflateFunction · 0.85
tdefl_compress_bufferFunction · 0.85

Calls 5

tdefl_compress_fastFunction · 0.85
tdefl_compress_normalFunction · 0.85
mz_adler32Function · 0.85
tdefl_flush_blockFunction · 0.85

Tested by

no test coverage detected