X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fyuv411%2Fyuv411.C;h=57a14ba198aa9357fbbca044d95f96f951c38fee;hb=9182a6f3c48a4d211b7e3527e08511bd531011c4;hp=100541f5c27a553928f76a44a5e160735f1a41ed;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/yuv411/yuv411.C b/cinelerra-5.1/plugins/yuv411/yuv411.C index 100541f5..57a14ba1 100644 --- a/cinelerra-5.1/plugins/yuv411/yuv411.C +++ b/cinelerra-5.1/plugins/yuv411/yuv411.C @@ -13,6 +13,11 @@ REGISTER_PLUGIN(yuv411Main) yuv411Config::yuv411Config() +{ + reset(); +} + +void yuv411Config::reset() { int_horizontal = 0; avg_vertical = 0; @@ -156,7 +161,7 @@ int yuv411Main::process_realtime(VFrame *input_ptr, VFrame *output_ptr) load_configuration(); int w = input_ptr->get_w(); int h = input_ptr->get_h(); - int colormodel = input_ptr->get_color_model(); + colormodel = input_ptr->get_color_model(); if( input_ptr == output_ptr || ( config.avg_vertical && config.int_horizontal ) ) { @@ -182,11 +187,7 @@ int yuv411Main::process_realtime(VFrame *input_ptr, VFrame *output_ptr) break; } - if( this->colormodel != colormodel ) { - this->colormodel = colormodel; - send_render_gui(this); - } - + send_render_gui(this); return 0; } @@ -216,19 +217,23 @@ void yuv411Main::update_gui() void yuv411Main::render_gui(void *data) { if(thread) { - thread->window->lock_window(); yuv411Window *window = (yuv411Window *)thread->window; yuv411Main *client = (yuv411Main *)data; - switch( client->colormodel ) { - case BC_YUV888: - case BC_YUVA8888: - window->show_warning(0); - break; - default: - window->show_warning(1); - break; + if( window->colormodel != client->colormodel ) { + int warn = 1; + switch( client->colormodel ) { + case BC_YUV888: + case BC_YUVA8888: + warn = 0; + break; + } + if( warn == window->yuv_warning->is_hidden() ) { + window->lock_window("yuv411Main::render_gui"); + window->show_warning(warn); + window->colormodel = client->colormodel; + window->unlock_window(); + } } - window->unlock_window(); } }