From: Steinar H. Gunderson Date: Sun, 9 Feb 2020 22:48:57 +0000 (+0100) Subject: Change to using RGBTriplet for white balance. X-Git-Tag: 1.9.2~47 X-Git-Url: https://git.sesse.net/?p=nageru;a=commitdiff_plain;h=fa42ce69a2508ea129a6cf7f97ace905be91aa91 Change to using RGBTriplet for white balance. --- diff --git a/nageru/mixer.cpp b/nageru/mixer.cpp index c9f7ed7..b0bb584 100644 --- a/nageru/mixer.cpp +++ b/nageru/mixer.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include diff --git a/nageru/mjpeg_encoder.h b/nageru/mjpeg_encoder.h index bb783d8..fe41929 100644 --- a/nageru/mjpeg_encoder.h +++ b/nageru/mjpeg_encoder.h @@ -20,6 +20,7 @@ extern "C" { #include #include +#include #include class HTTPD; diff --git a/nageru/scene.cpp b/nageru/scene.cpp index 06392c0..a926836 100644 --- a/nageru/scene.cpp +++ b/nageru/scene.cpp @@ -542,7 +542,7 @@ Scene::get_chain(Theme *theme, lua_State *L, unsigned num, const InputState &inp chosen_type == LIVE_INPUT_YCBCR_PLANAR || chosen_type == LIVE_INPUT_BGRA); int signal = find_signal_to_connect(L, input); - Theme::WhiteBalance wb = theme->get_white_balance_for_signal(signal); + RGBTriplet wb = theme->get_white_balance_for_signal(signal); if (fabs(wb.r - 1.0) < 1e-3 && fabs(wb.g - 1.0) < 1e-3 && fabs(wb.b - 1.0) < 1e-3) { // Neutral white balance. block->currently_chosen_alternative = find_index_of(block, IDENTITY_EFFECT); diff --git a/nageru/theme.cpp b/nageru/theme.cpp index e3cdac2..51aacd5 100644 --- a/nageru/theme.cpp +++ b/nageru/theme.cpp @@ -1689,7 +1689,7 @@ void Theme::set_wb(unsigned channel, float r, float g, float b) lock_guard lock(m); if (channel_signals.count(channel)) { - white_balance_for_signal[channel_signals[channel]] = WhiteBalance{ r, g, b }; + white_balance_for_signal[channel_signals[channel]] = RGBTriplet{ r, g, b }; } lua_getglobal(L, "set_wb"); @@ -1711,12 +1711,12 @@ void Theme::set_wb(unsigned channel, float r, float g, float b) assert(lua_gettop(L) == 0); } -Theme::WhiteBalance Theme::get_white_balance_for_signal(int signal) +RGBTriplet Theme::get_white_balance_for_signal(int signal) { if (white_balance_for_signal.count(signal)) { return white_balance_for_signal[signal]; } else { - return WhiteBalance{ 1.0, 1.0, 1.0 }; + return RGBTriplet{ 1.0, 1.0, 1.0 }; } } diff --git a/nageru/theme.h b/nageru/theme.h index 7fd1325..46f2489 100644 --- a/nageru/theme.h +++ b/nageru/theme.h @@ -2,6 +2,7 @@ #define _THEME_H 1 #include +#include #include #include #include @@ -94,9 +95,6 @@ public: // for non-interlaced inputs. std::vector input_frames; }; - struct WhiteBalance { - float r, g, b; - }; Chain get_chain(unsigned num, float t, unsigned width, unsigned height, const InputState &input_state); @@ -107,10 +105,10 @@ public: int get_channel_signal(unsigned channel); bool get_supports_set_wb(unsigned channel); void set_wb(unsigned channel, float r, float g, float b); - WhiteBalance get_white_balance_for_signal(int signal); + movit::RGBTriplet get_white_balance_for_signal(int signal); std::string get_channel_color(unsigned channel); - std::unordered_map white_balance_for_signal; + std::unordered_map white_balance_for_signal; std::vector get_transition_names(float t);