| Message ID | 20260223141945.58779-1-mzamazal@redhat.com |
|---|---|
| State | New |
| Headers | show |
| Series |
|
| Related | show |
diff --git a/include/libcamera/internal/software_isp/debayer_params.h b/include/libcamera/internal/software_isp/debayer_params.h index 1c0412d75..6772b43bc 100644 --- a/include/libcamera/internal/software_isp/debayer_params.h +++ b/include/libcamera/internal/software_isp/debayer_params.h @@ -18,11 +18,13 @@ namespace libcamera { struct DebayerParams { - Matrix<float, 3, 3> combinedMatrix; - RGB<float> blackLevel; - float gamma; - float contrastExp; - RGB<float> gains; + Matrix<float, 3, 3> combinedMatrix = { { 1.0, 0.0, 0.0, + 0.0, 1.0, 0.0, + 0.0, 0.0, 1.0 } }; + RGB<float> blackLevel = RGB<float>({ 0.0, 0.0, 0.0 }); + float gamma = 1.0; + float contrastExp = 1.0; + RGB<float> gains = RGB<float>({ 1.0, 1.0, 1.0 }); }; } /* namespace libcamera */
Debayer parameters and processing are currently run asynchronously. This can lead to assertion errors in case the processing tries to use not yet computed debayer parameters. To prevent this situation, specify some default values for DebayerParams members. This doesn't make correct parameters but prevents crashes or other crazy behaviours at least. Note this patch is just a workaround. The mutually asynchronous parameters computation and processing can cause more problems, like using parameters computed for a different frame. But it is non-trivial to fix that; in the meantime, setting the default values solves the worst problem. Closes: https://gitlab.freedesktop.org/camera/libcamera/-/issues/311 Signed-off-by: Milan Zamazal <mzamazal@redhat.com> --- .../libcamera/internal/software_isp/debayer_params.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)