fix: RS03RecognizeImage exhaustive search when --no-bdr-defect-management is used (fix #99)

This commit is contained in:
Stéphane Lesimple
2025-04-16 19:48:09 +02:00
parent e5bc7faa73
commit 7732231bb5

View File

@@ -444,16 +444,21 @@ int RS03RecognizeImage(Image *image)
Verbose("Warning: image size set to %" PRId64 " for debugging!\n", Closure->mediumSize); Verbose("Warning: image size set to %" PRId64 " for debugging!\n", Closure->mediumSize);
} }
else else
{ if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX; {
const guint64 bd_sl_sz = (Closure->noBdrDefectManagement ? BD_SL_SIZE_NODM : BD_SL_SIZE);
const guint64 bd_dl_sz = (Closure->noBdrDefectManagement ? BD_DL_SIZE_NODM : BD_DL_SIZE);
const guint64 bd_tl_sz = (Closure->noBdrDefectManagement ? BDXL_TL_SIZE_NODM : BDXL_TL_SIZE);
const guint64 bd_ql_sz = (Closure->noBdrDefectManagement ? BDXL_QL_SIZE_NODM : BDXL_QL_SIZE);
if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX;
else if(image_sectors < DVD_SL_SIZE) layer_size = DVD_SL_SIZE/GF_FIELDMAX; else if(image_sectors < DVD_SL_SIZE) layer_size = DVD_SL_SIZE/GF_FIELDMAX;
else if(image_sectors < DVD_DL_SIZE) layer_size = DVD_DL_SIZE/GF_FIELDMAX; else if(image_sectors < DVD_DL_SIZE) layer_size = DVD_DL_SIZE/GF_FIELDMAX;
else if(image_sectors < BD_SL_SIZE) else if(image_sectors < bd_sl_sz)
layer_size = (Closure->noBdrDefectManagement ? BD_SL_SIZE_NODM : BD_SL_SIZE)/GF_FIELDMAX; layer_size = bd_sl_sz/GF_FIELDMAX;
else if(image_sectors < BD_DL_SIZE) else if(image_sectors < bd_dl_sz)
layer_size = (Closure->noBdrDefectManagement ? BD_DL_SIZE_NODM : BD_DL_SIZE)/GF_FIELDMAX; layer_size = bd_dl_sz/GF_FIELDMAX;
else if(image_sectors < BDXL_TL_SIZE) else if(image_sectors < bd_tl_sz)
layer_size = (Closure->noBdrDefectManagement ? BDXL_TL_SIZE_NODM : BDXL_TL_SIZE)/GF_FIELDMAX; layer_size = bd_tl_sz/GF_FIELDMAX;
else layer_size = (Closure->noBdrDefectManagement ? BDXL_QL_SIZE_NODM : BDXL_QL_SIZE)/GF_FIELDMAX; else layer_size = bd_ql_sz/GF_FIELDMAX;
} }
Verbose(".. trying layer size %" PRId64 "\n", layer_size); Verbose(".. trying layer size %" PRId64 "\n", layer_size);