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 }