Lines Matching refs:enc

80 dk4rle_init(dk4_rl_enc_t *enc, int weod, dk4_er_t *erp)  in dk4rle_init()  argument
83 assert(NULL != enc); in dk4rle_init()
85 if (NULL != enc) { in dk4rle_init()
86 enc->ib = &(enc->ob[1]); in dk4rle_init()
87 enc->oused = 0; in dk4rle_init()
88 enc->iused = 0; in dk4rle_init()
89 enc->ao_si = 0; in dk4rle_init()
90 enc->ao_ss = 0; in dk4rle_init()
91 enc->ao_iu = 0; in dk4rle_init()
92 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_init()
93 enc->st = RLE_ENC_STATE_NO_RUN; in dk4rle_init()
94 enc->lwo = 0; in dk4rle_init()
95 enc->weod = ((0 != weod) ? 1 : 0); in dk4rle_init()
105 dk4rle_process_lwo(dk4_rl_enc_t *enc) in dk4rle_process_lwo() argument
108 assert(NULL != enc); in dk4rle_process_lwo()
110 if (0 < enc->ao_ss) { in dk4rle_process_lwo()
112 enc->ib, in dk4rle_process_lwo()
113 &((enc->ib)[enc->ao_si]), in dk4rle_process_lwo()
114 enc->ao_ss, in dk4rle_process_lwo()
118 enc->iused = enc->ao_iu; in dk4rle_process_lwo()
119 enc->st = enc->ao_st; in dk4rle_process_lwo()
120 enc->lwo = 0; in dk4rle_process_lwo()
126 dk4rle_add(dk4_rl_enc_t *enc, unsigned char ibyte, dk4_er_t *erp) in dk4rle_add() argument
132 assert(NULL != enc); in dk4rle_add()
134 if (NULL != enc) { in dk4rle_add()
135 if (0 != enc->lwo) { dk4rle_process_lwo(enc); } in dk4rle_add()
138 (enc->ib)[enc->iused] = ibyte; in dk4rle_add()
139 enc->iused += 1; in dk4rle_add()
140 switch (enc->st) { in dk4rle_add()
145 if ((enc->ib)[enc->iused - 1] != (enc->ib)[enc->iused - 2]) { in dk4rle_add()
150 enc->ob[0] = dk4rle_run_length_byte(enc->iused - 1); in dk4rle_add()
151 enc->oused = 2; in dk4rle_add()
153 enc->ao_si = enc->iused - 1; in dk4rle_add()
154 enc->ao_ss = 1; in dk4rle_add()
155 enc->ao_iu = 1; in dk4rle_add()
156 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_add()
161 if (128 <= enc->iused) { in dk4rle_add()
166 enc->ob[0] = dk4rle_run_length_byte(128); in dk4rle_add()
167 enc->oused = 2; in dk4rle_add()
169 enc->ao_si = 0; in dk4rle_add()
170 enc->ao_ss = 0; in dk4rle_add()
171 enc->ao_iu = 0; in dk4rle_add()
172 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_add()
180 if (4 <= enc->iused) { in dk4rle_add()
181 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 2]) { in dk4rle_add()
182 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 3]) { in dk4rle_add()
183 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 4]) { in dk4rle_add()
191 if (4 < enc->iused) { in dk4rle_add()
192 enc->ob[0] = dk4rle_literal_length_byte(enc->iused - 4); in dk4rle_add()
193 enc->oused = (enc->iused - 3); in dk4rle_add()
195 enc->ao_si = enc->iused - 4; in dk4rle_add()
196 enc->ao_ss = 4; in dk4rle_add()
197 enc->ao_iu = 4; in dk4rle_add()
198 enc->ao_st = RLE_ENC_STATE_RUN; in dk4rle_add()
200 enc->st = RLE_ENC_STATE_RUN; in dk4rle_add()
203 if (128 <= enc->iused) { in dk4rle_add()
204 if ((enc->ib)[127] == (enc->ib)[126]) { in dk4rle_add()
205 if ((enc->ib)[127] == (enc->ib)[125]) { in dk4rle_add()
206 enc->ob[0] = dk4rle_literal_length_byte(125); in dk4rle_add()
207 enc->oused = 126; in dk4rle_add()
209 enc->ao_si = 125; in dk4rle_add()
210 enc->ao_ss = 3; in dk4rle_add()
211 enc->ao_iu = 3; in dk4rle_add()
212 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_add()
214 enc->ob[0] = dk4rle_literal_length_byte(126); in dk4rle_add()
215 enc->oused = 127; in dk4rle_add()
217 enc->ao_si = 126; in dk4rle_add()
218 enc->ao_ss = 2; in dk4rle_add()
219 enc->ao_iu = 2; in dk4rle_add()
220 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_add()
223 enc->ob[0] = dk4rle_literal_length_byte(128); in dk4rle_add()
224 enc->oused = 129; in dk4rle_add()
226 enc->ao_si = 0; in dk4rle_add()
227 enc->ao_ss = 0; in dk4rle_add()
228 enc->ao_iu = 0; in dk4rle_add()
229 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_add()
236 enc->lwo = 1; in dk4rle_add()
247 dk4rle_finish(dk4_rl_enc_t *enc, dk4_er_t *erp) in dk4rle_finish() argument
252 assert(NULL != enc); in dk4rle_finish()
254 if (NULL != enc) { in dk4rle_finish()
255 if (0 != enc->lwo) { dk4rle_process_lwo(enc); } in dk4rle_finish()
257 if (0 < enc->iused) { in dk4rle_finish()
258 switch (enc->st) { in dk4rle_finish()
260 enc->ob[0] = dk4rle_run_length_byte(enc->iused); in dk4rle_finish()
261 enc->oused = 2; in dk4rle_finish()
263 enc->ao_si = 0; in dk4rle_finish()
264 enc->ao_ss = 0; in dk4rle_finish()
265 enc->ao_iu = 0; in dk4rle_finish()
266 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_finish()
267 if (0 != enc->weod) { in dk4rle_finish()
268 enc->ob[2] = (unsigned char)128; in dk4rle_finish()
269 enc->oused = 3; in dk4rle_finish()
273 enc->ob[0] = dk4rle_literal_length_byte(enc->iused); in dk4rle_finish()
274 enc->oused = enc->iused + 1; in dk4rle_finish()
276 enc->ao_si = 0; in dk4rle_finish()
277 enc->ao_ss = 0; in dk4rle_finish()
278 enc->ao_iu = 0; in dk4rle_finish()
279 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_finish()
280 if (0 != enc->weod) { in dk4rle_finish()
281 enc->ob[enc->iused] = (unsigned char)128; in dk4rle_finish()
282 enc->oused += 1; in dk4rle_finish()
287 if (0 != enc->weod) { in dk4rle_finish()
288 enc->ob[0] = (unsigned char)128; in dk4rle_finish()
289 enc->oused = 1; in dk4rle_finish()
291 enc->ao_si = 0; in dk4rle_finish()
292 enc->ao_ss = 0; in dk4rle_finish()
293 enc->ao_iu = 0; in dk4rle_finish()
294 enc->ao_st = RLE_ENC_STATE_NO_RUN; in dk4rle_finish()
298 enc->lwo = 1; in dk4rle_finish()
312 dk4_rl_enc_t const *enc, in dk4rle_output() argument
318 assert(NULL != enc); in dk4rle_output()
322 if ((NULL != enc) && (NULL != dptr) && (NULL != szptr)) { in dk4rle_output()
323 if (0 < enc->oused) { in dk4rle_output()
324 *dptr = &(enc->ob[0]); in dk4rle_output()
325 *szptr = enc->oused; in dk4rle_output()
375 dk4rle_init(dk4_rl_enc_t *enc, int weod, dk4_er_t *erp);
396 dk4rle_add(dk4_rl_enc_t *enc, unsigned char ibyte, dk4_er_t *erp);
417 dk4rle_finish(dk4_rl_enc_t *enc, dk4_er_t *erp);
433 const unsigned char **dptr, size_t *szptr, dk4_rl_enc_t *enc, dk4_er_t *erp
469 dk4rle_init(dk4_rl_enc_t *enc, int weod, dk4_er_t *erp)
473 assert(NULL != enc);
475 if (NULL != enc) {
476 DK4_MEMRES(enc, sizeof(dk4_rl_enc_t));
477 enc->st = RLE_ENC_STATE_NO_RUN;
478 enc->iused = 0;
479 enc->oused = 0;
480 enc->weod = ((0 != weod) ? 1 : 0);
509 dk4rle_add(dk4_rl_enc_t *enc, unsigned char ibyte, dk4_er_t *erp)
515 assert(NULL != enc);
517 if (NULL != enc) {
520 enc->ib[enc->iused] = ibyte;
521 enc->iused += 1;
522 switch (enc->st) {
524 if (enc->ib[enc->iused - 1] != enc->ib[enc->iused - 2]) {
527 enc->ob[1] = enc->ib[enc->iused - 2];
530 enc->ob[0] = dk4rle_run_length_byte(enc->iused - 1);
533 enc->oused = 2;
536 enc->ib[0] = enc->ib[enc->iused - 1];
539 enc->iused = 1;
545 enc->st = RLE_ENC_STATE_NO_RUN;
547 if (128 <= enc->iused) {
550 enc->ob[1] = enc->ib[0];
553 enc->ob[0] = dk4rle_run_length_byte(128);
556 enc->oused = 2;
559 enc->iused = 0;
565 enc->st = RLE_ENC_STATE_NO_RUN;
570 if (4 <= enc->iused) {
571 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 2]) {
572 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 3]) {
573 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 4]) {
582 if (4 < enc->iused) {
588 DK4_MEMCPY( &(enc->ob[1]), &(enc->ib[0]), (enc->iused - 4));
591 enc->ob[0] = dk4rle_literal_length_byte(enc->iused - 4);
594 enc->oused = enc->iused - 3;
598 &(enc->ib[0]),
599 &(enc->ib[enc->iused - 4]),
604 enc->iused = 4;
607 enc->st = RLE_ENC_STATE_RUN;
609 if (128 <= enc->iused) {
610 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 2]) {
611 if (enc->ib[enc->iused - 1] == enc->ib[enc->iused - 3]) {
617 DK4_MEMCPY( &(enc->ob[1]), &(enc->ib[0]), 125);
620 enc->ob[0] = dk4rle_literal_length_byte(128 - 3);
623 enc->oused = 126;
627 &(enc->ib[0]),
628 &(enc->ib[125]),
633 enc->iused = 3;
640 DK4_MEMCPY( &(enc->ob[1]), &(enc->ib[0]), 126 );
643 enc->ob[0] = dk4rle_literal_length_byte(128 - 2);
646 enc->oused = 127;
650 &(enc->ib[0]),
651 &(enc->ib[126]),
656 enc->iused = 2;
664 DK4_MEMCPY( &(enc->ob[1]), &(enc->ib[0]), enc->iused );
667 enc->ob[0] = dk4rle_literal_length_byte(128);
670 enc->oused = 129;
673 enc->iused = 0;
688 dk4rle_finish(dk4_rl_enc_t *enc, dk4_er_t *erp)
693 assert(NULL != enc);
695 if (NULL != enc) {
697 if (0 < enc->iused) {
698 switch (enc->st) {
702 enc->ob[1] = enc->ib[0];
705 enc->ob[0] = dk4rle_run_length_byte(enc->iused);
708 enc->oused = 2;
709 if (0 != enc->weod) {
712 enc->ob[2] = (unsigned char)128;
713 enc->oused = 3;
719 DK4_MEMCPY( &(enc->ob[1]), &(enc->ib[0]), enc->iused );
722 enc->ob[0] = dk4rle_literal_length_byte(enc->iused);
725 enc->oused = 1 + enc->iused;
726 if (0 != enc->weod) {
729 enc->ob[1 + enc->iused] = (unsigned char)128;
730 enc->oused += 1;
736 if (0 != enc->weod) {
737 enc->ob[0] = (unsigned char)128;
738 enc->oused = 1;
742 enc->iused = 0;
743 enc->st = RLE_ENC_STATE_NO_RUN;
752 const unsigned char **dptr, size_t *szptr, dk4_rl_enc_t *enc, dk4_er_t *erp
758 assert(NULL != enc);
762 if (NULL != enc) {
763 if (0 < enc->oused) {
764 *dptr = &(enc->ob[0]);
765 *szptr = enc->oused;