#include <histogram.h>
Inherits PluginVClient.

Public Member Functions | |
| HistogramMain (PluginServer *server) | |
| ~HistogramMain () | |
| int | process_buffer (VFrame *frame, int64_t start_position, double frame_rate) |
| int | is_realtime () |
| int | load_defaults () |
| int | save_defaults () |
| void | save_data (KeyFrame *keyframe) |
| void | read_data (KeyFrame *keyframe) |
| void | update_gui () |
| void | render_gui (void *data) |
| int | calculate_use_opengl () |
| int | handle_opengl () |
| float | calculate_linear (float input, int mode, int do_value) |
| float | calculate_smooth (float input, int subscript) |
| float | calculate_curve (float input) |
| void | calculate_automatic (VFrame *data) |
| void | calculate_histogram (VFrame *data, int do_value) |
| void | tabulate_curve (int subscript, int use_value) |
Data Fields | |
| YUV | yuv |
| VFrame * | input |
| VFrame * | output |
| HistogramEngine * | engine |
| int * | lookup [HISTOGRAM_MODES] |
| float * | smoothed [HISTOGRAM_MODES] |
| float * | linear [HISTOGRAM_MODES] |
| int * | preview_lookup [HISTOGRAM_MODES] |
| int * | accum [HISTOGRAM_MODES] |
| int | current_point |
| int | mode |
| int | dragging_point |
| int | point_x_offset |
| int | point_y_offset |
Definition at line 13 of file histogram.h.
| HistogramMain::HistogramMain | ( | PluginServer * | server | ) |
| HistogramMain::~HistogramMain | ( | ) |
Definition at line 68 of file histogram.C.
References accum, engine, linear, lookup, PLUGIN_DESTRUCTOR_MACRO, preview_lookup, and smoothed.
| int HistogramMain::process_buffer | ( | VFrame * | frame, | |
| int64_t | start_position, | |||
| double | frame_rate | |||
| ) | [virtual] |
Reimplemented from PluginVClient.
Definition at line 620 of file histogram.C.
References HistogramEngine::APPLY, calculate_automatic(), calculate_use_opengl(), engine, PluginClient::get_project_smp(), input, linear, lookup, output, HistogramEngine::process_packages(), PluginVClient::read_frame(), PluginVClient::run_opengl(), PluginVClient::send_render_gui(), SET_TRACE, smoothed, and tabulate_curve().

| int HistogramMain::is_realtime | ( | ) | [virtual] |
| int HistogramMain::load_defaults | ( | ) | [virtual] |
Reimplemented from PluginClient.
Definition at line 170 of file histogram.C.
References BCASTDIR, BCTEXTLEN, CLAMP, mode, HistogramPoint::x, and HistogramPoint::y.
| int HistogramMain::save_defaults | ( | ) | [virtual] |
Reimplemented from PluginClient.
Definition at line 218 of file histogram.C.
References BCTEXTLEN, mode, NEXT, HistogramPoint::x, and HistogramPoint::y.
| void HistogramMain::save_data | ( | KeyFrame * | keyframe | ) | [virtual] |
Reimplemented from PluginClient.
Definition at line 262 of file histogram.C.
References FileXML::append_newline(), FileXML::append_tag(), BCTEXTLEN, KeyFrame::data, NEXT, output, XMLTag::set_property(), FileXML::set_shared_string(), XMLTag::set_title(), FileXML::tag, FileXML::terminate_string(), HistogramPoint::x, and HistogramPoint::y.

| void HistogramMain::read_data | ( | KeyFrame * | keyframe | ) | [virtual] |
Reimplemented from PluginClient.
Definition at line 327 of file histogram.C.
References BCTEXTLEN, KeyFrame::data, XMLTag::get_property(), input, HistogramPoints::insert(), List< TYPE >::last, FileXML::read_tag(), FileXML::set_shared_string(), FileXML::tag, and XMLTag::title_is().

| void HistogramMain::update_gui | ( | ) | [virtual] |
| void HistogramMain::render_gui | ( | void * | data | ) | [virtual] |
Reimplemented from PluginVClient.
Definition at line 97 of file histogram.C.
References calculate_automatic(), calculate_histogram(), SET_TRACE, and tabulate_curve().

| int HistogramMain::calculate_use_opengl | ( | ) |
Definition at line 606 of file histogram.C.
References PluginClient::get_use_opengl(), and PluginClient::gui_open().
Referenced by process_buffer().

| int HistogramMain::handle_opengl | ( | ) | [virtual] |
Reimplemented from PluginVClient.
Definition at line 752 of file histogram.C.
References BC_YUV888, BC_YUVA8888, VFrame::bind_texture(), COLORBALANCE_COMPILE, COLORBALANCE_UNIFORMS, VFrame::draw_texture(), VFrame::enable_opengl(), GAMMA_COMPILE, GAMMA_UNIFORMS, BC_WindowBase::get_color_model(), BC_WindowBase::get_h(), PluginVClient::get_output(), BC_WindowBase::get_w(), VFrame::init_screen(), INTERPOLATE_COMPILE, INTERPOLATE_UNIFORMS, VFrame::make_shader(), HistogramWindow::output_min, RGB_TO_YUV_FRAG, VFrame::SCREEN, VFrame::set_opengl_state(), VFrame::to_texture(), and YUV_TO_RGB_FRAG.

| float HistogramMain::calculate_linear | ( | float | input, | |
| int | mode, | |||
| int | do_value | |||
| ) |
Definition at line 396 of file histogram.C.
References BC_WindowBase::done, EQUIV, List< TYPE >::first, List< TYPE >::last, NEXT, output, HistogramWindow::output_max, HistogramWindow::output_min, PREVIOUS, HistogramPoint::x, and HistogramPoint::y.
Referenced by tabulate_curve().
| float HistogramMain::calculate_smooth | ( | float | input, | |
| int | subscript | |||
| ) |
Definition at line 492 of file histogram.C.
References CLAMP, and smoothed.
Referenced by HistogramWindow::draw_canvas_overlay(), and tabulate_curve().
| float HistogramMain::calculate_curve | ( | float | input | ) |
| void HistogramMain::calculate_automatic | ( | VFrame * | data | ) |
Definition at line 557 of file histogram.C.
References accum, calculate_histogram(), VFrame::get_h(), VFrame::get_w(), pixels, and HistogramWindow::threshold.
Referenced by process_buffer(), and render_gui().

| void HistogramMain::calculate_histogram | ( | VFrame * | data, | |
| int | do_value | |||
| ) |
Definition at line 509 of file histogram.C.
References HistogramUnit::accum, accum, engine, LoadServer::get_client(), PluginClient::get_project_smp(), LoadServer::get_total_clients(), HistogramEngine::HISTOGRAM, memcpy, and HistogramEngine::process_packages().
Referenced by calculate_automatic(), and render_gui().

| void HistogramMain::tabulate_curve | ( | int | subscript, | |
| int | use_value | |||
| ) |
Definition at line 684 of file histogram.C.
References BC_RGB888, BC_RGBA8888, calculate_linear(), calculate_smooth(), VFrame::get_color_model(), input, linear, lookup, preview_lookup, and smoothed.
Referenced by HistogramWindow::create_objects(), process_buffer(), render_gui(), and HistogramWindow::update_canvas().

Reimplemented from PluginVClient.
Definition at line 51 of file histogram.h.
Referenced by process_buffer(), HistogramUnit::process_package(), read_data(), and tabulate_curve().
Reimplemented from PluginVClient.
Definition at line 51 of file histogram.h.
Referenced by calculate_linear(), HistogramInputText::handle_event(), HistogramOutputText::handle_event(), HistogramMode::handle_event(), process_buffer(), HistogramUnit::process_package(), and save_data().
Definition at line 52 of file histogram.h.
Referenced by calculate_histogram(), process_buffer(), and ~HistogramMain().
| int* HistogramMain::lookup[HISTOGRAM_MODES] |
Definition at line 53 of file histogram.h.
Referenced by process_buffer(), HistogramUnit::process_package(), tabulate_curve(), and ~HistogramMain().
| float* HistogramMain::smoothed[HISTOGRAM_MODES] |
Definition at line 54 of file histogram.h.
Referenced by calculate_smooth(), process_buffer(), tabulate_curve(), and ~HistogramMain().
| float* HistogramMain::linear[HISTOGRAM_MODES] |
Definition at line 55 of file histogram.h.
Referenced by process_buffer(), tabulate_curve(), and ~HistogramMain().
| int* HistogramMain::preview_lookup[HISTOGRAM_MODES] |
Definition at line 57 of file histogram.h.
Referenced by HistogramUnit::process_package(), tabulate_curve(), and ~HistogramMain().
| int* HistogramMain::accum[HISTOGRAM_MODES] |
Definition at line 58 of file histogram.h.
Referenced by calculate_automatic(), calculate_histogram(), HistogramWindow::update_canvas(), and ~HistogramMain().
Definition at line 60 of file histogram.h.
Referenced by HistogramCanvas::button_press_event(), HistogramCanvas::button_release_event(), HistogramCanvas::cursor_motion_event(), HistogramWindow::draw_canvas_overlay(), HistogramInputText::handle_event(), HistogramMode::handle_event(), HistogramWindow::keypress_event(), and HistogramInputText::update().
Definition at line 62 of file histogram.h.
Referenced by HistogramSlider::button_press_event(), HistogramCanvas::button_press_event(), HistogramCanvas::button_release_event(), HistogramWindow::create_objects(), HistogramSlider::cursor_motion_event(), HistogramCanvas::cursor_motion_event(), HistogramWindow::draw_canvas_overlay(), HistogramInputText::handle_event(), HistogramMode::handle_event(), HistogramWindow::keypress_event(), load_defaults(), save_defaults(), HistogramInputText::update(), HistogramSlider::update(), HistogramWindow::update_canvas(), HistogramWindow::update_mode(), and HistogramWindow::update_output().
Definition at line 63 of file histogram.h.
Referenced by HistogramCanvas::button_press_event(), HistogramCanvas::button_release_event(), and HistogramCanvas::cursor_motion_event().
Definition at line 64 of file histogram.h.
Referenced by HistogramCanvas::button_press_event(), and HistogramCanvas::cursor_motion_event().
Definition at line 65 of file histogram.h.
Referenced by HistogramCanvas::button_press_event(), and HistogramCanvas::cursor_motion_event().
1.5.5