From 2a6b79fb0c474c0735eccd84b0062f3633d9a234 Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 24 Nov 2024 12:04:54 -0800 Subject: [PATCH] Fix crash when opening multi-frame images Fix source of raw data when calculating raw minimum values for raw de-haze. --- rtengine/rawimagesource.cc | 8 ++++---- rtengine/rawimagesource.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index bc39211d2..22ee01955 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -2690,9 +2690,9 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, con */ if (ri->getSensorType() == ST_BAYER) { - getMinValsBayer(ri->zeroIsBad()); + getMinValsBayer(rawData, ri->zeroIsBad()); } else { - getMinValsXtrans(); + getMinValsXtrans(rawData); } // reddeha = minVals[0]; @@ -8384,7 +8384,7 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int /* Copyright (c) Ingo Weyrich 2020 (heckflosse67@gmx.de) */ -void RawImageSource::getMinValsXtrans() { +void RawImageSource::getMinValsXtrans(const array2D &rawData) { #ifdef _OPENMP #pragma omp parallel for reduction (min:minVals) #endif @@ -8530,7 +8530,7 @@ void RawImageSource::applyDngGainMap(const float black[4], const std::vector &rawData, bool zeroIsBad) { BENCHFUN if (!zeroIsBad) { #ifdef _OPENMP diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index cff3b97eb..8af649327 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -310,8 +310,8 @@ protected: void vflip (Imagefloat* im); void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override; void captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold, double &radius) override; - void getMinValsXtrans(); - void getMinValsBayer(bool zeroIsBad); + void getMinValsXtrans(const array2D &rawData); + void getMinValsBayer(const array2D &rawData, bool zeroIsBad); void applyDngGainMap(const float black[4], const std::vector &gainMaps); public: void wbMul2Camera(double &rm, double &gm, double &bm) override;