X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fbrightness%2Fbrightness.C;h=5c37b20b4cb6644999e855e476ea9514979dbdbc;hb=15ae384acd95de544db3986ace65e870b0c0b2c6;hp=8acdd46b7067a3aae08bc97dfb55b83dfadc2040;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/plugins/brightness/brightness.C b/cinelerra-5.1/plugins/brightness/brightness.C index 8acdd46b..5c37b20b 100644 --- a/cinelerra-5.1/plugins/brightness/brightness.C +++ b/cinelerra-5.1/plugins/brightness/brightness.C @@ -2,21 +2,21 @@ /* * CINELERRA * Copyright (C) 2008 Adam Williams - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * */ #include "clip.h" @@ -43,7 +43,7 @@ BrightnessConfig::BrightnessConfig() int BrightnessConfig::equivalent(BrightnessConfig &that) { - return (brightness == that.brightness && + return (brightness == that.brightness && contrast == that.contrast && luma == that.luma); } @@ -55,10 +55,10 @@ void BrightnessConfig::copy_from(BrightnessConfig &that) luma = that.luma; } -void BrightnessConfig::interpolate(BrightnessConfig &prev, - BrightnessConfig &next, - int64_t prev_frame, - int64_t next_frame, +void BrightnessConfig::interpolate(BrightnessConfig &prev, + BrightnessConfig &next, + int64_t prev_frame, + int64_t next_frame, int64_t current_frame) { double next_scale = (double)(current_frame - prev_frame) / (next_frame - prev_frame); @@ -77,26 +77,24 @@ void BrightnessConfig::interpolate(BrightnessConfig &prev, -YUV BrightnessMain::yuv; - BrightnessMain::BrightnessMain(PluginServer *server) : PluginVClient(server) { redo_buffers = 1; engine = 0; - + } BrightnessMain::~BrightnessMain() { - + if(engine) delete engine; } const char* BrightnessMain::plugin_title() { return _("Brightness/Contrast"); } int BrightnessMain::is_realtime() { return 1; } -NEW_WINDOW_MACRO(BrightnessMain, BrightnessWindow) +NEW_WINDOW_MACRO(BrightnessMain, BrightnessWindow) LOAD_CONFIGURATION_MACRO(BrightnessMain, BrightnessConfig) int BrightnessMain::process_buffer(VFrame *frame, @@ -105,9 +103,9 @@ int BrightnessMain::process_buffer(VFrame *frame, { load_configuration(); - read_frame(frame, - 0, - start_position, + read_frame(frame, + 0, + start_position, frame_rate, get_use_opengl()); @@ -138,7 +136,7 @@ int BrightnessMain::process_buffer(VFrame *frame, int BrightnessMain::handle_opengl() { #ifdef HAVE_GL - static const char *brightness_yuvluma_frag = + static const char *brightness_yuvluma_frag = "uniform sampler2D tex;\n" "uniform float brightness;\n" "uniform float contrast;\n" @@ -151,7 +149,7 @@ int BrightnessMain::handle_opengl() " gl_FragColor = yuva;\n" "}\n"; - static const char *brightness_yuv_frag = + static const char *brightness_yuv_frag = "uniform sampler2D tex;\n" "uniform float brightness;\n" "uniform float contrast;\n" @@ -232,13 +230,13 @@ int BrightnessMain::handle_opengl() } - if(shader_id > 0) + if(shader_id > 0) { glUseProgram(shader_id); glUniform1i(glGetUniformLocation(shader_id, "tex"), 0); glUniform1f(glGetUniformLocation(shader_id, "brightness"), config.brightness / 100); - float contrast = (config.contrast < 0) ? - (config.contrast + 100) / 100 : + float contrast = (config.contrast < 0) ? + (config.contrast + 100) / 100 : (config.contrast + 25) / 25; glUniform1f(glGetUniformLocation(shader_id, "contrast"), contrast); float offset = 0.5 - contrast / 2; @@ -248,7 +246,7 @@ int BrightnessMain::handle_opengl() get_output()->init_screen(); get_output()->bind_texture(0); - + get_output()->draw_texture(); glUseProgram(0); @@ -274,7 +272,7 @@ void BrightnessMain::update_gui() } } - + void BrightnessMain::save_data(KeyFrame *keyframe) { FileXML output; @@ -345,7 +343,7 @@ BrightnessUnit::BrightnessUnit(BrightnessEngine *server, BrightnessMain *plugin) BrightnessUnit::~BrightnessUnit() { } - + void BrightnessUnit::process_package(LoadPackage *package) { BrightnessPackage *pkg = (BrightnessPackage*)package; @@ -353,7 +351,7 @@ void BrightnessUnit::process_package(LoadPackage *package) VFrame *output = plugin->output; VFrame *input = plugin->input; - + @@ -447,7 +445,7 @@ void BrightnessUnit::process_package(LoadPackage *package) b = input_row[j * components + 2]; \ if(max == 0xff) \ { \ - BrightnessMain::yuv.rgb_to_yuv_8( \ + YUV::yuv.rgb_to_yuv_8( \ r, \ g, \ b, \ @@ -457,7 +455,7 @@ void BrightnessUnit::process_package(LoadPackage *package) } \ else \ { \ - BrightnessMain::yuv.rgb_to_yuv_16( \ + YUV::yuv.rgb_to_yuv_16( \ r, \ g, \ b, \ @@ -482,7 +480,7 @@ void BrightnessUnit::process_package(LoadPackage *package) { \ if(max == 0xff) \ { \ - BrightnessMain::yuv.yuv_to_rgb_8( \ + YUV::yuv.yuv_to_rgb_8( \ r, \ g, \ b, \ @@ -492,7 +490,7 @@ void BrightnessUnit::process_package(LoadPackage *package) } \ else \ { \ - BrightnessMain::yuv.yuv_to_rgb_16( \ + YUV::yuv.yuv_to_rgb_16( \ r, \ g, \ b, \ @@ -597,24 +595,9 @@ void BrightnessUnit::process_package(LoadPackage *package) r = input_row[j * components]; \ g = input_row[j * components + 1]; \ b = input_row[j * components + 2]; \ - YUV::rgb_to_yuv_f( \ - r, \ - g, \ - b, \ - y, \ - u, \ - v); \ - \ + YUV::yuv.rgb_to_yuv_f(r, g, b, y, u, v); \ y = y * contrast + offset; \ - \ - \ - YUV::yuv_to_rgb_f( \ - r, \ - g, \ - b, \ - y, \ - u, \ - v); \ + YUV::yuv.yuv_to_rgb_f(r, g, b, y, u, v); \ input_row[j * components] = r; \ input_row[j * components + 1] = g; \ input_row[j * components + 2] = b; \