SPAN_DECLARE(int) t4_rx_put(t4_rx_state_t *s, const uint8_t buf[], size_t len) { s->line_image_size += 8*len; switch (s->metadata.compression) { case T4_COMPRESSION_T4_1D: case T4_COMPRESSION_T4_2D: case T4_COMPRESSION_T6: return t4_t6_decode_put(&s->decoder.t4_t6, buf, len); case T4_COMPRESSION_T85: case T4_COMPRESSION_T85_L0: return t85_decode_put(&s->decoder.t85, buf, len); #if defined(SPANDSP_SUPPORT_T88) case T4_COMPRESSION_T88: break; #endif case T4_COMPRESSION_T42_T81: return t42_decode_put(&s->decoder.t42, buf, len); #if defined(SPANDSP_SUPPORT_T43) case T4_COMPRESSION_T43: return t43_decode_put(&s->decoder.t43, buf, len); #endif #if defined(SPANDSP_SUPPORT_T45) case T4_COMPRESSION_T45: break; #endif } return T4_DECODE_OK; }
SPAN_DECLARE(int) t4_rx_end_page(t4_rx_state_t *s) { int length; length = 0; switch (s->line_encoding) { case T4_COMPRESSION_ITU_T4_1D: case T4_COMPRESSION_ITU_T4_2D: case T4_COMPRESSION_ITU_T6: t4_t6_decode_put(&s->decoder.t4_t6, NULL, 0); length = t4_t6_decode_get_image_length(&s->decoder.t4_t6); break; case T4_COMPRESSION_ITU_T42: t42_decode_put(&s->decoder.t42, NULL, 0); length = t42_decode_get_image_length(&s->decoder.t42); break; #if defined(SPANDSP_SUPPORT_T43) case T4_COMPRESSION_ITU_T43: t43_decode_put(&s->decoder.t43, NULL, 0); length = t43_decode_get_image_length(&s->decoder.t43); break; #endif case T4_COMPRESSION_ITU_T85: case T4_COMPRESSION_ITU_T85_L0: t85_decode_put(&s->decoder.t85, NULL, 0); length = t85_decode_get_image_length(&s->decoder.t85); break; } if (length == 0) return -1; if (s->tiff.tiff_file) { if (write_tiff_image(s) == 0) s->current_page++; s->tiff.image_size = 0; } else { s->current_page++; } return 0; }
SPAN_DECLARE(int) t4_rx_put(t4_rx_state_t *s, const uint8_t buf[], size_t len) { s->line_image_size += 8*len; switch (s->line_encoding) { case T4_COMPRESSION_ITU_T4_1D: case T4_COMPRESSION_ITU_T4_2D: case T4_COMPRESSION_ITU_T6: return t4_t6_decode_put(&s->decoder.t4_t6, buf, len); case T4_COMPRESSION_ITU_T42: return t42_decode_put(&s->decoder.t42, buf, len); #if defined(SPANDSP_SUPPORT_T43) case T4_COMPRESSION_ITU_T43: return t43_decode_put(&s->decoder.t43, buf, len); #endif case T4_COMPRESSION_ITU_T85: case T4_COMPRESSION_ITU_T85_L0: return t85_decode_put(&s->decoder.t85, buf, len); } return T4_DECODE_OK; }
SPAN_DECLARE(int) t4_rx_end_page(t4_rx_state_t *s) { int length; length = 0; switch (s->metadata.compression) { case T4_COMPRESSION_T4_1D: case T4_COMPRESSION_T4_2D: case T4_COMPRESSION_T6: t4_t6_decode_put(&s->decoder.t4_t6, NULL, 0); length = t4_t6_decode_get_image_length(&s->decoder.t4_t6); break; case T4_COMPRESSION_T85: case T4_COMPRESSION_T85_L0: t85_decode_put(&s->decoder.t85, NULL, 0); length = t85_decode_get_image_length(&s->decoder.t85); break; #if defined(SPANDSP_SUPPORT_T88) case T4_COMPRESSION_T88: t88_decode_put(&s->decoder.t88, NULL, 0); length = t88_decode_get_image_length(&s->decoder.t88); break; #endif case T4_COMPRESSION_T42_T81: t42_decode_put(&s->decoder.t42, NULL, 0); length = t42_decode_get_image_length(&s->decoder.t42); if (s->decoder.t42.samples_per_pixel == 3) select_tiff_compression(s, T4_IMAGE_TYPE_COLOUR_8BIT); else select_tiff_compression(s, T4_IMAGE_TYPE_GRAY_8BIT); break; #if defined(SPANDSP_SUPPORT_T43) case T4_COMPRESSION_T43: t43_decode_put(&s->decoder.t43, NULL, 0); length = t43_decode_get_image_length(&s->decoder.t43); break; #endif #if defined(SPANDSP_SUPPORT_T45) case T4_COMPRESSION_T45: t45_decode_put(&s->decoder.t45, NULL, 0); length = t45_decode_get_image_length(&s->decoder.t45); break; #endif } if (length == 0) return -1; if (s->tiff.tiff_file) { if (write_tiff_image(s) == 0) s->current_page++; s->tiff.image_size = 0; } else { s->current_page++; } return 0; }