diff options
Diffstat (limited to 'aiq/aiq_results.cpp')
-rw-r--r-- | aiq/aiq_results.cpp | 91 |
1 files changed, 37 insertions, 54 deletions
diff --git a/aiq/aiq_results.cpp b/aiq/aiq_results.cpp index 9dda17c..f727f36 100644 --- a/aiq/aiq_results.cpp +++ b/aiq/aiq_results.cpp @@ -14,9 +14,6 @@ #include <libcamera/base/log.h> -/* Macros used by imported code */ -#define STDCOPY(dst, src, size) std::copy((src), ((src) + (size)), (dst)) - namespace libcamera { LOG_DEFINE_CATEGORY(AIQResults) @@ -111,17 +108,14 @@ void AiqResults::setAe(ia_aiq_ae_results *ae) ae->weight_grid->height; gridElements = std::clamp<unsigned int>(gridElements, 1, MAX_AE_GRID_SIZE); - STDCOPY(ae_.weight_grid->weights, - ae->weight_grid->weights, - gridElements * sizeof(char)); + std::copy_n(ae->weight_grid->weights, gridElements, ae_.weight_grid->weights); } else { LOG(AIQResults, Error) << "Not copying AE Weight Grids"; } // Copy the flash info structure if (ae_.flashes && ae->flashes) { - STDCOPY((int8_t *)ae_.flashes, (int8_t *)ae->flashes, - NUM_FLASH_LEDS * sizeof(ia_aiq_flash_parameters)); + std::copy_n(ae->flashes, NUM_FLASH_LEDS, ae_.flashes); } else { LOG(AIQResults, Error) << "Not copying AE Flashes"; } @@ -172,20 +166,16 @@ void AiqResults::setGbce(ia_aiq_gbce_results *gbce) gbce_.gamma_lut_size = gbce->gamma_lut_size; - STDCOPY((int8_t *)gbce_.r_gamma_lut, (int8_t *)gbce->r_gamma_lut, - gbce->gamma_lut_size * sizeof(float)); - STDCOPY((int8_t *)gbce_.b_gamma_lut, (int8_t *)gbce->b_gamma_lut, - gbce->gamma_lut_size * sizeof(float)); - STDCOPY((int8_t *)gbce_.g_gamma_lut, (int8_t *)gbce->g_gamma_lut, - gbce->gamma_lut_size * sizeof(float)); + std::copy_n(gbce->r_gamma_lut, gbce->gamma_lut_size, gbce_.r_gamma_lut); + std::copy_n(gbce->b_gamma_lut, gbce->gamma_lut_size, gbce_.b_gamma_lut); + std::copy_n(gbce->g_gamma_lut, gbce->gamma_lut_size, gbce_.g_gamma_lut); } else { LOG(AIQResults, Error) << "Not copying Gamma LUT channels"; } if (gbce->tone_map_lut_size > 0) { gbce_.tone_map_lut_size = gbce->tone_map_lut_size; - STDCOPY((int8_t *)gbce_.tone_map_lut, (int8_t *)gbce->tone_map_lut, - gbce->tone_map_lut_size * sizeof(float)); + std::copy_n(gbce->tone_map_lut, gbce->tone_map_lut_size, gbce_.tone_map_lut); } else { LOG(AIQResults, Error) << "Not copying Tone Mapping Gain LUT"; } @@ -200,20 +190,20 @@ void AiqResults::setPa(ia_aiq_pa_results *pa) { ASSERT(pa); - STDCOPY(&pa_.color_conversion_matrix[0][0], &pa->color_conversion_matrix[0][0], - MAX_COLOR_CONVERSION_MATRIX * MAX_COLOR_CONVERSION_MATRIX * - sizeof(pa->color_conversion_matrix[0][0])); + std::copy_n(&pa->color_conversion_matrix[0][0], + MAX_COLOR_CONVERSION_MATRIX * MAX_COLOR_CONVERSION_MATRIX, + &pa_.color_conversion_matrix[0][0]); if (pa_.preferred_acm && pa->preferred_acm) { pa_.preferred_acm->sector_count = pa->preferred_acm->sector_count; - STDCOPY(pa_.preferred_acm->hue_of_sectors, - pa->preferred_acm->hue_of_sectors, - sizeof(*pa->preferred_acm->hue_of_sectors) * pa->preferred_acm->sector_count); + std::copy_n(pa->preferred_acm->hue_of_sectors, + pa->preferred_acm->sector_count, + pa_.preferred_acm->hue_of_sectors); - STDCOPY(pa_.preferred_acm->advanced_color_conversion_matrices[0][0], - pa->preferred_acm->advanced_color_conversion_matrices[0][0], - sizeof(*pa->preferred_acm->advanced_color_conversion_matrices) * pa->preferred_acm->sector_count); + std::copy_n(pa->preferred_acm->advanced_color_conversion_matrices[0][0], + pa->preferred_acm->sector_count, + pa_.preferred_acm->advanced_color_conversion_matrices[0][0]); } else { LOG(AIQResults, Error) << "Not copying PA hue of sectors"; } @@ -222,17 +212,17 @@ void AiqResults::setPa(ia_aiq_pa_results *pa) pa_.ir_weight->height = pa->ir_weight->height; pa_.ir_weight->width = pa->ir_weight->width; - STDCOPY(pa_.ir_weight->ir_weight_grid_R, - pa->ir_weight->ir_weight_grid_R, - sizeof(*pa->ir_weight->ir_weight_grid_R) * pa->ir_weight->height * pa->ir_weight->width); + std::copy_n(pa->ir_weight->ir_weight_grid_R, + pa->ir_weight->height * pa->ir_weight->width, + pa_.ir_weight->ir_weight_grid_R); - STDCOPY(pa_.ir_weight->ir_weight_grid_G, - pa->ir_weight->ir_weight_grid_G, - sizeof(*pa->ir_weight->ir_weight_grid_G) * pa->ir_weight->height * pa->ir_weight->width); + std::copy_n(pa->ir_weight->ir_weight_grid_G, + pa->ir_weight->height * pa->ir_weight->width, + pa_.ir_weight->ir_weight_grid_G); - STDCOPY(pa_.ir_weight->ir_weight_grid_B, - pa->ir_weight->ir_weight_grid_B, - sizeof(*pa->ir_weight->ir_weight_grid_B) * pa->ir_weight->height * pa->ir_weight->width); + std::copy_n(pa->ir_weight->ir_weight_grid_B, + pa->ir_weight->height * pa->ir_weight->width, + pa_.ir_weight->ir_weight_grid_B); } else { LOG(AIQResults, Error) << "Not copying IR weight"; } @@ -253,13 +243,13 @@ void AiqResults::setSa(ia_aiq_sa_results *sa) sa_.height = sa->height; sa_.lsc_update = sa->lsc_update; + uint32_t lscGridSize = sa_.width * sa_.height; /* Check against one of the vectors but resize applicable to all. */ - if (channelGr_.size() < (sa_.width * sa_.height)) { - int lscNewSize = sa_.width * sa_.height; - channelGr_.resize(lscNewSize); - channelGb_.resize(lscNewSize); - channelR_.resize(lscNewSize); - channelB_.resize(lscNewSize); + if (channelGr_.size() < lscGridSize) { + channelGr_.resize(lscGridSize); + channelGb_.resize(lscGridSize); + channelR_.resize(lscGridSize); + channelB_.resize(lscGridSize); /* Update the SA data pointers to new memory locations. */ sa_.channel_gr = channelGr_.data(); @@ -269,23 +259,16 @@ void AiqResults::setSa(ia_aiq_sa_results *sa) } if (sa->lsc_update) { - uint32_t memCopySize = sa->width * sa->height * sizeof(float); - - STDCOPY((int8_t *)sa_.channel_gr, (int8_t *)sa->channel_gb, - memCopySize); - STDCOPY((int8_t *)sa_.channel_gb, (int8_t *)sa->channel_gr, - memCopySize); - STDCOPY((int8_t *)sa_.channel_r, (int8_t *)sa->channel_r, - memCopySize); - STDCOPY((int8_t *)sa_.channel_b, (int8_t *)sa->channel_b, - memCopySize); + std::copy_n(sa->channel_gr, lscGridSize, sa_.channel_gr); + std::copy_n(sa->channel_gb, lscGridSize, sa_.channel_gb); + std::copy_n(sa->channel_r, lscGridSize, sa_.channel_r); + std::copy_n(sa->channel_b, lscGridSize, sa_.channel_b); } else { - LOG(AIQResults, Error) << "Not copying LSC tables."; + LOG(AIQResults, Debug) << "Not copying LSC tables."; } - STDCOPY(&sa_.light_source[0], - &sa->light_source[0], - CMC_NUM_LIGHTSOURCES * sizeof(sa->light_source[0])); + std::copy_n(&sa->light_source[0], CMC_NUM_LIGHTSOURCES, &sa_.light_source[0]); + sa_.scene_difficulty = sa->scene_difficulty; sa_.num_patches = sa->num_patches; sa_.covered_area = sa->covered_area; |