X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru%2Ftheme.cpp;h=2bb9e807495e32a2d316ee5287a6f25b45208dc8;hb=76a40fb903cb2d9b47473d48c5eaad97d957d6e7;hp=d63c853ff2fef227e0d620fe66ddc5511d3c3575;hpb=1bf2b3e600dc5485f4957a419459b997d721e5fa;p=nageru diff --git a/nageru/theme.cpp b/nageru/theme.cpp index d63c853..2bb9e80 100644 --- a/nageru/theme.cpp +++ b/nageru/theme.cpp @@ -102,6 +102,7 @@ InputStateInfo::InputStateInfo(const InputState &input_state) last_is_connected[signal_num] = userdata->last_is_connected; last_frame_rate_nom[signal_num] = userdata->last_frame_rate_nom; last_frame_rate_den[signal_num] = userdata->last_frame_rate_den; + last_pixel_format[signal_num] = userdata->pixel_format; has_last_subtitle[signal_num] = userdata->has_last_subtitle; last_subtitle[signal_num] = userdata->last_subtitle; } @@ -866,7 +867,7 @@ const luaL_Reg Scene_funcs[] = { { "new", Scene_new }, { "__gc", Scene_gc }, { "add_input", Scene::add_input }, - { "add_auto_white_balance", Scene::add_auto_white_balance }, + { "add_white_balance", Scene::add_white_balance }, { "add_effect", Scene::add_effect }, { "add_optional_effect", Scene::add_optional_effect }, { "finalize", Scene::finalize }, @@ -1201,7 +1202,14 @@ void LiveInputWrapper::connect_card(int card_idx, const InputState &input_state) ycbcr_inputs[i]->set_texture_num(0, userdata->tex_y[frame.field_number]); ycbcr_inputs[i]->set_texture_num(1, userdata->tex_cb[frame.field_number]); ycbcr_inputs[i]->set_texture_num(2, userdata->tex_cr[frame.field_number]); - ycbcr_inputs[i]->change_ycbcr_format(userdata->ycbcr_format); + // YCbCrPlanar is used for video streams, where we can have metadata from the mux. + // Prefer that if there's no override. (Overrides are only available when using + // video as SRT cards.) + if (input_state.ycbcr_coefficients_auto[card_idx]) { + ycbcr_inputs[i]->change_ycbcr_format(userdata->ycbcr_format); + } else { + ycbcr_inputs[i]->change_ycbcr_format(input_ycbcr_format); + } ycbcr_inputs[i]->set_width(width); ycbcr_inputs[i]->set_height(height); break;