00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #if !defined(_SPANDSP_T42_H_)
00029 #define _SPANDSP_T42_H_
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 typedef struct t42_encode_state_s t42_encode_state_t;
00040
00041
00042 typedef struct t42_decode_state_s t42_decode_state_t;
00043
00044 typedef struct lab_params_s lab_params_t;
00045
00046 #if defined(__cplusplus)
00047 extern "C"
00048 {
00049 #endif
00050
00051 SPAN_DECLARE(void) srgb_to_lab(lab_params_t *s, uint8_t lab[], const uint8_t srgb[], int pixels);
00052
00053 SPAN_DECLARE(void) lab_to_srgb(lab_params_t *s, uint8_t srgb[], const uint8_t lab[], int pixels);
00054
00055 SPAN_DECLARE(void) set_lab_illuminant(lab_params_t *s, float new_xn, float new_yn, float new_zn);
00056
00057 SPAN_DECLARE(void) set_lab_gamut(lab_params_t *s, int L_min, int L_max, int a_min, int a_max, int b_min, int b_max, int ab_are_signed);
00058
00059 SPAN_DECLARE(void) set_lab_gamut2(lab_params_t *s, int L_P, int L_Q, int a_P, int a_Q, int b_P, int b_Q);
00060
00061 SPAN_DECLARE(int) t42_itulab_to_itulab(logging_state_t *logging, tdata_t *dst, tsize_t *dstlen, tdata_t src, tsize_t srclen, uint32_t width, uint32_t height);
00062
00063 SPAN_DECLARE(int) t42_itulab_to_jpeg(logging_state_t *logging, lab_params_t *s, tdata_t *dst, tsize_t *dstlen, tdata_t src, tsize_t srclen);
00064
00065 SPAN_DECLARE(int) t42_jpeg_to_itulab(logging_state_t *logging, lab_params_t *s, tdata_t *dst, tsize_t *dstlen, tdata_t src, tsize_t srclen);
00066
00067 SPAN_DECLARE(int) t42_srgb_to_itulab(logging_state_t *logging, lab_params_t *s, tdata_t *dst, tsize_t *dstlen, tdata_t src, tsize_t srclen, uint32_t width, uint32_t height);
00068
00069 SPAN_DECLARE(int) t42_itulab_to_srgb(logging_state_t *logging, lab_params_t *s, tdata_t dst, tsize_t *dstlen, tdata_t src, tsize_t srclen, uint32_t *width, uint32_t *height);
00070
00071 SPAN_DECLARE(void) t42_encode_set_options(t42_encode_state_t *s,
00072 uint32_t l0,
00073 int mx,
00074 int options);
00075
00076 SPAN_DECLARE(int) t42_encode_set_image_width(t42_encode_state_t *s, uint32_t image_width);
00077
00078 SPAN_DECLARE(int) t42_encode_set_image_length(t42_encode_state_t *s, uint32_t length);
00079
00080 SPAN_DECLARE(void) t42_encode_abort(t42_encode_state_t *s);
00081
00082 SPAN_DECLARE(void) t42_encode_comment(t42_encode_state_t *s, const uint8_t comment[], size_t len);
00083
00084
00085
00086
00087 SPAN_DECLARE(int) t42_encode_image_complete(t42_encode_state_t *s);
00088
00089 SPAN_DECLARE(int) t42_encode_get(t42_encode_state_t *s, uint8_t buf[], size_t max_len);
00090
00091 SPAN_DECLARE(uint32_t) t42_encode_get_image_width(t42_encode_state_t *s);
00092
00093 SPAN_DECLARE(uint32_t) t42_encode_get_image_length(t42_encode_state_t *s);
00094
00095 SPAN_DECLARE(int) t42_encode_get_compressed_image_size(t42_encode_state_t *s);
00096
00097 SPAN_DECLARE(int) t42_encode_set_row_read_handler(t42_encode_state_t *s,
00098 t4_row_read_handler_t handler,
00099 void *user_data);
00100
00101
00102
00103
00104
00105 SPAN_DECLARE(logging_state_t *) t42_encode_get_logging_state(t42_encode_state_t *s);
00106
00107 SPAN_DECLARE(int) t42_encode_restart(t42_encode_state_t *s, uint32_t image_width, uint32_t image_length);
00108
00109 SPAN_DECLARE(t42_encode_state_t *) t42_encode_init(t42_encode_state_t *s,
00110 uint32_t image_width,
00111 uint32_t image_length,
00112 t4_row_read_handler_t handler,
00113 void *user_data);
00114
00115 SPAN_DECLARE(int) t42_encode_release(t42_encode_state_t *s);
00116
00117 SPAN_DECLARE(int) t42_encode_free(t42_encode_state_t *s);
00118
00119 SPAN_DECLARE(void) t42_decode_rx_status(t42_decode_state_t *s, int status);
00120
00121 SPAN_DECLARE(int) t42_decode_put(t42_decode_state_t *s, const uint8_t data[], size_t len);
00122
00123 SPAN_DECLARE(int) t42_decode_set_row_write_handler(t42_decode_state_t *s,
00124 t4_row_write_handler_t handler,
00125 void *user_data);
00126
00127 SPAN_DECLARE(int) t42_decode_set_comment_handler(t42_decode_state_t *s,
00128 uint32_t max_comment_len,
00129 t4_row_write_handler_t handler,
00130 void *user_data);
00131
00132 SPAN_DECLARE(int) t42_decode_set_image_size_constraints(t42_decode_state_t *s,
00133 uint32_t max_xd,
00134 uint32_t max_yd);
00135
00136 SPAN_DECLARE(uint32_t) t42_decode_get_image_width(t42_decode_state_t *s);
00137
00138 SPAN_DECLARE(uint32_t) t42_decode_get_image_length(t42_decode_state_t *s);
00139
00140 SPAN_DECLARE(int) t42_decode_get_compressed_image_size(t42_decode_state_t *s);
00141
00142 SPAN_DECLARE(int) t42_decode_new_plane(t42_decode_state_t *s);
00143
00144
00145
00146
00147
00148 SPAN_DECLARE(logging_state_t *) t42_decode_get_logging_state(t42_decode_state_t *s);
00149
00150 SPAN_DECLARE(int) t42_decode_restart(t42_decode_state_t *s);
00151
00152 SPAN_DECLARE(t42_decode_state_t *) t42_decode_init(t42_decode_state_t *s,
00153 t4_row_write_handler_t handler,
00154 void *user_data);
00155
00156 SPAN_DECLARE(int) t42_decode_release(t42_decode_state_t *s);
00157
00158 SPAN_DECLARE(int) t42_decode_free(t42_decode_state_t *s);
00159
00160 #if defined(__cplusplus)
00161 }
00162 #endif
00163
00164 #endif
00165