X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Fhistogram%2Fhistogram.C;h=f16e3fd4f46a771db8f1f4b24b27da0339fad9c4;hb=f5725c7e12def18fec49a295dad688652edaa4b3;hp=da67c208694425820ffdc42af07f0949562086d7;hpb=5a46f81a504562b7c8a0c4ff940e2b5b5c068ded;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/histogram/histogram.C b/cinelerra-5.1/plugins/histogram/histogram.C index da67c208..f16e3fd4 100644 --- a/cinelerra-5.1/plugins/histogram/histogram.C +++ b/cinelerra-5.1/plugins/histogram/histogram.C @@ -280,7 +280,8 @@ float HistogramMain::calculate_level(float input, // Scale to input range if(!EQUIV(config.high_input[mode], config.low_input[mode])) { - output = (input - config.low_input[mode]) / + output = input < config.low_input[mode] ? 0 : + (input - config.low_input[mode]) / (config.high_input[mode] - config.low_input[mode]); } else @@ -445,9 +446,6 @@ int HistogramMain::process_buffer(VFrame *frame, frame_rate, use_opengl); -// Apply histogram in hardware - if(use_opengl) return run_opengl(); - this->input = frame; this->output = frame; if( !engine ) @@ -457,8 +455,8 @@ int HistogramMain::process_buffer(VFrame *frame, if( cpus > smps ) cpus = smps; engine = new HistogramEngine(this, cpus, cpus); } -// Always plot to set the curves if automatic - if(config.plot || config.automatic) send_render_gui(frame); +// if to plot histogram + if(config.plot) send_render_gui(frame); // Generate tables here. The same table is used by many packages to render // each horizontal stripe. Need to cover the entire output range in each @@ -493,12 +491,11 @@ int HistogramMain::process_buffer(VFrame *frame, // config.gamma[HISTOGRAM_BLUE], // config.high_input[HISTOGRAM_BLUE]); - +// Apply histogram in hardware + if(use_opengl) return run_opengl(); // Apply histogram engine->process_packages(HistogramEngine::APPLY, input, 0); - - return 0; }