Mercurial > hg > dmlib
comparison tools/lib64gfx.c @ 2061:221a95caa91e
Add some #ifdef'd out RLE (de)compression debug prints.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 04 Dec 2018 20:30:08 +0200 |
parents | e7f2ddaf94a6 |
children | 4276b8c0fef0 |
comparison
equal
deleted
inserted
replaced
2060:d5ea82da40ab | 2061:221a95caa91e |
---|---|
390 } | 390 } |
391 | 391 |
392 dmFree(stats); | 392 dmFree(stats); |
393 } | 393 } |
394 | 394 |
395 //#define RLE_DEBUG | |
395 | 396 |
396 void dmSetupRLEBuffers(DMGrowBuf *dst, DMGrowBuf *src, const DMCompParams *cfg) | 397 void dmSetupRLEBuffers(DMGrowBuf *dst, DMGrowBuf *src, const DMCompParams *cfg) |
397 { | 398 { |
398 if (cfg->flags & DM_RLE_BACKWARDS_INPUT) | 399 if (cfg->flags & DM_RLE_BACKWARDS_INPUT) |
399 { | 400 { |
404 if (cfg->flags & DM_RLE_BACKWARDS_OUTPUT) | 405 if (cfg->flags & DM_RLE_BACKWARDS_OUTPUT) |
405 { | 406 { |
406 dst->backwards = TRUE; | 407 dst->backwards = TRUE; |
407 dst->offs = dst->size; | 408 dst->offs = dst->size; |
408 } | 409 } |
410 | |
411 #ifdef RLE_DEBUG | |
412 fprintf(stderr, "dmSetupRLEBuffers:\n"); | |
413 fprintf(stderr, " src.len=%" DM_PRIx_SIZE_T ", src.size=%" DM_PRIx_SIZE_T ", src.offs=%" DM_PRIx_SIZE_T "\n", src->len, src->size, src->offs); | |
414 fprintf(stderr, " dst.len=%" DM_PRIx_SIZE_T ", dst.size=%" DM_PRIx_SIZE_T ", dst.offs=%" DM_PRIx_SIZE_T "\n", dst->len, dst->size, dst->offs); | |
415 fprintf(stderr, "------------------\n"); | |
416 #endif | |
409 } | 417 } |
410 | 418 |
411 | 419 |
412 void dmFinishRLEBuffers(DMGrowBuf *dst, DMGrowBuf *src, const DMCompParams *cfg) | 420 void dmFinishRLEBuffers(DMGrowBuf *dst, DMGrowBuf *src, const DMCompParams *cfg) |
413 { | 421 { |
414 (void) src; | 422 (void) src; |
423 | |
424 #ifdef RLE_DEBUG | |
425 fprintf(stderr, "------------------\n"); | |
426 fprintf(stderr, "dmFinishRLEBuffers:\n"); | |
427 fprintf(stderr, " src.len=%" DM_PRIx_SIZE_T ", src.size=%" DM_PRIx_SIZE_T ", src.offs=%" DM_PRIx_SIZE_T "\n", src->len, src->size, src->offs); | |
428 fprintf(stderr, " dst.len=%" DM_PRIx_SIZE_T ", dst.size=%" DM_PRIx_SIZE_T ", dst.offs=%" DM_PRIx_SIZE_T "\n", dst->len, dst->size, dst->offs); | |
429 #endif | |
415 | 430 |
416 if (cfg->flags & DM_RLE_BACKWARDS_OUTPUT) | 431 if (cfg->flags & DM_RLE_BACKWARDS_OUTPUT) |
417 { | 432 { |
418 memmove(dst->data, dst->data + dst->offs, dst->len); | 433 memmove(dst->data, dst->data + dst->offs, dst->len); |
419 dst->offs = 0; | 434 dst->offs = 0; |
432 case DM_OUT_CROP_START: | 447 case DM_OUT_CROP_START: |
433 if (cfg->cropOutLen <= dst->len) | 448 if (cfg->cropOutLen <= dst->len) |
434 dst->len = cfg->cropOutLen; | 449 dst->len = cfg->cropOutLen; |
435 break; | 450 break; |
436 } | 451 } |
452 | |
453 #ifdef RLE_DEBUG | |
454 fprintf(stderr, "ADJUSTED:\n"); | |
455 fprintf(stderr, " src.len=%" DM_PRIx_SIZE_T ", src.size=%" DM_PRIx_SIZE_T ", src.offs=%" DM_PRIx_SIZE_T "\n", src->len, src->size, src->offs); | |
456 fprintf(stderr, " dst.len=%" DM_PRIx_SIZE_T ", dst.size=%" DM_PRIx_SIZE_T ", dst.offs=%" DM_PRIx_SIZE_T "\n", dst->len, dst->size, dst->offs); | |
457 #endif | |
437 } | 458 } |
438 | 459 |
439 | 460 |
440 int dmGenericRLEOutputRun(DMGrowBuf *dst, const DMCompParams *cfg, const Uint8 data, const unsigned int count) | 461 int dmGenericRLEOutputRun(DMGrowBuf *dst, const DMCompParams *cfg, const Uint8 data, const unsigned int count) |
441 { | 462 { |
473 // A simple marker byte RLE variant: [Marker] [count] [data] | 494 // A simple marker byte RLE variant: [Marker] [count] [data] |
474 if ((cfg->flags & DM_RLE_BYTE_RUNS) && data == cfg->rleMarkerB) | 495 if ((cfg->flags & DM_RLE_BYTE_RUNS) && data == cfg->rleMarkerB) |
475 { | 496 { |
476 if (!dmGrowBufGetU8(&src, &tmp1)) | 497 if (!dmGrowBufGetU8(&src, &tmp1)) |
477 { | 498 { |
499 #ifdef RLE_DEBUG | |
500 fprintf(stderr, " marker=$%02x\n", cfg->rleMarkerB); | |
501 fprintf(stderr, " src.len=%" DM_PRIx_SIZE_T ", src.size=%" DM_PRIx_SIZE_T ", src.offs=%" DM_PRIx_SIZE_T "\n", src.len, src.size, src.offs); | |
502 fprintf(stderr, " dst.len=%" DM_PRIx_SIZE_T ", dst.size=%" DM_PRIx_SIZE_T ", dst.offs=%" DM_PRIx_SIZE_T "\n", dst->len, dst->size, dst->offs); | |
503 #endif | |
478 res = dmError(DMERR_INVALID_DATA, | 504 res = dmError(DMERR_INVALID_DATA, |
479 "%s: RLE: Invalid data/out of data for byte length run sequence (1).\n", | 505 "%s: RLE: Invalid data/out of data for byte length run sequence (1).\n", |
480 cfg->func); | 506 cfg->func); |
481 goto out; | 507 goto out; |
482 } | 508 } |
483 if (!dmGrowBufGetU8(&src, &tmp2)) | 509 if (!dmGrowBufGetU8(&src, &tmp2)) |
484 { | 510 { |
511 #ifdef RLE_DEBUG | |
512 fprintf(stderr, " marker=$%02x, data=$%02x\n", cfg->rleMarkerB, tmp1); | |
513 fprintf(stderr, " src.len=%" DM_PRIx_SIZE_T ", src.size=%" DM_PRIx_SIZE_T ", src.offs=%" DM_PRIx_SIZE_T "\n", src.len, src.size, src.offs); | |
514 fprintf(stderr, " dst.len=%" DM_PRIx_SIZE_T ", dst.size=%" DM_PRIx_SIZE_T ", dst.offs=%" DM_PRIx_SIZE_T "\n", dst->len, dst->size, dst->offs); | |
515 #endif | |
485 res = dmError(DMERR_INVALID_DATA, | 516 res = dmError(DMERR_INVALID_DATA, |
486 "%s: RLE: Invalid data/out of data for byte length run sequence (2).\n", | 517 "%s: RLE: Invalid data/out of data for byte length run sequence (2).\n", |
487 cfg->func); | 518 cfg->func); |
488 goto out; | 519 goto out; |
489 } | 520 } |