libobs: Fix SDR async video on non-SDR targets

Bug was seen when projecting SDR video capture on WCG displays.
This commit is contained in:
jpark37 2023-01-24 08:12:47 -08:00 committed by Jim
parent 2e7f7acfeb
commit 792f8473ee

View file

@ -2478,6 +2478,8 @@ static inline void obs_source_render_async_video(obs_source_t *source)
bool nonlinear_alpha = false;
switch (source_space) {
case GS_CS_SRGB:
linear_srgb = linear_srgb ||
(current_space != GS_CS_SRGB);
nonlinear_alpha = linear_srgb &&
!source->async_linear_alpha;
switch (current_space) {
@ -2492,7 +2494,6 @@ static inline void obs_source_render_async_video(obs_source_t *source)
nonlinear_alpha
? "DrawNonlinearAlphaMultiply"
: "DrawMultiply";
linear_srgb = true;
multiplier =
obs_get_video_sdr_white_level() / 80.0f;
}