From 232ae3c6972c1740b6e1890ccce1264f2bb311f5 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Sun, 27 Sep 2020 14:07:22 -0600 Subject: [PATCH] raise vwdw stacking tweak, drag handle for transitions, cleanup histogram plugin, histogram uses sum bin value, suv patchbay/new png imgs, tweak appearanceprefs layout --- cinelerra-5.1/cinelerra/appearanceprefs.C | 2 +- cinelerra-5.1/cinelerra/mainmenu.C | 2 +- cinelerra-5.1/cinelerra/mainsession.C | 6 + cinelerra-5.1/cinelerra/mainsession.h | 2 + cinelerra-5.1/cinelerra/mainsession.inc | 2 + cinelerra-5.1/cinelerra/mwindow.C | 14 +- cinelerra-5.1/cinelerra/mwindow.h | 3 +- cinelerra-5.1/cinelerra/mwindowedit.C | 28 + cinelerra-5.1/cinelerra/new.C | 2 +- cinelerra-5.1/cinelerra/trackcanvas.C | 184 ++- cinelerra-5.1/cinelerra/trackcanvas.h | 54 +- cinelerra-5.1/cinelerra/transitionpopup.C | 24 +- cinelerra-5.1/cinelerra/transitionpopup.h | 1 + cinelerra-5.1/plugins/histogram/debug | 1111 ----------------- cinelerra-5.1/plugins/histogram/histogram.C | 735 ++++------- cinelerra-5.1/plugins/histogram/histogram.h | 5 +- .../plugins/histogram/histogramwindow.C | 150 +-- .../theme_suv/data/expandpatch_checked.png | Bin 329 -> 335 bytes .../theme_suv/data/expandpatch_checkedhi.png | Bin 598 -> 638 bytes .../plugins/theme_suv/data/expandpatch_dn.png | Bin 611 -> 652 bytes .../plugins/theme_suv/data/expandpatch_hi.png | Bin 644 -> 676 bytes .../plugins/theme_suv/data/expandpatch_up.png | Bin 319 -> 333 bytes .../plugins/theme_suv/data/new_bg.png | Bin 2690 -> 3056 bytes .../theme_suv/data/new_bigbutton_dn.png | Bin 1013 -> 4605 bytes .../theme_suv/data/new_bigbutton_hi.png | Bin 1183 -> 3715 bytes .../theme_suv/data/new_bigbutton_up.png | Bin 186 -> 1346 bytes .../theme_suv/data/tumblepatch_bottom.png | Bin 254 -> 451 bytes .../plugins/theme_suv/data/tumblepatch_hi.png | Bin 572 -> 706 bytes .../theme_suv/data/tumblepatch_top.png | Bin 255 -> 454 bytes .../plugins/theme_suv/data/tumblepatch_up.png | Bin 254 -> 455 bytes 30 files changed, 546 insertions(+), 1779 deletions(-) delete mode 100644 cinelerra-5.1/plugins/histogram/debug diff --git a/cinelerra-5.1/cinelerra/appearanceprefs.C b/cinelerra-5.1/cinelerra/appearanceprefs.C index c53db830..1f878835 100644 --- a/cinelerra-5.1/cinelerra/appearanceprefs.C +++ b/cinelerra-5.1/cinelerra/appearanceprefs.C @@ -205,7 +205,7 @@ void AppearancePrefs::create_objects() if( y2 < y ) y2 = y; add_subwindow(new BC_Bar(x0, y2, get_w()-x0 - xs30)); - y += ys15; + y += ys35; x = x0; y1 = y; add_subwindow(title = new BC_Title(x, y, _("Warnings:"), LARGEFONT, diff --git a/cinelerra-5.1/cinelerra/mainmenu.C b/cinelerra-5.1/cinelerra/mainmenu.C index 3a694f72..4359595b 100644 --- a/cinelerra-5.1/cinelerra/mainmenu.C +++ b/cinelerra-5.1/cinelerra/mainmenu.C @@ -1605,7 +1605,7 @@ ShowVWindow::ShowVWindow(MWindow *mwindow) int ShowVWindow::handle_event() { mwindow->gui->unlock_window(); - mwindow->show_vwindow(); + mwindow->show_vwindow(1); mwindow->gui->lock_window("ShowVWindow::handle_event"); return 1; } diff --git a/cinelerra-5.1/cinelerra/mainsession.C b/cinelerra-5.1/cinelerra/mainsession.C index de63b8b1..7d582c46 100644 --- a/cinelerra-5.1/cinelerra/mainsession.C +++ b/cinelerra-5.1/cinelerra/mainsession.C @@ -36,6 +36,7 @@ #include "mwindow.h" #include "mwindowgui.h" #include "plugin.h" +#include "transition.h" MainSession::MainSession(MWindow *mwindow) { @@ -51,6 +52,7 @@ MainSession::MainSession(MWindow *mwindow) current_operation = NO_OPERATION; drag_pluginservers = new ArrayList; drag_plugin = 0; + drag_transition = 0; drag_assets = new ArrayList; drag_auto_gang = new ArrayList; drag_clips = new ArrayList; @@ -657,6 +659,10 @@ Track *MainSession::drag_handle_track() case DRAG_PLUGINHANDLE2: track = drag_plugin->edits->track; break; + case DRAG_TRANSNHANDLE1: + case DRAG_TRANSNHANDLE2: + track = drag_transition->edits->track; + break; } return track; } diff --git a/cinelerra-5.1/cinelerra/mainsession.h b/cinelerra-5.1/cinelerra/mainsession.h index 58115d69..e8d31db6 100644 --- a/cinelerra-5.1/cinelerra/mainsession.h +++ b/cinelerra-5.1/cinelerra/mainsession.h @@ -38,6 +38,7 @@ #include "pluginset.inc" #include "pluginserver.inc" #include "track.inc" +#include "transition.inc" #include "vwindowgui.inc" // Options not in EDL but not changed in preferences @@ -73,6 +74,7 @@ public: // Item being dragged ArrayList *drag_pluginservers; Plugin *drag_plugin; + Transition *drag_transition; // When trim should only affect the selected edits or plugins Edits *trim_edits; ArrayList *drag_assets; diff --git a/cinelerra-5.1/cinelerra/mainsession.inc b/cinelerra-5.1/cinelerra/mainsession.inc index 0a734958..754183c2 100644 --- a/cinelerra-5.1/cinelerra/mainsession.inc +++ b/cinelerra-5.1/cinelerra/mainsession.inc @@ -61,6 +61,8 @@ enum DRAG_PLUGINKEY, DRAG_PLUGINHANDLE1, // Waiting to move out of drag threshold DRAG_PLUGINHANDLE2, // Dragging outside drag threshold + DRAG_TRANSNHANDLE1, + DRAG_TRANSNHANDLE2, DRAG_SPEED, DRAG_GROUP, GROUP_TOGGLE, diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index bb04335f..cf16cd93 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -2919,7 +2919,7 @@ void MWindow::run() run_lock->unlock(); } -void MWindow::show_vwindow() +void MWindow::show_vwindow(int raise) { int total_running = 0; session->show_vwindow = 1; @@ -2929,19 +2929,17 @@ void MWindow::show_vwindow() for(int j = 0; j < vwindows.size(); j++) { VWindow *vwindow = vwindows[j]; if( !vwindow->is_running() ) continue; + total_running++; + if( !raise && !vwindow->gui->is_hidden() ) continue; vwindow->gui->lock_window("MWindow::show_vwindow"); vwindow->gui->show_window(0); vwindow->gui->raise_window(); vwindow->gui->flush(); vwindow->gui->unlock_window(); - total_running++; } - // If no windows visible - if(!total_running) - { + if( !total_running ) get_viewer(1, DEFAULT_VWINDOW); - } gui->mainmenu->show_vwindow->set_checked(1); } @@ -3016,8 +3014,8 @@ void MWindow::restore_windows() vwindow->gui->unlock_window(); } } - else - show_vwindow(); + else + show_vwindow(0); if( !session->show_awindow && !awindow->gui->is_hidden() ) { awindow->gui->lock_window("MWindow::restore_windows"); diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index d7e54b1c..b31f2642 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -209,7 +209,7 @@ public: void media_to_clip(); int create_ref(Asset *asset, EDL *ref); // Show windows - void show_vwindow(); + void show_vwindow(int raise); void show_awindow(); void show_lwindow(); void show_cwindow(); @@ -623,6 +623,7 @@ public: int modify_edithandles(); int modify_pluginhandles(); + int modify_transnhandles(); void finish_modify_handles(); void rescale_proxy(EDL *clip, int orig_scale, int new_scale); void add_proxy(ArrayList *orig_assets, diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index 2bf9a97c..003844fe 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -960,6 +960,34 @@ void MWindow::finish_modify_handles() cwindow->update(1, 0, 0, 0, 1); } +int MWindow::modify_transnhandles() +{ + gui->reset_default_message(); + gui->default_message(); + Transition *transition = session->drag_transition; + if( !transition ) return 1; + int64_t length = transition->length; + Track *track = transition->edit->track; + int64_t start_pos = track->to_units(session->drag_start, 0); + int64_t end_pos = track->to_units(session->drag_position, 0); + length += end_pos - start_pos; + if( length < 0 ) length = 0; + if( length == transition->length ) return 0; + + undo_before(); + transition->length = length; + undo_after(_("trans handle"), LOAD_EDITS); + + save_backup(); + restart_brender(); + sync_parameters(CHANGE_EDL); + update_plugin_guis(); + gui->update(1, FORCE_REDRAW, 1, 1, 1, 1, 0); + cwindow->update(1, 0, 0, 0, 1); + + return 0; +} + void MWindow::match_output_size(Track *track) { undo_before(); diff --git a/cinelerra-5.1/cinelerra/new.C b/cinelerra-5.1/cinelerra/new.C index a9f4aaf2..47e46705 100644 --- a/cinelerra-5.1/cinelerra/new.C +++ b/cinelerra-5.1/cinelerra/new.C @@ -60,7 +60,7 @@ // add tracks dialog #define HEIGHT1 yS(240) // offset for folder panel -#define HEIGHT2 yS(440) +#define HEIGHT2 yS(435) New::New(MWindow *mwindow) { diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index f37b1cd6..c0fea44a 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -1967,7 +1967,8 @@ void TrackCanvas::draw_inout_points() void TrackCanvas::draw_drag_handle() { if( mwindow->session->current_operation != DRAG_EDITHANDLE2 && - mwindow->session->current_operation != DRAG_PLUGINHANDLE2 ) return; + mwindow->session->current_operation != DRAG_PLUGINHANDLE2 && + mwindow->session->current_operation != DRAG_TRANSNHANDLE2 ) return; int64_t pixel1 = Units::round(mwindow->session->drag_position * mwindow->edl->session->sample_rate / mwindow->edl->local_session->zoom_sample - @@ -3846,14 +3847,8 @@ void TrackCanvas::update_drag_handle() double new_position; int cursor_x = get_cursor_x(); - new_position = - (double)(cursor_x + - mwindow->edl->local_session->view_start[pane->number]) * - mwindow->edl->local_session->zoom_sample / - mwindow->edl->session->sample_rate; - - new_position = - mwindow->edl->align_to_frame(new_position, 0); + new_position = mwindow->edl->get_cursor_position(cursor_x, pane->number); + new_position = mwindow->edl->align_to_frame(new_position, 0); if( ctrl_down() && alt_down() ) { #define snapper(v) do { \ @@ -4321,42 +4316,46 @@ int TrackCanvas::cursor_update(int in_motion) { case DRAG_EDITHANDLE1: // Outside threshold. Upgrade status - if(active) - { - if(labs(get_cursor_x() - mwindow->session->drag_origin_x) > HANDLE_W) - { - mwindow->session->current_operation = DRAG_EDITHANDLE2; - update_overlay = 1; - } + if( !active ) break; + if( labs(get_cursor_x() - mwindow->session->drag_origin_x) > HANDLE_W ) { + mwindow->session->current_operation = DRAG_EDITHANDLE2; + update_overlay = 1; } break; - case DRAG_EDITHANDLE2: - if(active) - { - update_drag_handle(); - update_overlay = 1; - } + if( !active ) break; + update_drag_handle(); + update_overlay = 1; break; case DRAG_PLUGINHANDLE1: - if(active) - { - if(labs(get_cursor_x() - mwindow->session->drag_origin_x) > HANDLE_W) - { - mwindow->session->current_operation = DRAG_PLUGINHANDLE2; - update_overlay = 1; - } + if( !active ) break; + if( labs(get_cursor_x() - mwindow->session->drag_origin_x) > HANDLE_W ) { + mwindow->session->current_operation = DRAG_PLUGINHANDLE2; + update_overlay = 1; } break; - case DRAG_PLUGINHANDLE2: - if(active) - { - update_drag_handle(); + if( !active ) break; + update_drag_handle(); + update_overlay = 1; + break; + + case DRAG_TRANSNHANDLE1: + if( !active ) break; + if( labs(get_cursor_x() - mwindow->session->drag_origin_x) > HANDLE_W ) { + mwindow->session->current_operation = DRAG_TRANSNHANDLE2; update_overlay = 1; } break; + case DRAG_TRANSNHANDLE2: { + if( !active ) break; + position = mwindow->edl->get_cursor_position(get_cursor_x(), pane->number); + position = mwindow->edl->align_to_frame(position, 1); + drag_transition_handle(position); + rerender = 1; + update_overlay = 1; + break; } // Rubber band curves case DRAG_FADE: @@ -4479,6 +4478,8 @@ int TrackCanvas::cursor_update(int in_motion) 0, new_cursor, update_cursor)) break; if(do_keyframes(get_cursor_x(), get_cursor_y(), 0, 0, new_cursor, update_cursor, rerender)) break; + if(do_transition_handles(get_cursor_x(), get_cursor_y(), + 0, rerender, update_overlay, new_cursor, update_cursor)) break; if(do_edit_handles(get_cursor_x(), get_cursor_y(), 0, rerender, update_overlay, new_cursor, update_cursor)) break; // Plugin boundaries @@ -4678,6 +4679,20 @@ int TrackCanvas::button_release_event() result = 1; break; + case DRAG_TRANSNHANDLE2: + mwindow->session->current_operation = NO_OPERATION; + drag_scroll = 0; + result = 1; + + end_transnhandle_selection(); + break; + + case DRAG_TRANSNHANDLE1: + mwindow->session->current_operation = NO_OPERATION; + drag_scroll = 0; + result = 1; + break; + case DRAG_SPEED: redraw = FORCE_REDRAW; load_flags |= LOAD_EDITS | LOAD_TIMEBAR; @@ -5000,6 +5015,95 @@ int TrackCanvas::do_plugin_handles(int cursor_x, return result; } +int TrackCanvas::do_transition_handles(int cursor_x, int cursor_y, int button_press, + int &rerender, int &update_overlay, int &new_cursor, int &update_cursor) +{ + Transition *trans_result = 0; + int result = 0; + + Track *track = mwindow->edl->tracks->first; + for( ; track && !result; track=track->next) { + if( track->is_hidden() ) continue; + Edit *edit = track->edits->first; + for( ; edit && !result; edit=edit->next ) { + Transition *trans = edit->transition; + if( !trans ) continue; + int64_t x, y, w, h; + edit_dimensions(edit, x, y, w, h); + int strip_x = x, edit_y = y; + get_transition_coords(edit, x, y, w, h); + VFrame *strip = mwindow->theme->get_image("plugin_bg_data"); + int strip_y = y - strip->get_h(); + if( track->show_assets() && track->show_titles() ) + edit_y += mwindow->theme->get_image("title_bg_data")->get_h(); + if( strip_y < edit_y ) strip_y = edit_y; + int strip_w = Units::round(edit->track->from_units(edit->transition->length) * + mwindow->edl->session->sample_rate / mwindow->edl->local_session->zoom_sample); + int x1 = strip_x + strip_w - HANDLE_W/2, x2 = x1 + HANDLE_W; + int y1 = strip_y + strip->get_h()/2 - HANDLE_H/2, y2 = y1 + HANDLE_W; + if( cursor_x >= x1 && cursor_x < x2 && + cursor_y >= y1 && cursor_y < y2 ) { + trans_result = trans; + result = 1; + } + } + } + + if( result ) { + if( button_press ) { + mwindow->session->drag_transition = trans_result; + mwindow->session->drag_handle = 1; + mwindow->session->drag_button = get_buttonpress() - 1; + int64_t trans_end = trans_result->edit->startproject + trans_result->length; + double position = trans_result->edit->track->from_units(trans_end); + mwindow->session->drag_position = position; + mwindow->session->drag_start = position; + mwindow->session->current_operation = DRAG_TRANSNHANDLE1; + mwindow->session->drag_origin_x = get_cursor_x(); + mwindow->session->drag_origin_y = get_cursor_y(); + update_cursor = 1; + } + new_cursor = RIGHT_CURSOR; + update_overlay = 1; + } + + return result; +} + +int TrackCanvas::drag_transition_handle(double position) +{ + Transition *transition = mwindow->session->drag_transition; + if( !transition ) return 1; + mwindow->session->drag_position = position; + mwindow->edl->local_session->set_selectionstart(position); + mwindow->edl->local_session->set_selectionend(position); + char string[BCSTRLEN]; + int64_t length = transition->length; + Track *track = transition->edit->track; + int64_t start_pos = track->to_units(mwindow->session->drag_start, 0); + int64_t end_pos = track->to_units(mwindow->session->drag_position, 0); + length += end_pos - start_pos; + if( length < 0 ) length = 0; + double time = track->from_units(length); + Units::totext(string, time, + mwindow->edl->session->time_format, + mwindow->edl->session->sample_rate, + mwindow->edl->session->frame_rate, + mwindow->edl->session->frames_per_foot); + mwindow->gui->show_message(string); + if( mwindow->gui->transition_menu->length_thread->running() ) { + TransitionLengthDialog *dialog = (TransitionLengthDialog *) + mwindow->gui->transition_menu->length_thread->get_gui(); + if( dialog ) { + dialog->lock_window("TrackCanvas::drag_transition_handle"); + dialog->update_text(time); + dialog->thread->new_length = time; + dialog->unlock_window(); + } + } + return 0; +} + int TrackCanvas::do_tracks(int cursor_x, int cursor_y, int button_press) { @@ -5421,6 +5525,10 @@ int TrackCanvas::button_press_event() 0, get_buttonpress(), new_cursor, update_cursor, rerender) ) break; update_message = 1; + + if( do_transition_handles(cursor_x, cursor_y, + 1, rerender, update_overlay, new_cursor, + update_cursor) ) break; // Test edit boundaries if( do_edit_handles(cursor_x, cursor_y, 1, rerender, update_overlay, new_cursor, @@ -5457,6 +5565,8 @@ int TrackCanvas::button_press_event() break; } update_message = 1; + if( do_transition_handles(cursor_x, cursor_y, + 1, rerender, update_overlay, new_cursor, update_cursor) ) break; // Test edit boundaries if( do_edit_handles(cursor_x, cursor_y, 1, rerender, update_overlay, new_cursor, update_cursor) ) break; @@ -5553,11 +5663,19 @@ int TrackCanvas::start_selection(double position) void TrackCanvas::end_edithandle_selection() { mwindow->modify_edithandles(); + mwindow->session->drag_edit = 0; } void TrackCanvas::end_pluginhandle_selection() { mwindow->modify_pluginhandles(); + mwindow->session->drag_plugin = 0; +} + +void TrackCanvas::end_transnhandle_selection() +{ + mwindow->modify_transnhandles(); + mwindow->session->drag_transition = 0; } diff --git a/cinelerra-5.1/cinelerra/trackcanvas.h b/cinelerra-5.1/cinelerra/trackcanvas.h index d08b420a..3d1ded19 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.h +++ b/cinelerra-5.1/cinelerra/trackcanvas.h @@ -250,53 +250,28 @@ public: int ibeam_mode(); // Get edit and handle the cursor is over - int do_edit_handles(int cursor_x, - int cursor_y, - int button_press, - int &rerender, - int &update_overlay, - int &new_cursor, - int &update_cursor); + int do_edit_handles(int cursor_x, int cursor_y, int button_press, + int &rerender, int &update_overlay, int &new_cursor, int &update_cursor); // Get plugin and handle the cursor if over - int do_plugin_handles(int cursor_x, - int cursor_y, - int button_press, - int &rerender, - int &update_overlay, - int &new_cursor, - int &update_cursor); + int do_plugin_handles(int cursor_x, int cursor_y, int button_press, + int &rerender, int &update_overlay, int &new_cursor, int &update_cursor); + int do_transition_handles(int cursor_x, int cursor_y, int button_press, + int &rerender, int &update_overlay, int &new_cursor, int &update_cursor); + int drag_transition_handle(double position); // Get edit the cursor is over - int do_edits(int cursor_x, - int cursor_y, - int button_press, - int drag_start, - int &redraw, - int &rerender, - int &new_cursor, - int &update_cursor); + int do_edits(int cursor_x, int cursor_y, int button_press, + int drag_start, int &redraw, int &rerender, int &new_cursor, int &update_cursor); int do_tracks(int cursor_x, int cursor_y, int button_press); int test_track_group(EDL *group, Track *first_track, double &pos); int edit_intersects(Track *track, Edit *src_edit, double &pos); int test_resources(int cursor_x, int cursor_y); - int do_plugins(int cursor_x, - int cursor_y, - int drag_start, - int button_press, - int &redraw, - int &rerender); - int do_transitions(int cursor_x, - int cursor_y, - int button_press, - int &new_cursor, - int &update_cursor); - void draw_cropped_line(int x1, - int y1, - int x2, - int y2, - int min_y, - int max_y); + int do_plugins(int cursor_x, int cursor_y, int drag_start, int button_press, + int &redraw, int &rerender); + int do_transitions(int cursor_x, int cursor_y, int button_press, + int &new_cursor, int &update_cursor); + void draw_cropped_line(int x1, int y1, int x2, int y2, int min_y, int max_y); int button_press_event(); int button_release_event(); int cursor_update(int in_motion); @@ -319,6 +294,7 @@ public: int64_t drop_plugin_position(PluginSet *plugin_set, Plugin *moved_plugin); void end_edithandle_selection(); void end_pluginhandle_selection(); + void end_transnhandle_selection(); // Number of seconds spanned by the trackcanvas double time_visible(); void update_drag_handle(); diff --git a/cinelerra-5.1/cinelerra/transitionpopup.C b/cinelerra-5.1/cinelerra/transitionpopup.C index 58a05e58..5922a881 100644 --- a/cinelerra-5.1/cinelerra/transitionpopup.C +++ b/cinelerra-5.1/cinelerra/transitionpopup.C @@ -111,14 +111,9 @@ int TransitionUnitsItem::handle_event() { TransitionUnitsPopup *units_popup = (TransitionUnitsPopup *)get_popup_menu(); TransitionLengthDialog *gui = units_popup->gui; - TransitionLengthText *length_text = gui->text; - EDLSession *session = gui->mwindow->edl->session; double length = gui->thread->new_length; - char text[BCSTRLEN]; units_popup->units = id; - Units::totext(text, length, units_popup->units, session->sample_rate, - session->frame_rate, session->frames_per_foot); - length_text->update(text); + gui->update_text(length); units_popup->set_text(get_text()); return 1; } @@ -181,6 +176,17 @@ int TransitionLengthDialog::close_event() return 1; } +void TransitionLengthDialog::update_text(double length) +{ + int units = units_popup->units; + EDLSession *session = mwindow->edl->session; + char string[BCSTRLEN]; + Units::totext(string, length, units, + session->sample_rate, session->frame_rate, + session->frames_per_foot); + text->update(string); +} + TransitionLengthText::TransitionLengthText(MWindow *mwindow, TransitionLengthDialog *gui, int x, int y) @@ -220,11 +226,7 @@ int TransitionLengthText::handle_up_down(int dir) break; } double length = gui->thread->new_length + delta * dir; - char text[BCSTRLEN]; - Units::totext(text, length, units, - session->sample_rate, session->frame_rate, - session->frames_per_foot); - update(text); + gui->update_text(length); return gui->thread->update(length); } diff --git a/cinelerra-5.1/cinelerra/transitionpopup.h b/cinelerra-5.1/cinelerra/transitionpopup.h index 67498a32..57792f9c 100644 --- a/cinelerra-5.1/cinelerra/transitionpopup.h +++ b/cinelerra-5.1/cinelerra/transitionpopup.h @@ -84,6 +84,7 @@ public: void create_objects(); int close_event(); + void update_text(double length); MWindow *mwindow; TransitionLengthThread *thread; diff --git a/cinelerra-5.1/plugins/histogram/debug b/cinelerra-5.1/plugins/histogram/debug deleted file mode 100644 index 5978e874..00000000 --- a/cinelerra-5.1/plugins/histogram/debug +++ /dev/null @@ -1,1111 +0,0 @@ -HistogramConfig::interpolate 150 0.220192 1.000000 0.800000 -TimeAvgMain::process_buffer 357 prev_frame=270 start_position=270 i=270 -HistogramConfig::interpolate 150 0.220642 1.000000 0.800131 -TimeAvgMain::process_buffer 357 prev_frame=271 start_position=271 i=271 -HistogramConfig::interpolate 150 0.221091 1.000000 0.800261 -TimeAvgMain::process_buffer 357 prev_frame=272 start_position=272 i=272 -HistogramConfig::interpolate 150 0.221541 1.000000 0.800392 -TimeAvgMain::process_buffer 357 prev_frame=273 start_position=273 i=273 -HistogramConfig::interpolate 150 0.221990 1.000000 0.800523 -TimeAvgMain::process_buffer 357 prev_frame=274 start_position=274 i=274 -HistogramConfig::interpolate 150 0.222440 1.000000 0.800654 -TimeAvgMain::process_buffer 357 prev_frame=275 start_position=275 i=275 -HistogramConfig::interpolate 150 0.222889 1.000000 0.800784 -TimeAvgMain::process_buffer 357 prev_frame=276 start_position=276 i=276 -HistogramConfig::interpolate 150 0.223338 1.000000 0.800915 -TimeAvgMain::process_buffer 357 prev_frame=277 start_position=277 i=277 -HistogramConfig::interpolate 150 0.223788 1.000000 0.801046 -TimeAvgMain::process_buffer 357 prev_frame=278 start_position=278 i=278 -HistogramConfig::interpolate 150 0.224237 1.000000 0.801177 -TimeAvgMain::process_buffer 357 prev_frame=279 start_position=279 i=279 -HistogramConfig::interpolate 150 0.224687 1.000000 0.801307 -TimeAvgMain::process_buffer 357 prev_frame=280 start_position=280 i=280 -HistogramConfig::interpolate 150 0.225136 1.000000 0.801438 -TimeAvgMain::process_buffer 357 prev_frame=281 start_position=281 i=281 -HistogramConfig::interpolate 150 0.225586 1.000000 0.801569 -TimeAvgMain::process_buffer 357 prev_frame=282 start_position=282 i=282 -HistogramConfig::interpolate 150 0.226035 1.000000 0.801700 -TimeAvgMain::process_buffer 357 prev_frame=283 start_position=283 i=283 -HistogramConfig::interpolate 150 0.226485 1.000000 0.801830 -TimeAvgMain::process_buffer 357 prev_frame=284 start_position=284 i=284 -HistogramConfig::interpolate 150 0.226934 1.000000 0.801961 -TimeAvgMain::process_buffer 357 prev_frame=285 start_position=285 i=285 -HistogramConfig::interpolate 150 0.227383 1.000000 0.802092 -TimeAvgMain::process_buffer 357 prev_frame=286 start_position=286 i=286 -HistogramConfig::interpolate 150 0.227833 1.000000 0.802223 -TimeAvgMain::process_buffer 357 prev_frame=287 start_position=287 i=287 -HistogramConfig::interpolate 150 0.228282 1.000000 0.802353 -TimeAvgMain::process_buffer 357 prev_frame=288 start_position=288 i=288 -HistogramConfig::interpolate 150 0.228732 1.000000 0.802484 -TimeAvgMain::process_buffer 357 prev_frame=289 start_position=289 i=289 -HistogramConfig::interpolate 150 0.229181 1.000000 0.802615 -TimeAvgMain::process_buffer 357 prev_frame=290 start_position=290 i=290 -HistogramConfig::interpolate 150 0.229631 1.000000 0.802746 -TimeAvgMain::process_buffer 357 prev_frame=291 start_position=291 i=291 -HistogramConfig::interpolate 150 0.230080 1.000000 0.802876 -TimeAvgMain::process_buffer 357 prev_frame=292 start_position=292 i=292 -HistogramConfig::interpolate 150 0.230530 1.000000 0.803007 -TimeAvgMain::process_buffer 357 prev_frame=293 start_position=293 i=293 -HistogramConfig::interpolate 150 0.230979 1.000000 0.803138 -TimeAvgMain::process_buffer 357 prev_frame=294 start_position=294 i=294 -HistogramConfig::interpolate 150 0.231428 1.000000 0.803269 -TimeAvgMain::process_buffer 357 prev_frame=295 start_position=295 i=295 -HistogramConfig::interpolate 150 0.231878 1.000000 0.803399 -TimeAvgMain::process_buffer 357 prev_frame=296 start_position=296 i=296 -HistogramConfig::interpolate 150 0.232327 1.000000 0.803530 -TimeAvgMain::process_buffer 357 prev_frame=297 start_position=297 i=297 -HistogramConfig::interpolate 150 0.232777 1.000000 0.803661 -TimeAvgMain::process_buffer 357 prev_frame=298 start_position=298 i=298 -HistogramConfig::interpolate 150 0.233226 1.000000 0.803792 -TimeAvgMain::process_buffer 357 prev_frame=299 start_position=299 i=299 -HistogramConfig::interpolate 150 0.233676 1.000000 0.803922 -TimeAvgMain::process_buffer 357 prev_frame=300 start_position=300 i=300 -HistogramConfig::interpolate 150 0.234125 1.000000 0.804053 -TimeAvgMain::process_buffer 357 prev_frame=301 start_position=301 i=301 -HistogramConfig::interpolate 150 0.234575 1.000000 0.804184 -TimeAvgMain::process_buffer 357 prev_frame=302 start_position=302 i=302 -HistogramConfig::interpolate 150 0.235024 1.000000 0.804315 -TimeAvgMain::process_buffer 357 prev_frame=303 start_position=303 i=303 -HistogramConfig::interpolate 150 0.235473 1.000000 0.804445 -TimeAvgMain::process_buffer 357 prev_frame=304 start_position=304 i=304 -HistogramConfig::interpolate 150 0.235923 1.000000 0.804576 -TimeAvgMain::process_buffer 357 prev_frame=305 start_position=305 i=305 -HistogramConfig::interpolate 150 0.236372 1.000000 0.804707 -TimeAvgMain::process_buffer 357 prev_frame=306 start_position=306 i=306 -HistogramConfig::interpolate 150 0.236822 1.000000 0.804838 -TimeAvgMain::process_buffer 357 prev_frame=307 start_position=307 i=307 -HistogramConfig::interpolate 150 0.237271 1.000000 0.804968 -TimeAvgMain::process_buffer 357 prev_frame=308 start_position=308 i=308 -HistogramConfig::interpolate 150 0.237721 1.000000 0.805099 -TimeAvgMain::process_buffer 357 prev_frame=309 start_position=309 i=309 -HistogramConfig::interpolate 150 0.238170 1.000000 0.805230 -TimeAvgMain::process_buffer 357 prev_frame=310 start_position=310 i=310 -HistogramConfig::interpolate 150 0.238620 1.000000 0.805361 -TimeAvgMain::process_buffer 357 prev_frame=311 start_position=311 i=311 -HistogramConfig::interpolate 150 0.239069 1.000000 0.805491 -TimeAvgMain::process_buffer 357 prev_frame=312 start_position=312 i=312 -HistogramConfig::interpolate 150 0.239518 1.000000 0.805622 -TimeAvgMain::process_buffer 357 prev_frame=313 start_position=313 i=313 -HistogramConfig::interpolate 150 0.239968 1.000000 0.805753 -TimeAvgMain::process_buffer 357 prev_frame=314 start_position=314 i=314 -HistogramConfig::interpolate 150 0.240417 1.000000 0.805884 -TimeAvgMain::process_buffer 357 prev_frame=315 start_position=315 i=315 -HistogramConfig::interpolate 150 0.240867 1.000000 0.806014 -TimeAvgMain::process_buffer 357 prev_frame=316 start_position=316 i=316 -HistogramConfig::interpolate 150 0.241316 1.000000 0.806145 -TimeAvgMain::process_buffer 357 prev_frame=317 start_position=317 i=317 -HistogramConfig::interpolate 150 0.241766 1.000000 0.806276 -TimeAvgMain::process_buffer 357 prev_frame=318 start_position=318 i=318 -HistogramConfig::interpolate 150 0.242215 1.000000 0.806407 -TimeAvgMain::process_buffer 357 prev_frame=319 start_position=319 i=319 -HistogramConfig::interpolate 150 0.242665 1.000000 0.806537 -TimeAvgMain::process_buffer 357 prev_frame=320 start_position=320 i=320 -HistogramConfig::interpolate 150 0.243114 1.000000 0.806668 -TimeAvgMain::process_buffer 357 prev_frame=321 start_position=321 i=321 -HistogramConfig::interpolate 150 0.243563 1.000000 0.806799 -TimeAvgMain::process_buffer 357 prev_frame=322 start_position=322 i=322 -HistogramConfig::interpolate 150 0.244013 1.000000 0.806930 -TimeAvgMain::process_buffer 357 prev_frame=323 start_position=323 i=323 -HistogramConfig::interpolate 150 0.244462 1.000000 0.807060 -TimeAvgMain::process_buffer 357 prev_frame=324 start_position=324 i=324 -HistogramConfig::interpolate 150 0.244912 1.000000 0.807191 -TimeAvgMain::process_buffer 357 prev_frame=325 start_position=325 i=325 -HistogramConfig::interpolate 150 0.245361 1.000000 0.807322 -TimeAvgMain::process_buffer 357 prev_frame=326 start_position=326 i=326 -HistogramConfig::interpolate 150 0.245811 1.000000 0.807453 -TimeAvgMain::process_buffer 357 prev_frame=327 start_position=327 i=327 -HistogramConfig::interpolate 150 0.246260 1.000000 0.807583 -TimeAvgMain::process_buffer 357 prev_frame=328 start_position=328 i=328 -HistogramConfig::interpolate 150 0.246710 1.000000 0.807714 -TimeAvgMain::process_buffer 357 prev_frame=329 start_position=329 i=329 -HistogramConfig::interpolate 150 0.247159 1.000000 0.807845 -TimeAvgMain::process_buffer 357 prev_frame=330 start_position=330 i=330 -HistogramConfig::interpolate 150 0.247608 1.000000 0.807976 -TimeAvgMain::process_buffer 357 prev_frame=331 start_position=331 i=331 -HistogramConfig::interpolate 150 0.248058 1.000000 0.808106 -TimeAvgMain::process_buffer 357 prev_frame=332 start_position=332 i=332 -HistogramConfig::interpolate 150 0.248507 1.000000 0.808237 -TimeAvgMain::process_buffer 357 prev_frame=333 start_position=333 i=333 -HistogramConfig::interpolate 150 0.248957 1.000000 0.808368 -TimeAvgMain::process_buffer 357 prev_frame=334 start_position=334 i=334 -HistogramConfig::interpolate 150 0.249406 1.000000 0.808499 -TimeAvgMain::process_buffer 357 prev_frame=335 start_position=335 i=335 -HistogramConfig::interpolate 150 0.249856 1.000000 0.808629 -TimeAvgMain::process_buffer 357 prev_frame=336 start_position=336 i=336 -HistogramConfig::interpolate 150 0.250305 1.000000 0.808760 -TimeAvgMain::process_buffer 357 prev_frame=337 start_position=337 i=337 -HistogramConfig::interpolate 150 0.250755 1.000000 0.808891 -TimeAvgMain::process_buffer 357 prev_frame=338 start_position=338 i=338 -HistogramConfig::interpolate 150 0.251204 1.000000 0.809022 -TimeAvgMain::process_buffer 357 prev_frame=339 start_position=339 i=339 -HistogramConfig::interpolate 150 0.251653 1.000000 0.809152 -TimeAvgMain::process_buffer 357 prev_frame=340 start_position=340 i=340 -HistogramConfig::interpolate 150 0.252103 1.000000 0.809283 -TimeAvgMain::process_buffer 357 prev_frame=341 start_position=341 i=341 -HistogramConfig::interpolate 150 0.252552 1.000000 0.809414 -TimeAvgMain::process_buffer 357 prev_frame=342 start_position=342 i=342 -HistogramConfig::interpolate 150 0.253002 1.000000 0.809545 -TimeAvgMain::process_buffer 357 prev_frame=343 start_position=343 i=343 -HistogramConfig::interpolate 150 0.253451 1.000000 0.809675 -TimeAvgMain::process_buffer 357 prev_frame=344 start_position=344 i=344 -HistogramConfig::interpolate 150 0.253901 1.000000 0.809806 -TimeAvgMain::process_buffer 357 prev_frame=345 start_position=345 i=345 -HistogramConfig::interpolate 150 0.254350 1.000000 0.809937 -TimeAvgMain::process_buffer 357 prev_frame=346 start_position=346 i=346 -HistogramConfig::interpolate 150 0.254800 1.000000 0.810068 -TimeAvgMain::process_buffer 357 prev_frame=347 start_position=347 i=347 -HistogramConfig::interpolate 150 0.255249 1.000000 0.810198 -TimeAvgMain::process_buffer 357 prev_frame=348 start_position=348 i=348 -HistogramConfig::interpolate 150 0.255698 1.000000 0.810329 -TimeAvgMain::process_buffer 357 prev_frame=349 start_position=349 i=349 -HistogramConfig::interpolate 150 0.256148 1.000000 0.810460 -TimeAvgMain::process_buffer 357 prev_frame=350 start_position=350 i=350 -HistogramConfig::interpolate 150 0.256597 1.000000 0.810591 -TimeAvgMain::process_buffer 357 prev_frame=351 start_position=351 i=351 -HistogramConfig::interpolate 150 0.257047 1.000000 0.810721 -TimeAvgMain::process_buffer 357 prev_frame=352 start_position=352 i=352 -HistogramConfig::interpolate 150 0.257496 1.000000 0.810852 -TimeAvgMain::process_buffer 357 prev_frame=353 start_position=353 i=353 -HistogramConfig::interpolate 150 0.257946 1.000000 0.810983 -TimeAvgMain::process_buffer 357 prev_frame=354 start_position=354 i=354 -HistogramConfig::interpolate 150 0.258395 1.000000 0.811114 -TimeAvgMain::process_buffer 357 prev_frame=355 start_position=355 i=355 -HistogramConfig::interpolate 150 0.258845 1.000000 0.811244 -TimeAvgMain::process_buffer 357 prev_frame=356 start_position=356 i=356 -HistogramConfig::interpolate 150 0.259294 1.000000 0.811375 -TimeAvgMain::process_buffer 357 prev_frame=357 start_position=357 i=357 -HistogramConfig::interpolate 150 0.259743 1.000000 0.811506 -TimeAvgMain::process_buffer 357 prev_frame=358 start_position=358 i=358 -HistogramConfig::interpolate 150 0.260193 1.000000 0.811637 -TimeAvgMain::process_buffer 357 prev_frame=359 start_position=359 i=359 -HistogramConfig::interpolate 150 0.260642 1.000000 0.811767 -TimeAvgMain::process_buffer 357 prev_frame=360 start_position=360 i=360 -HistogramConfig::interpolate 150 0.261092 1.000000 0.811898 -TimeAvgMain::process_buffer 357 prev_frame=361 start_position=361 i=361 -HistogramConfig::interpolate 150 0.261541 1.000000 0.812029 -TimeAvgMain::process_buffer 357 prev_frame=362 start_position=362 i=362 -HistogramConfig::interpolate 150 0.261991 1.000000 0.812160 -TimeAvgMain::process_buffer 357 prev_frame=363 start_position=363 i=363 -HistogramConfig::interpolate 150 0.262440 1.000000 0.812290 -TimeAvgMain::process_buffer 357 prev_frame=364 start_position=364 i=364 -HistogramConfig::interpolate 150 0.262890 1.000000 0.812421 -TimeAvgMain::process_buffer 357 prev_frame=365 start_position=365 i=365 -HistogramConfig::interpolate 150 0.263339 1.000000 0.812552 -TimeAvgMain::process_buffer 357 prev_frame=366 start_position=366 i=366 -HistogramConfig::interpolate 150 0.263788 1.000000 0.812683 -TimeAvgMain::process_buffer 357 prev_frame=367 start_position=367 i=367 -HistogramConfig::interpolate 150 0.264238 1.000000 0.812813 -TimeAvgMain::process_buffer 357 prev_frame=368 start_position=368 i=368 -HistogramConfig::interpolate 150 0.264687 1.000000 0.812944 -TimeAvgMain::process_buffer 357 prev_frame=369 start_position=369 i=369 -HistogramConfig::interpolate 150 0.265137 1.000000 0.813075 -TimeAvgMain::process_buffer 357 prev_frame=370 start_position=370 i=370 -HistogramConfig::interpolate 150 0.265586 1.000000 0.813206 -TimeAvgMain::process_buffer 357 prev_frame=371 start_position=371 i=371 -HistogramConfig::interpolate 150 0.266036 1.000000 0.813336 -TimeAvgMain::process_buffer 357 prev_frame=372 start_position=372 i=372 -HistogramConfig::interpolate 150 0.266485 1.000000 0.813467 -TimeAvgMain::process_buffer 357 prev_frame=373 start_position=373 i=373 -HistogramConfig::interpolate 150 0.266935 1.000000 0.813598 -TimeAvgMain::process_buffer 357 prev_frame=374 start_position=374 i=374 -HistogramConfig::interpolate 150 0.267384 1.000000 0.813729 -TimeAvgMain::process_buffer 357 prev_frame=375 start_position=375 i=375 -HistogramConfig::interpolate 150 0.267833 1.000000 0.813859 -TimeAvgMain::process_buffer 357 prev_frame=376 start_position=376 i=376 -HistogramConfig::interpolate 150 0.268283 1.000000 0.813990 -TimeAvgMain::process_buffer 357 prev_frame=377 start_position=377 i=377 -HistogramConfig::interpolate 150 0.268732 1.000000 0.814121 -TimeAvgMain::process_buffer 357 prev_frame=378 start_position=378 i=378 -HistogramConfig::interpolate 150 0.269182 1.000000 0.814251 -TimeAvgMain::process_buffer 357 prev_frame=379 start_position=379 i=379 -HistogramConfig::interpolate 150 0.269631 1.000000 0.814382 -TimeAvgMain::process_buffer 357 prev_frame=380 start_position=380 i=380 -HistogramConfig::interpolate 150 0.270081 1.000000 0.814513 -TimeAvgMain::process_buffer 357 prev_frame=381 start_position=381 i=381 -HistogramConfig::interpolate 150 0.270530 1.000000 0.814644 -TimeAvgMain::process_buffer 357 prev_frame=382 start_position=382 i=382 -HistogramConfig::interpolate 150 0.270980 1.000000 0.814775 -TimeAvgMain::process_buffer 357 prev_frame=383 start_position=383 i=383 -HistogramConfig::interpolate 150 0.271429 1.000000 0.814905 -TimeAvgMain::process_buffer 357 prev_frame=384 start_position=384 i=384 -HistogramConfig::interpolate 150 0.271878 1.000000 0.815036 -TimeAvgMain::process_buffer 357 prev_frame=385 start_position=385 i=385 -HistogramConfig::interpolate 150 0.272328 1.000000 0.815167 -TimeAvgMain::process_buffer 357 prev_frame=386 start_position=386 i=386 -HistogramConfig::interpolate 150 0.272777 1.000000 0.815297 -TimeAvgMain::process_buffer 357 prev_frame=387 start_position=387 i=387 -HistogramConfig::interpolate 150 0.273227 1.000000 0.815428 -TimeAvgMain::process_buffer 357 prev_frame=388 start_position=388 i=388 -HistogramConfig::interpolate 150 0.273676 1.000000 0.815559 -TimeAvgMain::process_buffer 357 prev_frame=389 start_position=389 i=389 -HistogramConfig::interpolate 150 0.274126 1.000000 0.815690 -TimeAvgMain::process_buffer 357 prev_frame=390 start_position=390 i=390 -HistogramConfig::interpolate 150 0.274575 1.000000 0.815820 -TimeAvgMain::process_buffer 357 prev_frame=391 start_position=391 i=391 -HistogramConfig::interpolate 150 0.275025 1.000000 0.815951 -TimeAvgMain::process_buffer 357 prev_frame=392 start_position=392 i=392 -HistogramConfig::interpolate 150 0.275474 1.000000 0.816082 -TimeAvgMain::process_buffer 357 prev_frame=393 start_position=393 i=393 -HistogramConfig::interpolate 150 0.275923 1.000000 0.816213 -TimeAvgMain::process_buffer 357 prev_frame=394 start_position=394 i=394 -HistogramConfig::interpolate 150 0.276373 1.000000 0.816343 -TimeAvgMain::process_buffer 357 prev_frame=395 start_position=395 i=395 -HistogramConfig::interpolate 150 0.276822 1.000000 0.816474 -TimeAvgMain::process_buffer 357 prev_frame=396 start_position=396 i=396 -HistogramConfig::interpolate 150 0.277272 1.000000 0.816605 -TimeAvgMain::process_buffer 357 prev_frame=397 start_position=397 i=397 -HistogramConfig::interpolate 150 0.277721 1.000000 0.816736 -TimeAvgMain::process_buffer 357 prev_frame=398 start_position=398 i=398 -HistogramConfig::interpolate 150 0.278171 1.000000 0.816866 -TimeAvgMain::process_buffer 357 prev_frame=399 start_position=399 i=399 -HistogramConfig::interpolate 150 0.278620 1.000000 0.816997 -TimeAvgMain::process_buffer 357 prev_frame=400 start_position=400 i=400 -HistogramConfig::interpolate 150 0.279070 1.000000 0.817128 -TimeAvgMain::process_buffer 357 prev_frame=401 start_position=401 i=401 -HistogramConfig::interpolate 150 0.279519 1.000000 0.817259 -TimeAvgMain::process_buffer 357 prev_frame=402 start_position=402 i=402 -HistogramConfig::interpolate 150 0.279968 1.000000 0.817389 -TimeAvgMain::process_buffer 357 prev_frame=403 start_position=403 i=403 -HistogramConfig::interpolate 150 0.280418 1.000000 0.817520 -TimeAvgMain::process_buffer 357 prev_frame=404 start_position=404 i=404 -HistogramConfig::interpolate 150 0.280867 1.000000 0.817651 -TimeAvgMain::process_buffer 357 prev_frame=405 start_position=405 i=405 -HistogramConfig::interpolate 150 0.281317 1.000000 0.817782 -TimeAvgMain::process_buffer 357 prev_frame=406 start_position=406 i=406 -HistogramConfig::interpolate 150 0.281766 1.000000 0.817912 -TimeAvgMain::process_buffer 357 prev_frame=407 start_position=407 i=407 -HistogramConfig::interpolate 150 0.282216 1.000000 0.818043 -TimeAvgMain::process_buffer 357 prev_frame=408 start_position=408 i=408 -HistogramConfig::interpolate 150 0.282665 1.000000 0.818174 -TimeAvgMain::process_buffer 357 prev_frame=409 start_position=409 i=409 -HistogramConfig::interpolate 150 0.283115 1.000000 0.818305 -TimeAvgMain::process_buffer 357 prev_frame=410 start_position=410 i=410 -HistogramConfig::interpolate 150 0.283564 1.000000 0.818435 -TimeAvgMain::process_buffer 357 prev_frame=411 start_position=411 i=411 -HistogramConfig::interpolate 150 0.284013 1.000000 0.818566 -TimeAvgMain::process_buffer 357 prev_frame=412 start_position=412 i=412 -HistogramConfig::interpolate 150 0.284463 1.000000 0.818697 -TimeAvgMain::process_buffer 357 prev_frame=413 start_position=413 i=413 -HistogramConfig::interpolate 150 0.284912 1.000000 0.818828 -TimeAvgMain::process_buffer 357 prev_frame=414 start_position=414 i=414 -HistogramConfig::interpolate 150 0.285362 1.000000 0.818958 -TimeAvgMain::process_buffer 357 prev_frame=415 start_position=415 i=415 -HistogramConfig::interpolate 150 0.285811 1.000000 0.819089 -TimeAvgMain::process_buffer 357 prev_frame=416 start_position=416 i=416 -HistogramConfig::interpolate 150 0.286261 1.000000 0.819220 -TimeAvgMain::process_buffer 357 prev_frame=417 start_position=417 i=417 -HistogramConfig::interpolate 150 0.286710 1.000000 0.819351 -TimeAvgMain::process_buffer 357 prev_frame=418 start_position=418 i=418 -HistogramConfig::interpolate 150 0.287160 1.000000 0.819481 -TimeAvgMain::process_buffer 357 prev_frame=419 start_position=419 i=419 -HistogramConfig::interpolate 150 0.287609 1.000000 0.819612 -TimeAvgMain::process_buffer 357 prev_frame=420 start_position=420 i=420 -HistogramConfig::interpolate 150 0.288058 1.000000 0.819743 -TimeAvgMain::process_buffer 357 prev_frame=421 start_position=421 i=421 -HistogramConfig::interpolate 150 0.288508 1.000000 0.819874 -TimeAvgMain::process_buffer 357 prev_frame=422 start_position=422 i=422 -HistogramConfig::interpolate 150 0.288957 1.000000 0.820004 -TimeAvgMain::process_buffer 357 prev_frame=423 start_position=423 i=423 -HistogramConfig::interpolate 150 0.289407 1.000000 0.820135 -TimeAvgMain::process_buffer 357 prev_frame=424 start_position=424 i=424 -HistogramConfig::interpolate 150 0.289856 1.000000 0.820266 -TimeAvgMain::process_buffer 357 prev_frame=425 start_position=425 i=425 -HistogramConfig::interpolate 150 0.290306 1.000000 0.820397 -TimeAvgMain::process_buffer 357 prev_frame=426 start_position=426 i=426 -HistogramConfig::interpolate 150 0.290755 1.000000 0.820527 -TimeAvgMain::process_buffer 357 prev_frame=427 start_position=427 i=427 -HistogramConfig::interpolate 150 0.291205 1.000000 0.820658 -TimeAvgMain::process_buffer 357 prev_frame=428 start_position=428 i=428 -HistogramConfig::interpolate 150 0.291654 1.000000 0.820789 -TimeAvgMain::process_buffer 357 prev_frame=429 start_position=429 i=429 -HistogramConfig::interpolate 150 0.292103 1.000000 0.820920 -TimeAvgMain::process_buffer 357 prev_frame=430 start_position=430 i=430 -HistogramConfig::interpolate 150 0.292553 1.000000 0.821050 -TimeAvgMain::process_buffer 357 prev_frame=431 start_position=431 i=431 -HistogramConfig::interpolate 150 0.293002 1.000000 0.821181 -TimeAvgMain::process_buffer 357 prev_frame=432 start_position=432 i=432 -HistogramConfig::interpolate 150 0.293452 1.000000 0.821312 -TimeAvgMain::process_buffer 357 prev_frame=433 start_position=433 i=433 -HistogramConfig::interpolate 150 0.293901 1.000000 0.821443 -TimeAvgMain::process_buffer 357 prev_frame=434 start_position=434 i=434 -HistogramConfig::interpolate 150 0.294351 1.000000 0.821573 -TimeAvgMain::process_buffer 357 prev_frame=435 start_position=435 i=435 -HistogramConfig::interpolate 150 0.294800 1.000000 0.821704 -TimeAvgMain::process_buffer 357 prev_frame=436 start_position=436 i=436 -HistogramConfig::interpolate 150 0.295250 1.000000 0.821835 -TimeAvgMain::process_buffer 357 prev_frame=437 start_position=437 i=437 -HistogramConfig::interpolate 150 0.295699 1.000000 0.821966 -TimeAvgMain::process_buffer 357 prev_frame=438 start_position=438 i=438 -HistogramConfig::interpolate 150 0.296148 1.000000 0.822096 -TimeAvgMain::process_buffer 357 prev_frame=439 start_position=439 i=439 -HistogramConfig::interpolate 150 0.296598 1.000000 0.822227 -TimeAvgMain::process_buffer 357 prev_frame=440 start_position=440 i=440 -HistogramConfig::interpolate 150 0.297047 1.000000 0.822358 -TimeAvgMain::process_buffer 357 prev_frame=441 start_position=441 i=441 -HistogramConfig::interpolate 150 0.297497 1.000000 0.822489 -TimeAvgMain::process_buffer 357 prev_frame=442 start_position=442 i=442 -HistogramConfig::interpolate 150 0.297946 1.000000 0.822619 -TimeAvgMain::process_buffer 357 prev_frame=443 start_position=443 i=443 -HistogramConfig::interpolate 150 0.298396 1.000000 0.822750 -TimeAvgMain::process_buffer 357 prev_frame=444 start_position=444 i=444 -HistogramConfig::interpolate 150 0.298845 1.000000 0.822881 -TimeAvgMain::process_buffer 357 prev_frame=445 start_position=445 i=445 -HistogramConfig::interpolate 150 0.299295 1.000000 0.823012 -TimeAvgMain::process_buffer 357 prev_frame=446 start_position=446 i=446 -HistogramConfig::interpolate 150 0.299744 1.000000 0.823142 -TimeAvgMain::process_buffer 357 prev_frame=447 start_position=447 i=447 -HistogramConfig::interpolate 150 0.300193 1.000000 0.823273 -TimeAvgMain::process_buffer 357 prev_frame=448 start_position=448 i=448 -HistogramConfig::interpolate 150 0.300643 1.000000 0.823404 -TimeAvgMain::process_buffer 357 prev_frame=449 start_position=449 i=449 -HistogramConfig::interpolate 150 0.301092 1.000000 0.823535 -TimeAvgMain::process_buffer 357 prev_frame=450 start_position=450 i=450 -HistogramConfig::interpolate 150 0.301542 1.000000 0.823665 -TimeAvgMain::process_buffer 357 prev_frame=451 start_position=451 i=451 -HistogramConfig::interpolate 150 0.301991 1.000000 0.823796 -TimeAvgMain::process_buffer 357 prev_frame=452 start_position=452 i=452 -HistogramConfig::interpolate 150 0.302441 1.000000 0.823927 -TimeAvgMain::process_buffer 357 prev_frame=453 start_position=453 i=453 -HistogramConfig::interpolate 150 0.302890 1.000000 0.824058 -TimeAvgMain::process_buffer 357 prev_frame=454 start_position=454 i=454 -HistogramConfig::interpolate 150 0.303340 1.000000 0.824188 -TimeAvgMain::process_buffer 357 prev_frame=455 start_position=455 i=455 -HistogramConfig::interpolate 150 0.303789 1.000000 0.824319 -TimeAvgMain::process_buffer 357 prev_frame=456 start_position=456 i=456 -HistogramConfig::interpolate 150 0.304238 1.000000 0.824450 -TimeAvgMain::process_buffer 357 prev_frame=457 start_position=457 i=457 -HistogramConfig::interpolate 150 0.304688 1.000000 0.824581 -TimeAvgMain::process_buffer 357 prev_frame=458 start_position=458 i=458 -HistogramConfig::interpolate 150 0.305137 1.000000 0.824711 -TimeAvgMain::process_buffer 357 prev_frame=459 start_position=459 i=459 -HistogramConfig::interpolate 150 0.305587 1.000000 0.824842 -TimeAvgMain::process_buffer 357 prev_frame=460 start_position=460 i=460 -HistogramConfig::interpolate 150 0.306036 1.000000 0.824973 -TimeAvgMain::process_buffer 357 prev_frame=461 start_position=461 i=461 -HistogramConfig::interpolate 150 0.306486 1.000000 0.825104 -TimeAvgMain::process_buffer 357 prev_frame=462 start_position=462 i=462 -HistogramConfig::interpolate 150 0.306935 1.000000 0.825234 -HistogramConfig::interpolate 150 0.324014 1.000000 0.830203 -TimeAvgMain::process_buffer 357 prev_frame=463 start_position=463 i=463 -HistogramConfig::interpolate 150 0.307385 1.000000 0.825365 -TimeAvgMain::process_buffer 357 prev_frame=464 start_position=464 i=464 -HistogramConfig::interpolate 150 0.307834 1.000000 0.825496 -TimeAvgMain::process_buffer 357 prev_frame=465 start_position=465 i=465 -TimeAvgMain::process_buffer 357 prev_frame=501 start_position=501 i=501 -HistogramConfig::interpolate 150 0.308283 1.000000 0.825627 -TimeAvgMain::process_buffer 357 prev_frame=466 start_position=466 i=466 -HistogramConfig::interpolate 150 0.308733 1.000000 0.825757 -TimeAvgMain::process_buffer 357 prev_frame=467 start_position=467 i=467 -HistogramConfig::interpolate 150 0.309182 1.000000 0.825888 -TimeAvgMain::process_buffer 357 prev_frame=468 start_position=468 i=468 -HistogramConfig::interpolate 150 0.309632 1.000000 0.826019 -TimeAvgMain::process_buffer 357 prev_frame=469 start_position=469 i=469 -HistogramConfig::interpolate 150 0.310081 1.000000 0.826150 -TimeAvgMain::process_buffer 357 prev_frame=470 start_position=470 i=470 -HistogramConfig::interpolate 150 0.310531 1.000000 0.826280 -TimeAvgMain::process_buffer 357 prev_frame=471 start_position=471 i=471 -HistogramConfig::interpolate 150 0.310980 1.000000 0.826411 -TimeAvgMain::process_buffer 357 prev_frame=472 start_position=472 i=472 -HistogramConfig::interpolate 150 0.311430 1.000000 0.826542 -TimeAvgMain::process_buffer 357 prev_frame=473 start_position=473 i=473 -HistogramConfig::interpolate 150 0.311879 1.000000 0.826672 -TimeAvgMain::process_buffer 357 prev_frame=474 start_position=474 i=474 -HistogramConfig::interpolate 150 0.312328 1.000000 0.826803 -TimeAvgMain::process_buffer 357 prev_frame=475 start_position=475 i=475 -HistogramConfig::interpolate 150 0.312778 1.000000 0.826934 -TimeAvgMain::process_buffer 357 prev_frame=476 start_position=476 i=476 -HistogramConfig::interpolate 150 0.313227 1.000000 0.827065 -TimeAvgMain::process_buffer 357 prev_frame=477 start_position=477 i=477 -HistogramConfig::interpolate 150 0.313677 1.000000 0.827196 -TimeAvgMain::process_buffer 357 prev_frame=478 start_position=478 i=478 -HistogramConfig::interpolate 150 0.314126 1.000000 0.827326 -TimeAvgMain::process_buffer 357 prev_frame=479 start_position=479 i=479 -HistogramConfig::interpolate 150 0.314576 1.000000 0.827457 -TimeAvgMain::process_buffer 357 prev_frame=480 start_position=480 i=480 -HistogramConfig::interpolate 150 0.315025 1.000000 0.827588 -TimeAvgMain::process_buffer 357 prev_frame=481 start_position=481 i=481 -HistogramConfig::interpolate 150 0.315475 1.000000 0.827718 -TimeAvgMain::process_buffer 357 prev_frame=482 start_position=482 i=482 -HistogramConfig::interpolate 150 0.315924 1.000000 0.827849 -TimeAvgMain::process_buffer 357 prev_frame=483 start_position=483 i=483 -HistogramConfig::interpolate 150 0.316373 1.000000 0.827980 -TimeAvgMain::process_buffer 357 prev_frame=484 start_position=484 i=484 -HistogramConfig::interpolate 150 0.316823 1.000000 0.828111 -TimeAvgMain::process_buffer 357 prev_frame=485 start_position=485 i=485 -HistogramConfig::interpolate 150 0.317272 1.000000 0.828241 -TimeAvgMain::process_buffer 357 prev_frame=486 start_position=486 i=486 -HistogramConfig::interpolate 150 0.317722 1.000000 0.828372 -TimeAvgMain::process_buffer 357 prev_frame=487 start_position=487 i=487 -HistogramConfig::interpolate 150 0.318171 1.000000 0.828503 -TimeAvgMain::process_buffer 357 prev_frame=488 start_position=488 i=488 -HistogramConfig::interpolate 150 0.318621 1.000000 0.828634 -TimeAvgMain::process_buffer 357 prev_frame=489 start_position=489 i=489 -HistogramConfig::interpolate 150 0.319070 1.000000 0.828764 -TimeAvgMain::process_buffer 357 prev_frame=490 start_position=490 i=490 -HistogramConfig::interpolate 150 0.319520 1.000000 0.828895 -TimeAvgMain::process_buffer 357 prev_frame=491 start_position=491 i=491 -HistogramConfig::interpolate 150 0.319969 1.000000 0.829026 -TimeAvgMain::process_buffer 357 prev_frame=492 start_position=492 i=492 -HistogramConfig::interpolate 150 0.320418 1.000000 0.829157 -TimeAvgMain::process_buffer 357 prev_frame=493 start_position=493 i=493 -HistogramConfig::interpolate 150 0.320868 1.000000 0.829287 -TimeAvgMain::process_buffer 357 prev_frame=494 start_position=494 i=494 -HistogramConfig::interpolate 150 0.321317 1.000000 0.829418 -TimeAvgMain::process_buffer 357 prev_frame=495 start_position=495 i=495 -HistogramConfig::interpolate 150 0.321767 1.000000 0.829549 -TimeAvgMain::process_buffer 357 prev_frame=496 start_position=496 i=496 -HistogramConfig::interpolate 150 0.322216 1.000000 0.829680 -TimeAvgMain::process_buffer 357 prev_frame=497 start_position=497 i=497 -HistogramConfig::interpolate 150 0.322666 1.000000 0.829810 -TimeAvgMain::process_buffer 357 prev_frame=498 start_position=498 i=498 -HistogramConfig::interpolate 150 0.323115 1.000000 0.829941 -TimeAvgMain::process_buffer 357 prev_frame=499 start_position=499 i=499 -HistogramConfig::interpolate 150 0.323565 1.000000 0.830072 -TimeAvgMain::process_buffer 357 prev_frame=500 start_position=500 i=500 -HistogramConfig::interpolate 150 0.324014 1.000000 0.830203 -TimeAvgMain::process_buffer 357 prev_frame=501 start_position=501 i=501 -HistogramConfig::interpolate 150 0.324463 1.000000 0.830333 -TimeAvgMain::process_buffer 357 prev_frame=502 start_position=502 i=502 -HistogramConfig::interpolate 150 0.324913 1.000000 0.830464 -TimeAvgMain::process_buffer 357 prev_frame=503 start_position=503 i=503 -HistogramConfig::interpolate 150 0.325362 1.000000 0.830595 -TimeAvgMain::process_buffer 357 prev_frame=504 start_position=504 i=504 -HistogramConfig::interpolate 150 0.325812 1.000000 0.830726 -TimeAvgMain::process_buffer 357 prev_frame=505 start_position=505 i=505 -HistogramConfig::interpolate 150 0.326261 1.000000 0.830856 -TimeAvgMain::process_buffer 357 prev_frame=506 start_position=506 i=506 -HistogramConfig::interpolate 150 0.326711 1.000000 0.830987 -TimeAvgMain::process_buffer 357 prev_frame=507 start_position=507 i=507 -HistogramConfig::interpolate 150 0.327160 1.000000 0.831118 -TimeAvgMain::process_buffer 357 prev_frame=508 start_position=508 i=508 -HistogramConfig::interpolate 150 0.327610 1.000000 0.831249 -TimeAvgMain::process_buffer 357 prev_frame=509 start_position=509 i=509 -HistogramConfig::interpolate 150 0.328059 1.000000 0.831379 -TimeAvgMain::process_buffer 357 prev_frame=510 start_position=510 i=510 -HistogramConfig::interpolate 150 0.328508 1.000000 0.831510 -TimeAvgMain::process_buffer 357 prev_frame=511 start_position=511 i=511 -HistogramConfig::interpolate 150 0.328958 1.000000 0.831641 -TimeAvgMain::process_buffer 357 prev_frame=512 start_position=512 i=512 -HistogramConfig::interpolate 150 0.329407 1.000000 0.831772 -TimeAvgMain::process_buffer 357 prev_frame=513 start_position=513 i=513 -HistogramConfig::interpolate 150 0.329857 1.000000 0.831902 -TimeAvgMain::process_buffer 357 prev_frame=514 start_position=514 i=514 -HistogramConfig::interpolate 150 0.330306 1.000000 0.832033 -TimeAvgMain::process_buffer 357 prev_frame=515 start_position=515 i=515 -HistogramConfig::interpolate 150 0.330756 1.000000 0.832164 -TimeAvgMain::process_buffer 357 prev_frame=516 start_position=516 i=516 -HistogramConfig::interpolate 150 0.331205 1.000000 0.832295 -TimeAvgMain::process_buffer 357 prev_frame=517 start_position=517 i=517 -HistogramConfig::interpolate 150 0.331655 1.000000 0.832425 -TimeAvgMain::process_buffer 357 prev_frame=518 start_position=518 i=518 -HistogramConfig::interpolate 150 0.332104 1.000000 0.832556 -TimeAvgMain::process_buffer 357 prev_frame=519 start_position=519 i=519 -HistogramConfig::interpolate 150 0.332553 1.000000 0.832687 -TimeAvgMain::process_buffer 357 prev_frame=520 start_position=520 i=520 -HistogramConfig::interpolate 150 0.333003 1.000000 0.832818 -TimeAvgMain::process_buffer 357 prev_frame=521 start_position=521 i=521 -HistogramConfig::interpolate 150 0.333452 1.000000 0.832948 -TimeAvgMain::process_buffer 357 prev_frame=522 start_position=522 i=522 -HistogramConfig::interpolate 150 0.333902 1.000000 0.833079 -TimeAvgMain::process_buffer 357 prev_frame=523 start_position=523 i=523 -HistogramConfig::interpolate 150 0.334351 1.000000 0.833210 -TimeAvgMain::process_buffer 357 prev_frame=524 start_position=524 i=524 -HistogramConfig::interpolate 150 0.334801 1.000000 0.833341 -TimeAvgMain::process_buffer 357 prev_frame=525 start_position=525 i=525 -HistogramConfig::interpolate 150 0.335250 1.000000 0.833471 -TimeAvgMain::process_buffer 357 prev_frame=526 start_position=526 i=526 -HistogramConfig::interpolate 150 0.335700 1.000000 0.833602 -TimeAvgMain::process_buffer 357 prev_frame=527 start_position=527 i=527 -HistogramConfig::interpolate 150 0.336149 1.000000 0.833733 -TimeAvgMain::process_buffer 357 prev_frame=528 start_position=528 i=528 -HistogramConfig::interpolate 150 0.336598 1.000000 0.833864 -TimeAvgMain::process_buffer 357 prev_frame=529 start_position=529 i=529 -HistogramConfig::interpolate 150 0.337048 1.000000 0.833994 -TimeAvgMain::process_buffer 357 prev_frame=530 start_position=530 i=530 -HistogramConfig::interpolate 150 0.337497 1.000000 0.834125 -TimeAvgMain::process_buffer 357 prev_frame=531 start_position=531 i=531 -HistogramConfig::interpolate 150 0.337947 1.000000 0.834256 -TimeAvgMain::process_buffer 357 prev_frame=532 start_position=532 i=532 -HistogramConfig::interpolate 150 0.338396 1.000000 0.834387 -TimeAvgMain::process_buffer 357 prev_frame=533 start_position=533 i=533 -HistogramConfig::interpolate 150 0.338846 1.000000 0.834517 -TimeAvgMain::process_buffer 357 prev_frame=534 start_position=534 i=534 -HistogramConfig::interpolate 150 0.339295 1.000000 0.834648 -TimeAvgMain::process_buffer 357 prev_frame=535 start_position=535 i=535 -HistogramConfig::interpolate 150 0.339745 1.000000 0.834779 -TimeAvgMain::process_buffer 357 prev_frame=536 start_position=536 i=536 -HistogramConfig::interpolate 150 0.340194 1.000000 0.834910 -TimeAvgMain::process_buffer 357 prev_frame=537 start_position=537 i=537 -HistogramConfig::interpolate 150 0.340643 1.000000 0.835040 -TimeAvgMain::process_buffer 357 prev_frame=538 start_position=538 i=538 -HistogramConfig::interpolate 150 0.341093 1.000000 0.835171 -TimeAvgMain::process_buffer 357 prev_frame=539 start_position=539 i=539 -HistogramConfig::interpolate 150 0.341542 1.000000 0.835302 -TimeAvgMain::process_buffer 357 prev_frame=540 start_position=540 i=540 -HistogramConfig::interpolate 150 0.341992 1.000000 0.835433 -TimeAvgMain::process_buffer 357 prev_frame=541 start_position=541 i=541 -HistogramConfig::interpolate 150 0.342441 1.000000 0.835563 -TimeAvgMain::process_buffer 357 prev_frame=542 start_position=542 i=542 -HistogramConfig::interpolate 150 0.342891 1.000000 0.835694 -TimeAvgMain::process_buffer 357 prev_frame=543 start_position=543 i=543 -HistogramConfig::interpolate 150 0.343340 1.000000 0.835825 -TimeAvgMain::process_buffer 357 prev_frame=544 start_position=544 i=544 -HistogramConfig::interpolate 150 0.343790 1.000000 0.835956 -TimeAvgMain::process_buffer 357 prev_frame=545 start_position=545 i=545 -HistogramConfig::interpolate 150 0.344239 1.000000 0.836086 -TimeAvgMain::process_buffer 357 prev_frame=546 start_position=546 i=546 -HistogramConfig::interpolate 150 0.344688 1.000000 0.836217 -TimeAvgMain::process_buffer 357 prev_frame=547 start_position=547 i=547 -HistogramConfig::interpolate 150 0.345138 1.000000 0.836348 -TimeAvgMain::process_buffer 357 prev_frame=548 start_position=548 i=548 -HistogramConfig::interpolate 150 0.345587 1.000000 0.836479 -TimeAvgMain::process_buffer 357 prev_frame=549 start_position=549 i=549 -HistogramConfig::interpolate 150 0.346037 1.000000 0.836609 -TimeAvgMain::process_buffer 357 prev_frame=550 start_position=550 i=550 -HistogramConfig::interpolate 150 0.346486 1.000000 0.836740 -TimeAvgMain::process_buffer 357 prev_frame=551 start_position=551 i=551 -HistogramConfig::interpolate 150 0.346936 1.000000 0.836871 -TimeAvgMain::process_buffer 357 prev_frame=552 start_position=552 i=552 -HistogramConfig::interpolate 150 0.347385 1.000000 0.837002 -TimeAvgMain::process_buffer 357 prev_frame=553 start_position=553 i=553 -HistogramConfig::interpolate 150 0.347835 1.000000 0.837132 -TimeAvgMain::process_buffer 357 prev_frame=554 start_position=554 i=554 -HistogramConfig::interpolate 150 0.348284 1.000000 0.837263 -TimeAvgMain::process_buffer 357 prev_frame=555 start_position=555 i=555 -HistogramConfig::interpolate 150 0.348733 1.000000 0.837394 -TimeAvgMain::process_buffer 357 prev_frame=556 start_position=556 i=556 -HistogramConfig::interpolate 150 0.349183 1.000000 0.837525 -TimeAvgMain::process_buffer 357 prev_frame=557 start_position=557 i=557 -HistogramConfig::interpolate 150 0.349632 1.000000 0.837655 -TimeAvgMain::process_buffer 357 prev_frame=558 start_position=558 i=558 -HistogramConfig::interpolate 150 0.350082 1.000000 0.837786 -TimeAvgMain::process_buffer 357 prev_frame=559 start_position=559 i=559 -HistogramConfig::interpolate 150 0.350531 1.000000 0.837917 -TimeAvgMain::process_buffer 357 prev_frame=560 start_position=560 i=560 -HistogramConfig::interpolate 150 0.350981 1.000000 0.838048 -TimeAvgMain::process_buffer 357 prev_frame=561 start_position=561 i=561 -HistogramConfig::interpolate 150 0.351430 1.000000 0.838178 -TimeAvgMain::process_buffer 357 prev_frame=562 start_position=562 i=562 -HistogramConfig::interpolate 150 0.351880 1.000000 0.838309 -TimeAvgMain::process_buffer 357 prev_frame=563 start_position=563 i=563 -HistogramConfig::interpolate 150 0.352329 1.000000 0.838440 -TimeAvgMain::process_buffer 357 prev_frame=564 start_position=564 i=564 -HistogramConfig::interpolate 150 0.352778 1.000000 0.838571 -TimeAvgMain::process_buffer 357 prev_frame=565 start_position=565 i=565 -HistogramConfig::interpolate 150 0.353228 1.000000 0.838701 -TimeAvgMain::process_buffer 357 prev_frame=566 start_position=566 i=566 -HistogramConfig::interpolate 150 0.353677 1.000000 0.838832 -TimeAvgMain::process_buffer 357 prev_frame=567 start_position=567 i=567 -HistogramConfig::interpolate 150 0.354127 1.000000 0.838963 -TimeAvgMain::process_buffer 357 prev_frame=568 start_position=568 i=568 -HistogramConfig::interpolate 150 0.354576 1.000000 0.839094 -TimeAvgMain::process_buffer 357 prev_frame=569 start_position=569 i=569 -HistogramConfig::interpolate 150 0.355026 1.000000 0.839224 -TimeAvgMain::process_buffer 357 prev_frame=570 start_position=570 i=570 -HistogramConfig::interpolate 150 0.355475 1.000000 0.839355 -TimeAvgMain::process_buffer 357 prev_frame=571 start_position=571 i=571 -HistogramConfig::interpolate 150 0.355925 1.000000 0.839486 -TimeAvgMain::process_buffer 357 prev_frame=572 start_position=572 i=572 -HistogramConfig::interpolate 150 0.356374 1.000000 0.839617 -TimeAvgMain::process_buffer 357 prev_frame=573 start_position=573 i=573 -HistogramConfig::interpolate 150 0.356823 1.000000 0.839747 -TimeAvgMain::process_buffer 357 prev_frame=574 start_position=574 i=574 -HistogramConfig::interpolate 150 0.357273 1.000000 0.839878 -TimeAvgMain::process_buffer 357 prev_frame=575 start_position=575 i=575 -HistogramConfig::interpolate 150 0.357722 1.000000 0.840009 -TimeAvgMain::process_buffer 357 prev_frame=576 start_position=576 i=576 -HistogramConfig::interpolate 150 0.358172 1.000000 0.840140 -TimeAvgMain::process_buffer 357 prev_frame=577 start_position=577 i=577 -HistogramConfig::interpolate 150 0.358621 1.000000 0.840270 -TimeAvgMain::process_buffer 357 prev_frame=578 start_position=578 i=578 -HistogramConfig::interpolate 150 0.359071 1.000000 0.840401 -TimeAvgMain::process_buffer 357 prev_frame=579 start_position=579 i=579 -HistogramConfig::interpolate 150 0.359520 1.000000 0.840532 -TimeAvgMain::process_buffer 357 prev_frame=580 start_position=580 i=580 -HistogramConfig::interpolate 150 0.359970 1.000000 0.840663 -TimeAvgMain::process_buffer 357 prev_frame=581 start_position=581 i=581 -HistogramConfig::interpolate 150 0.360419 1.000000 0.840793 -TimeAvgMain::process_buffer 357 prev_frame=582 start_position=582 i=582 -HistogramConfig::interpolate 150 0.360868 1.000000 0.840924 -TimeAvgMain::process_buffer 357 prev_frame=583 start_position=583 i=583 -HistogramConfig::interpolate 150 0.361318 1.000000 0.841055 -TimeAvgMain::process_buffer 357 prev_frame=584 start_position=584 i=584 -HistogramConfig::interpolate 150 0.361767 1.000000 0.841186 -TimeAvgMain::process_buffer 357 prev_frame=585 start_position=585 i=585 -HistogramConfig::interpolate 150 0.362217 1.000000 0.841316 -TimeAvgMain::process_buffer 357 prev_frame=586 start_position=586 i=586 -HistogramConfig::interpolate 150 0.362666 1.000000 0.841447 -TimeAvgMain::process_buffer 357 prev_frame=587 start_position=587 i=587 -HistogramConfig::interpolate 150 0.363116 1.000000 0.841578 -TimeAvgMain::process_buffer 357 prev_frame=588 start_position=588 i=588 -HistogramConfig::interpolate 150 0.363565 1.000000 0.841708 -TimeAvgMain::process_buffer 357 prev_frame=589 start_position=589 i=589 -HistogramConfig::interpolate 150 0.364015 1.000000 0.841839 -TimeAvgMain::process_buffer 357 prev_frame=590 start_position=590 i=590 -HistogramConfig::interpolate 150 0.364464 1.000000 0.841970 -TimeAvgMain::process_buffer 357 prev_frame=591 start_position=591 i=591 -HistogramConfig::interpolate 150 0.364913 1.000000 0.842101 -TimeAvgMain::process_buffer 357 prev_frame=592 start_position=592 i=592 -HistogramConfig::interpolate 150 0.365363 1.000000 0.842232 -TimeAvgMain::process_buffer 357 prev_frame=593 start_position=593 i=593 -HistogramConfig::interpolate 150 0.365812 1.000000 0.842362 -TimeAvgMain::process_buffer 357 prev_frame=594 start_position=594 i=594 -HistogramConfig::interpolate 150 0.366262 1.000000 0.842493 -TimeAvgMain::process_buffer 357 prev_frame=595 start_position=595 i=595 -HistogramConfig::interpolate 150 0.366711 1.000000 0.842624 -TimeAvgMain::process_buffer 357 prev_frame=596 start_position=596 i=596 -HistogramConfig::interpolate 150 0.367161 1.000000 0.842754 -TimeAvgMain::process_buffer 357 prev_frame=597 start_position=597 i=597 -HistogramConfig::interpolate 150 0.367610 1.000000 0.842885 -TimeAvgMain::process_buffer 357 prev_frame=598 start_position=598 i=598 -HistogramConfig::interpolate 150 0.368060 1.000000 0.843016 -TimeAvgMain::process_buffer 357 prev_frame=599 start_position=599 i=599 -HistogramConfig::interpolate 150 0.368509 1.000000 0.843147 -TimeAvgMain::process_buffer 357 prev_frame=600 start_position=600 i=600 -HistogramConfig::interpolate 150 0.368958 1.000000 0.843277 -TimeAvgMain::process_buffer 357 prev_frame=601 start_position=601 i=601 -HistogramConfig::interpolate 150 0.369408 1.000000 0.843408 -TimeAvgMain::process_buffer 357 prev_frame=602 start_position=602 i=602 -HistogramConfig::interpolate 150 0.369857 1.000000 0.843539 -TimeAvgMain::process_buffer 357 prev_frame=603 start_position=603 i=603 -HistogramConfig::interpolate 150 0.370307 1.000000 0.843670 -TimeAvgMain::process_buffer 357 prev_frame=604 start_position=604 i=604 -HistogramConfig::interpolate 150 0.370756 1.000000 0.843800 -TimeAvgMain::process_buffer 357 prev_frame=605 start_position=605 i=605 -HistogramConfig::interpolate 150 0.371206 1.000000 0.843931 -TimeAvgMain::process_buffer 357 prev_frame=606 start_position=606 i=606 -HistogramConfig::interpolate 150 0.371655 1.000000 0.844062 -TimeAvgMain::process_buffer 357 prev_frame=607 start_position=607 i=607 -HistogramConfig::interpolate 150 0.372105 1.000000 0.844193 -TimeAvgMain::process_buffer 357 prev_frame=608 start_position=608 i=608 -HistogramConfig::interpolate 150 0.372554 1.000000 0.844323 -TimeAvgMain::process_buffer 357 prev_frame=609 start_position=609 i=609 -HistogramConfig::interpolate 150 0.373003 1.000000 0.844454 -TimeAvgMain::process_buffer 357 prev_frame=610 start_position=610 i=610 -HistogramConfig::interpolate 150 0.373453 1.000000 0.844585 -TimeAvgMain::process_buffer 357 prev_frame=611 start_position=611 i=611 -HistogramConfig::interpolate 150 0.373902 1.000000 0.844716 -TimeAvgMain::process_buffer 357 prev_frame=612 start_position=612 i=612 -HistogramConfig::interpolate 150 0.374352 1.000000 0.844846 -TimeAvgMain::process_buffer 357 prev_frame=613 start_position=613 i=613 -HistogramConfig::interpolate 150 0.374801 1.000000 0.844977 -TimeAvgMain::process_buffer 357 prev_frame=614 start_position=614 i=614 -HistogramConfig::interpolate 150 0.375251 1.000000 0.845108 -TimeAvgMain::process_buffer 357 prev_frame=615 start_position=615 i=615 -HistogramConfig::interpolate 150 0.375700 1.000000 0.845239 -TimeAvgMain::process_buffer 357 prev_frame=616 start_position=616 i=616 -HistogramConfig::interpolate 150 0.376150 1.000000 0.845369 -TimeAvgMain::process_buffer 357 prev_frame=617 start_position=617 i=617 -HistogramConfig::interpolate 150 0.376599 1.000000 0.845500 -TimeAvgMain::process_buffer 357 prev_frame=618 start_position=618 i=618 -HistogramConfig::interpolate 150 0.377048 1.000000 0.845631 -TimeAvgMain::process_buffer 357 prev_frame=619 start_position=619 i=619 -HistogramConfig::interpolate 150 0.377498 1.000000 0.845762 -TimeAvgMain::process_buffer 357 prev_frame=620 start_position=620 i=620 -HistogramConfig::interpolate 150 0.377947 1.000000 0.845892 -TimeAvgMain::process_buffer 357 prev_frame=621 start_position=621 i=621 -HistogramConfig::interpolate 150 0.378397 1.000000 0.846023 -TimeAvgMain::process_buffer 357 prev_frame=622 start_position=622 i=622 -HistogramConfig::interpolate 150 0.378846 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=623 start_position=623 i=623 -HistogramConfig::interpolate 150 0.378891 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=624 start_position=624 i=624 -HistogramConfig::interpolate 150 0.378935 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=625 start_position=625 i=625 -HistogramConfig::interpolate 150 0.378980 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=626 start_position=626 i=626 -HistogramConfig::interpolate 150 0.379025 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=627 start_position=627 i=627 -HistogramConfig::interpolate 150 0.379069 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=628 start_position=628 i=628 -HistogramConfig::interpolate 150 0.379114 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=629 start_position=629 i=629 -HistogramConfig::interpolate 150 0.379159 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=630 start_position=630 i=630 -HistogramConfig::interpolate 150 0.379203 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=631 start_position=631 i=631 -HistogramConfig::interpolate 150 0.379248 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=632 start_position=632 i=632 -HistogramConfig::interpolate 150 0.379292 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=633 start_position=633 i=633 -HistogramConfig::interpolate 150 0.379337 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=634 start_position=634 i=634 -HistogramConfig::interpolate 150 0.379382 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=635 start_position=635 i=635 -HistogramConfig::interpolate 150 0.379426 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=636 start_position=636 i=636 -HistogramConfig::interpolate 150 0.379471 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=637 start_position=637 i=637 -HistogramConfig::interpolate 150 0.379516 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=638 start_position=638 i=638 -HistogramConfig::interpolate 150 0.379560 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=639 start_position=639 i=639 -HistogramConfig::interpolate 150 0.379605 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=640 start_position=640 i=640 -HistogramConfig::interpolate 150 0.379650 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=641 start_position=641 i=641 -HistogramConfig::interpolate 150 0.379694 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=642 start_position=642 i=642 -HistogramConfig::interpolate 150 0.379739 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=643 start_position=643 i=643 -HistogramConfig::interpolate 150 0.379783 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=644 start_position=644 i=644 -HistogramConfig::interpolate 150 0.379828 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=645 start_position=645 i=645 -HistogramConfig::interpolate 150 0.379873 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=646 start_position=646 i=646 -HistogramConfig::interpolate 150 0.379917 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=647 start_position=647 i=647 -HistogramConfig::interpolate 150 0.379962 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=648 start_position=648 i=648 -HistogramConfig::interpolate 150 0.380007 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=649 start_position=649 i=649 -HistogramConfig::interpolate 150 0.380051 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=650 start_position=650 i=650 -HistogramConfig::interpolate 150 0.380096 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=651 start_position=651 i=651 -HistogramConfig::interpolate 150 0.380140 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=652 start_position=652 i=652 -HistogramConfig::interpolate 150 0.380185 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=653 start_position=653 i=653 -HistogramConfig::interpolate 150 0.380230 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=654 start_position=654 i=654 -HistogramConfig::interpolate 150 0.380274 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=655 start_position=655 i=655 -HistogramConfig::interpolate 150 0.380319 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=656 start_position=656 i=656 -HistogramConfig::interpolate 150 0.380364 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=657 start_position=657 i=657 -HistogramConfig::interpolate 150 0.380408 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=658 start_position=658 i=658 -HistogramConfig::interpolate 150 0.380453 1.000000 0.846154 -TimeAvgMain::process_buffer 357 prev_frame=659 start_position=659 i=659 -Render::render_single: Session finished. -HistogramConfig::interpolate 150 0.220192 1.000000 0.800000 -TimeAvgMain::process_buffer 357 prev_frame=270 start_position=270 i=270 -HistogramConfig::interpolate 150 0.220642 1.000000 0.800131 -TimeAvgMain::process_buffer 357 prev_frame=271 start_position=271 i=271 -HistogramConfig::interpolate 150 0.221091 1.000000 0.800261 -TimeAvgMain::process_buffer 357 prev_frame=272 start_position=272 i=272 -HistogramConfig::interpolate 150 0.221541 1.000000 0.800392 -TimeAvgMain::process_buffer 357 prev_frame=273 start_position=273 i=273 -HistogramConfig::interpolate 150 0.221990 1.000000 0.800523 -TimeAvgMain::process_buffer 357 prev_frame=274 start_position=274 i=274 -HistogramConfig::interpolate 150 0.222440 1.000000 0.800654 -TimeAvgMain::process_buffer 357 prev_frame=275 start_position=275 i=275 -HistogramConfig::interpolate 150 0.222889 1.000000 0.800784 -TimeAvgMain::process_buffer 357 prev_frame=276 start_position=276 i=276 -HistogramConfig::interpolate 150 0.223338 1.000000 0.800915 -TimeAvgMain::process_buffer 357 prev_frame=277 start_position=277 i=277 -HistogramConfig::interpolate 150 0.223788 1.000000 0.801046 -TimeAvgMain::process_buffer 357 prev_frame=278 start_position=278 i=278 -HistogramConfig::interpolate 150 0.224237 1.000000 0.801177 -TimeAvgMain::process_buffer 357 prev_frame=279 start_position=279 i=279 -HistogramConfig::interpolate 150 0.224687 1.000000 0.801307 -TimeAvgMain::process_buffer 357 prev_frame=280 start_position=280 i=280 -HistogramConfig::interpolate 150 0.225136 1.000000 0.801438 -TimeAvgMain::process_buffer 357 prev_frame=281 start_position=281 i=281 -HistogramConfig::interpolate 150 0.225586 1.000000 0.801569 -TimeAvgMain::process_buffer 357 prev_frame=282 start_position=282 i=282 -HistogramConfig::interpolate 150 0.226035 1.000000 0.801700 -TimeAvgMain::process_buffer 357 prev_frame=283 start_position=283 i=283 -HistogramConfig::interpolate 150 0.226485 1.000000 0.801830 -TimeAvgMain::process_buffer 357 prev_frame=284 start_position=284 i=284 -HistogramConfig::interpolate 150 0.226934 1.000000 0.801961 -TimeAvgMain::process_buffer 357 prev_frame=285 start_position=285 i=285 -HistogramConfig::interpolate 150 0.227383 1.000000 0.802092 -TimeAvgMain::process_buffer 357 prev_frame=286 start_position=286 i=286 -HistogramConfig::interpolate 150 0.227833 1.000000 0.802223 -TimeAvgMain::process_buffer 357 prev_frame=287 start_position=287 i=287 -HistogramConfig::interpolate 150 0.228282 1.000000 0.802353 -TimeAvgMain::process_buffer 357 prev_frame=288 start_position=288 i=288 -HistogramConfig::interpolate 150 0.228732 1.000000 0.802484 -TimeAvgMain::process_buffer 357 prev_frame=289 start_position=289 i=289 -HistogramConfig::interpolate 150 0.229181 1.000000 0.802615 -TimeAvgMain::process_buffer 357 prev_frame=290 start_position=290 i=290 -HistogramConfig::interpolate 150 0.229631 1.000000 0.802746 -TimeAvgMain::process_buffer 357 prev_frame=291 start_position=291 i=291 -HistogramConfig::interpolate 150 0.230080 1.000000 0.802876 -TimeAvgMain::process_buffer 357 prev_frame=292 start_position=292 i=292 -HistogramConfig::interpolate 150 0.230530 1.000000 0.803007 -TimeAvgMain::process_buffer 357 prev_frame=293 start_position=293 i=293 -HistogramConfig::interpolate 150 0.230979 1.000000 0.803138 -TimeAvgMain::process_buffer 357 prev_frame=294 start_position=294 i=294 -HistogramConfig::interpolate 150 0.231428 1.000000 0.803269 -TimeAvgMain::process_buffer 357 prev_frame=295 start_position=295 i=295 -HistogramConfig::interpolate 150 0.231878 1.000000 0.803399 -TimeAvgMain::process_buffer 357 prev_frame=296 start_position=296 i=296 -HistogramConfig::interpolate 150 0.232327 1.000000 0.803530 -TimeAvgMain::process_buffer 357 prev_frame=297 start_position=297 i=297 -HistogramConfig::interpolate 150 0.232777 1.000000 0.803661 -TimeAvgMain::process_buffer 357 prev_frame=298 start_position=298 i=298 -HistogramConfig::interpolate 150 0.233226 1.000000 0.803792 -TimeAvgMain::process_buffer 357 prev_frame=299 start_position=299 i=299 -HistogramConfig::interpolate 150 0.233676 1.000000 0.803922 -TimeAvgMain::process_buffer 357 prev_frame=300 start_position=300 i=300 -HistogramConfig::interpolate 150 0.234125 1.000000 0.804053 -TimeAvgMain::process_buffer 357 prev_frame=301 start_position=301 i=301 -HistogramConfig::interpolate 150 0.234575 1.000000 0.804184 -TimeAvgMain::process_buffer 357 prev_frame=302 start_position=302 i=302 -HistogramConfig::interpolate 150 0.235024 1.000000 0.804315 -TimeAvgMain::process_buffer 357 prev_frame=303 start_position=303 i=303 -HistogramConfig::interpolate 150 0.235473 1.000000 0.804445 -TimeAvgMain::process_buffer 357 prev_frame=304 start_position=304 i=304 -HistogramConfig::interpolate 150 0.235923 1.000000 0.804576 -TimeAvgMain::process_buffer 357 prev_frame=305 start_position=305 i=305 -HistogramConfig::interpolate 150 0.236372 1.000000 0.804707 -TimeAvgMain::process_buffer 357 prev_frame=306 start_position=306 i=306 -HistogramConfig::interpolate 150 0.236822 1.000000 0.804838 -TimeAvgMain::process_buffer 357 prev_frame=307 start_position=307 i=307 -HistogramConfig::interpolate 150 0.237271 1.000000 0.804968 -TimeAvgMain::process_buffer 357 prev_frame=308 start_position=308 i=308 -HistogramConfig::interpolate 150 0.237721 1.000000 0.805099 -TimeAvgMain::process_buffer 357 prev_frame=309 start_position=309 i=309 -HistogramConfig::interpolate 150 0.238170 1.000000 0.805230 -TimeAvgMain::process_buffer 357 prev_frame=310 start_position=310 i=310 -HistogramConfig::interpolate 150 0.238620 1.000000 0.805361 -TimeAvgMain::process_buffer 357 prev_frame=311 start_position=311 i=311 -HistogramConfig::interpolate 150 0.239069 1.000000 0.805491 -TimeAvgMain::process_buffer 357 prev_frame=312 start_position=312 i=312 -HistogramConfig::interpolate 150 0.239518 1.000000 0.805622 -TimeAvgMain::process_buffer 357 prev_frame=313 start_position=313 i=313 -HistogramConfig::interpolate 150 0.239968 1.000000 0.805753 -TimeAvgMain::process_buffer 357 prev_frame=314 start_position=314 i=314 -HistogramConfig::interpolate 150 0.240417 1.000000 0.805884 -TimeAvgMain::process_buffer 357 prev_frame=315 start_position=315 i=315 -HistogramConfig::interpolate 150 0.240867 1.000000 0.806014 -TimeAvgMain::process_buffer 357 prev_frame=316 start_position=316 i=316 -HistogramConfig::interpolate 150 0.241316 1.000000 0.806145 -TimeAvgMain::process_buffer 357 prev_frame=317 start_position=317 i=317 -HistogramConfig::interpolate 150 0.241766 1.000000 0.806276 -TimeAvgMain::process_buffer 357 prev_frame=318 start_position=318 i=318 -HistogramConfig::interpolate 150 0.242215 1.000000 0.806407 -TimeAvgMain::process_buffer 357 prev_frame=319 start_position=319 i=319 -HistogramConfig::interpolate 150 0.242665 1.000000 0.806537 -TimeAvgMain::process_buffer 357 prev_frame=320 start_position=320 i=320 -HistogramConfig::interpolate 150 0.243114 1.000000 0.806668 -TimeAvgMain::process_buffer 357 prev_frame=321 start_position=321 i=321 -HistogramConfig::interpolate 150 0.243563 1.000000 0.806799 -TimeAvgMain::process_buffer 357 prev_frame=322 start_position=322 i=322 -HistogramConfig::interpolate 150 0.244013 1.000000 0.806930 -TimeAvgMain::process_buffer 357 prev_frame=323 start_position=323 i=323 -HistogramConfig::interpolate 150 0.244462 1.000000 0.807060 -TimeAvgMain::process_buffer 357 prev_frame=324 start_position=324 i=324 -HistogramConfig::interpolate 150 0.244912 1.000000 0.807191 -TimeAvgMain::process_buffer 357 prev_frame=325 start_position=325 i=325 -HistogramConfig::interpolate 150 0.245361 1.000000 0.807322 -TimeAvgMain::process_buffer 357 prev_frame=326 start_position=326 i=326 -HistogramConfig::interpolate 150 0.245811 1.000000 0.807453 -TimeAvgMain::process_buffer 357 prev_frame=327 start_position=327 i=327 -HistogramConfig::interpolate 150 0.246260 1.000000 0.807583 -TimeAvgMain::process_buffer 357 prev_frame=328 start_position=328 i=328 -HistogramConfig::interpolate 150 0.246710 1.000000 0.807714 -TimeAvgMain::process_buffer 357 prev_frame=329 start_position=329 i=329 -HistogramConfig::interpolate 150 0.247159 1.000000 0.807845 -TimeAvgMain::process_buffer 357 prev_frame=330 start_position=330 i=330 -HistogramConfig::interpolate 150 0.247608 1.000000 0.807976 -TimeAvgMain::process_buffer 357 prev_frame=331 start_position=331 i=331 -HistogramConfig::interpolate 150 0.248058 1.000000 0.808106 -TimeAvgMain::process_buffer 357 prev_frame=332 start_position=332 i=332 -HistogramConfig::interpolate 150 0.248507 1.000000 0.808237 -TimeAvgMain::process_buffer 357 prev_frame=333 start_position=333 i=333 -HistogramConfig::interpolate 150 0.248957 1.000000 0.808368 -TimeAvgMain::process_buffer 357 prev_frame=334 start_position=334 i=334 -HistogramConfig::interpolate 150 0.249406 1.000000 0.808499 -TimeAvgMain::process_buffer 357 prev_frame=335 start_position=335 i=335 -HistogramConfig::interpolate 150 0.249856 1.000000 0.808629 -TimeAvgMain::process_buffer 357 prev_frame=336 start_position=336 i=336 -HistogramConfig::interpolate 150 0.250305 1.000000 0.808760 -TimeAvgMain::process_buffer 357 prev_frame=337 start_position=337 i=337 -HistogramConfig::interpolate 150 0.250755 1.000000 0.808891 -TimeAvgMain::process_buffer 357 prev_frame=338 start_position=338 i=338 -HistogramConfig::interpolate 150 0.251204 1.000000 0.809022 -TimeAvgMain::process_buffer 357 prev_frame=339 start_position=339 i=339 -HistogramConfig::interpolate 150 0.251653 1.000000 0.809152 -TimeAvgMain::process_buffer 357 prev_frame=340 start_position=340 i=340 -HistogramConfig::interpolate 150 0.252103 1.000000 0.809283 -TimeAvgMain::process_buffer 357 prev_frame=341 start_position=341 i=341 -HistogramConfig::interpolate 150 0.252552 1.000000 0.809414 -TimeAvgMain::process_buffer 357 prev_frame=342 start_position=342 i=342 -HistogramConfig::interpolate 150 0.253002 1.000000 0.809545 -TimeAvgMain::process_buffer 357 prev_frame=343 start_position=343 i=343 -HistogramConfig::interpolate 150 0.253451 1.000000 0.809675 -TimeAvgMain::process_buffer 357 prev_frame=344 start_position=344 i=344 -HistogramConfig::interpolate 150 0.253901 1.000000 0.809806 -TimeAvgMain::process_buffer 357 prev_frame=345 start_position=345 i=345 -HistogramConfig::interpolate 150 0.254350 1.000000 0.809937 -TimeAvgMain::process_buffer 357 prev_frame=346 start_position=346 i=346 -HistogramConfig::interpolate 150 0.254800 1.000000 0.810068 -TimeAvgMain::process_buffer 357 prev_frame=347 start_position=347 i=347 -HistogramConfig::interpolate 150 0.255249 1.000000 0.810198 -TimeAvgMain::process_buffer 357 prev_frame=348 start_position=348 i=348 -HistogramConfig::interpolate 150 0.255698 1.000000 0.810329 -TimeAvgMain::process_buffer 357 prev_frame=349 start_position=349 i=349 -HistogramConfig::interpolate 150 0.256148 1.000000 0.810460 -TimeAvgMain::process_buffer 357 prev_frame=350 start_position=350 i=350 -HistogramConfig::interpolate 150 0.256597 1.000000 0.810591 -TimeAvgMain::process_buffer 357 prev_frame=351 start_position=351 i=351 -HistogramConfig::interpolate 150 0.257047 1.000000 0.810721 -TimeAvgMain::process_buffer 357 prev_frame=352 start_position=352 i=352 -HistogramConfig::interpolate 150 0.257496 1.000000 0.810852 -TimeAvgMain::process_buffer 357 prev_frame=353 start_position=353 i=353 -HistogramConfig::interpolate 150 0.257946 1.000000 0.810983 -TimeAvgMain::process_buffer 357 prev_frame=354 start_position=354 i=354 -HistogramConfig::interpolate 150 0.258395 1.000000 0.811114 -TimeAvgMain::process_buffer 357 prev_frame=355 start_position=355 i=355 -HistogramConfig::interpolate 150 0.258845 1.000000 0.811244 -TimeAvgMain::process_buffer 357 prev_frame=356 start_position=356 i=356 -HistogramConfig::interpolate 150 0.259294 1.000000 0.811375 -TimeAvgMain::process_buffer 357 prev_frame=357 start_position=357 i=357 -HistogramConfig::interpolate 150 0.259743 1.000000 0.811506 -TimeAvgMain::process_buffer 357 prev_frame=358 start_position=358 i=358 -HistogramConfig::interpolate 150 0.260193 1.000000 0.811637 -TimeAvgMain::process_buffer 357 prev_frame=359 start_position=359 i=359 -HistogramConfig::interpolate 150 0.260642 1.000000 0.811767 -TimeAvgMain::process_buffer 357 prev_frame=360 start_position=360 i=360 -HistogramConfig::interpolate 150 0.261092 1.000000 0.811898 -TimeAvgMain::process_buffer 357 prev_frame=361 start_position=361 i=361 -HistogramConfig::interpolate 150 0.261541 1.000000 0.812029 -TimeAvgMain::process_buffer 357 prev_frame=362 start_position=362 i=362 -HistogramConfig::interpolate 150 0.261991 1.000000 0.812160 -TimeAvgMain::process_buffer 357 prev_frame=363 start_position=363 i=363 -HistogramConfig::interpolate 150 0.262440 1.000000 0.812290 -TimeAvgMain::process_buffer 357 prev_frame=364 start_position=364 i=364 -HistogramConfig::interpolate 150 0.262890 1.000000 0.812421 -TimeAvgMain::process_buffer 357 prev_frame=365 start_position=365 i=365 -HistogramConfig::interpolate 150 0.263339 1.000000 0.812552 -TimeAvgMain::process_buffer 357 prev_frame=366 start_position=366 i=366 -HistogramConfig::interpolate 150 0.263788 1.000000 0.812683 -TimeAvgMain::process_buffer 357 prev_frame=367 start_position=367 i=367 -HistogramConfig::interpolate 150 0.264238 1.000000 0.812813 -TimeAvgMain::process_buffer 357 prev_frame=368 start_position=368 i=368 -HistogramConfig::interpolate 150 0.264687 1.000000 0.812944 -TimeAvgMain::process_buffer 357 prev_frame=369 start_position=369 i=369 -HistogramConfig::interpolate 150 0.265137 1.000000 0.813075 -TimeAvgMain::process_buffer 357 prev_frame=370 start_position=370 i=370 -HistogramConfig::interpolate 150 0.265586 1.000000 0.813206 -TimeAvgMain::process_buffer 357 prev_frame=371 start_position=371 i=371 -HistogramConfig::interpolate 150 0.266036 1.000000 0.813336 -TimeAvgMain::process_buffer 357 prev_frame=372 start_position=372 i=372 -HistogramConfig::interpolate 150 0.266485 1.000000 0.813467 -TimeAvgMain::process_buffer 357 prev_frame=373 start_position=373 i=373 -HistogramConfig::interpolate 150 0.266935 1.000000 0.813598 -TimeAvgMain::process_buffer 357 prev_frame=374 start_position=374 i=374 -HistogramConfig::interpolate 150 0.267384 1.000000 0.813729 -TimeAvgMain::process_buffer 357 prev_frame=375 start_position=375 i=375 -HistogramConfig::interpolate 150 0.267833 1.000000 0.813859 -TimeAvgMain::process_buffer 357 prev_frame=376 start_position=376 i=376 -HistogramConfig::interpolate 150 0.268283 1.000000 0.813990 -TimeAvgMain::process_buffer 357 prev_frame=377 start_position=377 i=377 -HistogramConfig::interpolate 150 0.268732 1.000000 0.814121 -TimeAvgMain::process_buffer 357 prev_frame=378 start_position=378 i=378 -HistogramConfig::interpolate 150 0.269182 1.000000 0.814251 -TimeAvgMain::process_buffer 357 prev_frame=379 start_position=379 i=379 -HistogramConfig::interpolate 150 0.269631 1.000000 0.814382 -TimeAvgMain::process_buffer 357 prev_frame=380 start_position=380 i=380 -HistogramConfig::interpolate 150 0.270081 1.000000 0.814513 -TimeAvgMain::process_buffer 357 prev_frame=381 start_position=381 i=381 -HistogramConfig::interpolate 150 0.270530 1.000000 0.814644 -TimeAvgMain::process_buffer 357 prev_frame=382 start_position=382 i=382 -HistogramConfig::interpolate 150 0.270980 1.000000 0.814775 -TimeAvgMain::process_buffer 357 prev_frame=383 start_position=383 i=383 -HistogramConfig::interpolate 150 0.271429 1.000000 0.814905 -TimeAvgMain::process_buffer 357 prev_frame=384 start_position=384 i=384 -HistogramConfig::interpolate 150 0.271878 1.000000 0.815036 -TimeAvgMain::process_buffer 357 prev_frame=385 start_position=385 i=385 -HistogramConfig::interpolate 150 0.272328 1.000000 0.815167 -TimeAvgMain::process_buffer 357 prev_frame=386 start_position=386 i=386 -HistogramConfig::interpolate 150 0.272777 1.000000 0.815297 -TimeAvgMain::process_buffer 357 prev_frame=387 start_position=387 i=387 -HistogramConfig::interpolate 150 0.273227 1.000000 0.815428 -TimeAvgMain::process_buffer 357 prev_frame=388 start_position=388 i=388 -HistogramConfig::interpolate 150 0.273676 1.000000 0.815559 -TimeAvgMain::process_buffer 357 prev_frame=389 start_position=389 i=389 -HistogramConfig::interpolate 150 0.274126 1.000000 0.815690 -TimeAvgMain::process_buffer 357 prev_frame=390 start_position=390 i=390 -HistogramConfig::interpolate 150 0.274575 1.000000 0.815820 -TimeAvgMain::process_buffer 357 prev_frame=391 start_position=391 i=391 -HistogramConfig::interpolate 150 0.275025 1.000000 0.815951 -TimeAvgMain::process_buffer 357 prev_frame=392 start_position=392 i=392 -HistogramConfig::interpolate 150 0.275474 1.000000 0.816082 -TimeAvgMain::process_buffer 357 prev_frame=393 start_position=393 i=393 -HistogramConfig::interpolate 150 0.275923 1.000000 0.816213 -TimeAvgMain::process_buffer 357 prev_frame=394 start_position=394 i=394 -HistogramConfig::interpolate 150 0.276373 1.000000 0.816343 -TimeAvgMain::process_buffer 357 prev_frame=395 start_position=395 i=395 -HistogramConfig::interpolate 150 0.276822 1.000000 0.816474 -TimeAvgMain::process_buffer 357 prev_frame=396 start_position=396 i=396 -HistogramConfig::interpolate 150 0.277272 1.000000 0.816605 -TimeAvgMain::process_buffer 357 prev_frame=397 start_position=397 i=397 -HistogramConfig::interpolate 150 0.277721 1.000000 0.816736 -TimeAvgMain::process_buffer 357 prev_frame=398 start_position=398 i=398 -HistogramConfig::interpolate 150 0.278171 1.000000 0.816866 -TimeAvgMain::process_buffer 357 prev_frame=399 start_position=399 i=399 -HistogramConfig::interpolate 150 0.278620 1.000000 0.816997 -TimeAvgMain::process_buffer 357 prev_frame=400 start_position=400 i=400 -HistogramConfig::interpolate 150 0.279070 1.000000 0.817128 -TimeAvgMain::process_buffer 357 prev_frame=401 start_position=401 i=401 -HistogramConfig::interpolate 150 0.279519 1.000000 0.817259 -TimeAvgMain::process_buffer 357 prev_frame=402 start_position=402 i=402 -HistogramConfig::interpolate 150 0.279968 1.000000 0.817389 -TimeAvgMain::process_buffer 357 prev_frame=403 start_position=403 i=403 -HistogramConfig::interpolate 150 0.280418 1.000000 0.817520 -TimeAvgMain::process_buffer 357 prev_frame=404 start_position=404 i=404 -HistogramConfig::interpolate 150 0.280867 1.000000 0.817651 -TimeAvgMain::process_buffer 357 prev_frame=405 start_position=405 i=405 -HistogramConfig::interpolate 150 0.281317 1.000000 0.817782 -TimeAvgMain::process_buffer 357 prev_frame=406 start_position=406 i=406 -HistogramConfig::interpolate 150 0.281766 1.000000 0.817912 -TimeAvgMain::process_buffer 357 prev_frame=407 start_position=407 i=407 -HistogramConfig::interpolate 150 0.282216 1.000000 0.818043 -TimeAvgMain::process_buffer 357 prev_frame=408 start_position=408 i=408 -HistogramConfig::interpolate 150 0.282665 1.000000 0.818174 -TimeAvgMain::process_buffer 357 prev_frame=409 start_position=409 i=409 -HistogramConfig::interpolate 150 0.283115 1.000000 0.818305 -TimeAvgMain::process_buffer 357 prev_frame=410 start_position=410 i=410 -HistogramConfig::interpolate 150 0.283564 1.000000 0.818435 -TimeAvgMain::process_buffer 357 prev_frame=411 start_position=411 i=411 -HistogramConfig::interpolate 150 0.284013 1.000000 0.818566 -TimeAvgMain::process_buffer 357 prev_frame=412 start_position=412 i=412 -HistogramConfig::interpolate 150 0.284463 1.000000 0.818697 -TimeAvgMain::process_buffer 357 prev_frame=413 start_position=413 i=413 -HistogramConfig::interpolate 150 0.284912 1.000000 0.818828 -TimeAvgMain::process_buffer 357 prev_frame=414 start_position=414 i=414 -HistogramConfig::interpolate 150 0.285362 1.000000 0.818958 -TimeAvgMain::process_buffer 357 prev_frame=415 start_position=415 i=415 -HistogramConfig::interpolate 150 0.285811 1.000000 0.819089 -TimeAvgMain::process_buffer 357 prev_frame=416 start_position=416 i=416 -HistogramConfig::interpolate 150 0.286261 1.000000 0.819220 -TimeAvgMain::process_buffer 357 prev_frame=417 start_position=417 i=417 -HistogramConfig::interpolate 150 0.286710 1.000000 0.819351 -TimeAvgMain::process_buffer 357 prev_frame=418 start_position=418 i=418 -HistogramConfig::interpolate 150 0.287160 1.000000 0.819481 -TimeAvgMain::process_buffer 357 prev_frame=419 start_position=419 i=419 -HistogramConfig::interpolate 150 0.287609 1.000000 0.819612 -TimeAvgMain::process_buffer 357 prev_frame=420 start_position=420 i=420 -HistogramConfig::interpolate 150 0.288058 1.000000 0.819743 -TimeAvgMain::process_buffer 357 prev_frame=421 start_position=421 i=421 -HistogramConfig::interpolate 150 0.288508 1.000000 0.819874 -TimeAvgMain::process_buffer 357 prev_frame=422 start_position=422 i=422 -HistogramConfig::interpolate 150 0.288957 1.000000 0.820004 -TimeAvgMain::process_buffer 357 prev_frame=423 start_position=423 i=423 -HistogramConfig::interpolate 150 0.289407 1.000000 0.820135 -TimeAvgMain::process_buffer 357 prev_frame=424 start_position=424 i=424 -HistogramConfig::interpolate 150 0.289856 1.000000 0.820266 -TimeAvgMain::process_buffer 357 prev_frame=425 start_position=425 i=425 -HistogramConfig::interpolate 150 0.290306 1.000000 0.820397 -TimeAvgMain::process_buffer 357 prev_frame=426 start_position=426 i=426 -HistogramConfig::interpolate 150 0.290755 1.000000 0.820527 -TimeAvgMain::process_buffer 357 prev_frame=427 start_position=427 i=427 -HistogramConfig::interpolate 150 0.291205 1.000000 0.820658 -TimeAvgMain::process_buffer 357 prev_frame=428 start_position=428 i=428 -HistogramConfig::interpolate 150 0.291654 1.000000 0.820789 -TimeAvgMain::process_buffer 357 prev_frame=429 start_position=429 i=429 -HistogramConfig::interpolate 150 0.292103 1.000000 0.820920 -TimeAvgMain::process_buffer 357 prev_frame=430 start_position=430 i=430 -HistogramConfig::interpolate 150 0.292553 1.000000 0.821050 -TimeAvgMain::process_buffer 357 prev_frame=431 start_position=431 i=431 -HistogramConfig::interpolate 150 0.293002 1.000000 0.821181 -TimeAvgMain::process_buffer 357 prev_frame=432 start_position=432 i=432 -HistogramConfig::interpolate 150 0.293452 1.000000 0.821312 -TimeAvgMain::process_buffer 357 prev_frame=433 start_position=433 i=433 diff --git a/cinelerra-5.1/plugins/histogram/histogram.C b/cinelerra-5.1/plugins/histogram/histogram.C index ef886305..a2cf0c98 100644 --- a/cinelerra-5.1/plugins/histogram/histogram.C +++ b/cinelerra-5.1/plugins/histogram/histogram.C @@ -56,27 +56,14 @@ class HistogramEngine; class HistogramWindow; - - - REGISTER_PLUGIN(HistogramMain) - - - - - - - - HistogramMain::HistogramMain(PluginServer *server) : PluginVClient(server) { - engine = 0; stripe_engine = 0; - for(int i = 0; i < HISTOGRAM_MODES; i++) - { + for( int i=0; iwindow)->lock_window("HistogramMain::render_gui 1"); tabulate_curve(HISTOGRAM_RED, 0); tabulate_curve(HISTOGRAM_GREEN, 0); tabulate_curve(HISTOGRAM_BLUE, 0); + tabulate_curve(preview_lookup, HISTOGRAM_RED, 0x10000, 0); + tabulate_curve(preview_lookup, HISTOGRAM_GREEN, 0x10000, 0); + tabulate_curve(preview_lookup, HISTOGRAM_BLUE, 0x10000, 0); ((HistogramWindow*)thread->window)->unlock_window(); } - calculate_histogram((VFrame*)data, !config.automatic); - - - if(config.automatic) - { - calculate_automatic((VFrame*)data); + calculate_histogram(input, !config.automatic); + if( config.automatic ) { + calculate_automatic(input); // Generate curves for value histogram // Lock out changes to curves ((HistogramWindow*)thread->window)->lock_window("HistogramMain::render_gui 1"); tabulate_curve(HISTOGRAM_RED, 0); tabulate_curve(HISTOGRAM_GREEN, 0); tabulate_curve(HISTOGRAM_BLUE, 0); + tabulate_curve(preview_lookup, HISTOGRAM_RED, 0x10000, 0); + tabulate_curve(preview_lookup, HISTOGRAM_GREEN, 0x10000, 0); + tabulate_curve(preview_lookup, HISTOGRAM_BLUE, 0x10000, 0); ((HistogramWindow*)thread->window)->unlock_window(); - - // Need a second pass to get the luminance values. - calculate_histogram((VFrame*)data, 1); + calculate_histogram(input, 1); } ((HistogramWindow*)thread->window)->lock_window("HistogramMain::render_gui 2"); @@ -167,24 +153,16 @@ void HistogramMain::render_gui(void *data) void HistogramMain::update_gui() { - if(thread) - { + if( thread ) { ((HistogramWindow*)thread->window)->lock_window("HistogramMain::update_gui"); int reconfigure = load_configuration(); - if(reconfigure) - { - ((HistogramWindow*)thread->window)->update(1, - 1, - 1, - 1); - } + if( reconfigure ) + ((HistogramWindow*)thread->window)->update(1, 1, 1, 1); ((HistogramWindow*)thread->window)->unlock_window(); } } - - void HistogramMain::save_data(KeyFrame *keyframe) { FileXML output; @@ -206,8 +184,7 @@ void HistogramMain::save_data(KeyFrame *keyframe) output.tag.set_property("PARADE", parade); output.tag.set_property("MODE", mode); - for(int i = 0; i < HISTOGRAM_MODES; i++) - { + for( int i=0; ixbuf); int result = 0; + while( !(result = input.read_tag()) ) { + if( input.tag.title_is("HISTOGRAM") ) { + config.automatic = input.tag.get_property("AUTOMATIC", config.automatic); + config.threshold = input.tag.get_property("THRESHOLD", config.threshold); + config.plot = input.tag.get_property("PLOT", config.plot); + config.split = input.tag.get_property("SPLIT", config.split); + config.frames = input.tag.get_property("FRAMES", config.frames); + config.log_slider = input.tag.get_property("LOG_SLIDER", config.log_slider); + + if( is_defaults() ) { + w = input.tag.get_property("W", w); + h = input.tag.get_property("H", h); + parade = input.tag.get_property("PARADE", parade); + mode = input.tag.get_property("MODE", mode); + } - - while(!result) - { - result = input.read_tag(); - - if(!result) - { - if(input.tag.title_is("HISTOGRAM")) - { - config.automatic = input.tag.get_property("AUTOMATIC", config.automatic); - config.threshold = input.tag.get_property("THRESHOLD", config.threshold); - config.plot = input.tag.get_property("PLOT", config.plot); - config.split = input.tag.get_property("SPLIT", config.split); - config.frames = input.tag.get_property("FRAMES", config.frames); - config.log_slider = input.tag.get_property("LOG_SLIDER", config.log_slider); - - if(is_defaults()) - { - w = input.tag.get_property("W", w); - h = input.tag.get_property("H", h); - parade = input.tag.get_property("PARADE", parade); - mode = input.tag.get_property("MODE", mode); - } - - char string[BCTEXTLEN]; - for(int i = 0; i < HISTOGRAM_MODES; i++) - { - sprintf(string, "LOW_OUTPUT_%d", i); - config.low_output[i] = input.tag.get_property(string, config.low_output[i]); - sprintf(string, "HIGH_OUTPUT_%d", i); - config.high_output[i] = input.tag.get_property(string, config.high_output[i]); - sprintf(string, "GAMMA_%d", i); - config.gamma[i] = input.tag.get_property(string, config.gamma[i]); - - if(i == HISTOGRAM_VALUE || !config.automatic) - { - sprintf(string, "LOW_INPUT_%d", i); - config.low_input[i] = input.tag.get_property(string, config.low_input[i]); - sprintf(string, "HIGH_INPUT_%d", i); - config.high_input[i] = input.tag.get_property(string, config.high_input[i]); - } -//printf("HistogramMain::read_data %d %f %d\n", config.input_min[i], config.input_mid[i], config.input_max[i]); + char string[BCTEXTLEN]; + for( int i=0; iget_w() * data->get_h() / 0x80000 + 2; int smps = get_project_smp(); if( cpus > smps ) cpus = smps; engine = new HistogramEngine(this, cpus, cpus); } - if(!accum[0]) - { - for(int i = 0; i < HISTOGRAM_MODES; i++) + if( !accum[0] ) { + for( int i=0; iprocess_packages(HistogramEngine::HISTOGRAM, data, do_value); - for(int i = 0; i < engine->get_total_clients(); i++) - { - HistogramUnit *unit = (HistogramUnit*)engine->get_client(i); + HistogramUnit *unit = (HistogramUnit*)engine->get_client(0); + for( int i=0; iaccum[i], sizeof(int)*HISTOGRAM_SLOTS); - if(i == 0) - { - for(int j = 0; j < HISTOGRAM_MODES; j++) - { - memcpy(accum[j], unit->accum[j], sizeof(int) * HISTOGRAM_SLOTS); - } - } - else - { - for(int j = 0; j < HISTOGRAM_MODES; j++) - { - int *out = accum[j]; - int *in = unit->accum[j]; - for(int k = 0; k < HISTOGRAM_SLOTS; k++) - out[k] += in[k]; - } + for( int i=1,n=engine->get_total_clients(); iget_client(i); + for( int j=0; jaccum[j], *out = accum[j]; + for( int k=HISTOGRAM_SLOTS; --k>=0; ) *out++ += *in++; } } // Remove top and bottom from calculations. Doesn't work in high // precision colormodels. - for(int i = 0; i < HISTOGRAM_MODES; i++) - { + for( int i=0; iaccum[i]; int pixels = data->get_w() * data->get_h(); float white_fraction = 1.0 - (1.0 - config.threshold) / 2; int threshold = (int)(white_fraction * pixels); - int total = 0; - float max_level = 1.0; - float min_level = 0.0; + float min_level = 0.0, max_level = 1.0; // Get histogram slot above threshold of pixels - for(int j = 0; j < HISTOGRAM_SLOTS; j++) - { + for( int j=0, total=0; j= threshold) - { + if( total >= threshold ) { max_level = (float)j / HISTOGRAM_SLOTS * FLOAT_RANGE + HIST_MIN_INPUT; break; } } // Get slot below 99% of pixels - total = 0; - for(int j = HISTOGRAM_SLOTS - 1; j >= 0; j--) - { + for( int j=HISTOGRAM_SLOTS, total=0; --j> 0; ) { total += accum[j]; - if(total >= threshold) - { + if( total >= threshold ) { min_level = (float)j / HISTOGRAM_SLOTS * FLOAT_RANGE + HIST_MIN_INPUT; break; } } - config.low_input[i] = min_level; config.high_input[i] = max_level; } } - - - int HistogramMain::calculate_use_opengl() { // glHistogram doesn't work. @@ -536,98 +455,42 @@ int HistogramMain::process_buffer(VFrame *frame, // table to avoid green borders - if(need_reconfigure || - !lookup[0] || - config.automatic) - { + if( need_reconfigure || !lookup[0] || config.automatic ) { // Calculate new curves - if(config.automatic) - { + if( config.automatic ) calculate_automatic(input); - } - - // Generate transfer tables with value function for integer colormodels. - for(int i = 0; i < 3; i++) + for( int i=0; i<3; ++i ) tabulate_curve(i, 1); } -// printf("HistogramMain::process_buffer %d %f %f %f %f %f %f %f %f %f\n", -// __LINE__, -// config.low_input[HISTOGRAM_RED], -// config.gamma[HISTOGRAM_RED], -// config.high_input[HISTOGRAM_RED], -// config.low_input[HISTOGRAM_GREEN], -// config.gamma[HISTOGRAM_GREEN], -// config.high_input[HISTOGRAM_GREEN], -// config.low_input[HISTOGRAM_BLUE], -// config.gamma[HISTOGRAM_BLUE], -// config.high_input[HISTOGRAM_BLUE]); - // Apply histogram in hardware - if(use_opengl) return run_opengl(); + if( use_opengl ) + return run_opengl(); // Apply histogram engine->process_packages(HistogramEngine::APPLY, input, 0); return 0; } -void HistogramMain::tabulate_curve(int subscript, int use_value) +void HistogramMain::tabulate_curve(int **table, int idx, int len, int use_value) { - int i; - if(!lookup[subscript]) - lookup[subscript] = new int[HISTOGRAM_SLOTS]; - if(!preview_lookup[subscript]) - preview_lookup[subscript] = new int[HISTOGRAM_SLOTS]; - -//printf("HistogramMain::tabulate_curve %d input=%p\n", __LINE__, input); - - -// Generate lookup tables for integer colormodels - if(input) - { - switch(input->get_color_model()) - { - case BC_RGB888: - case BC_RGBA8888: - for(i = 0; i < 0x100; i++) - { - lookup[subscript][i] = - (int)(calculate_level((float)i / 0xff, subscript, use_value) * - 0xff); - CLAMP(lookup[subscript][i], 0, 0xff); - } - break; -// All other integer colormodels are converted to 16 bit RGB - default: - for(i = 0; i < 0x10000; i++) - { - lookup[subscript][i] = - (int)(calculate_level((float)i / 0xffff, subscript, use_value) * - 0xffff); - CLAMP(lookup[subscript][i], 0, 0xffff); - } -// for(i = 0; i < 0x100; i++) -// { -// if(subscript == HISTOGRAM_BLUE) printf("%d ", lookup[subscript][i * 0x100]); -// } -// if(subscript == HISTOGRAM_BLUE) printf("\n"); - - break; - } + if( !table[idx] ) // must use max demand here + table[idx] = new int[0x10000]; + int *curve = table[idx], len1 = len-1; + for( int i=0; iget_color_model(); + int lookup_len = color_model == BC_RGB888 || + color_model == BC_RGBA8888 ? 0x100 : 0x10000; + tabulate_curve(lookup, idx, lookup_len, use_value); } int HistogramMain::handle_opengl() @@ -1026,55 +889,37 @@ HistogramUnit::~HistogramUnit() void HistogramUnit::process_package(LoadPackage *package) { HistogramPackage *pkg = (HistogramPackage*)package; - - if(server->operation == HistogramEngine::HISTOGRAM) - { + switch( server->operation ) { + case HistogramEngine::HISTOGRAM: { int do_value = server->do_value; + const int hmin = HISTOGRAM_MIN * 0xffff / 100; + const int slots1 = HISTOGRAM_SLOTS-1; - -#define HISTOGRAM_HEAD(type) \ -{ \ - for(int i = pkg->start; i < pkg->end; i++) \ - { \ - type *row = (type*)data->get_rows()[i]; \ - for(int j = 0; j < w; j++) \ - { +#define HISTOGRAM_HEAD(type) { \ + type **rows = (type**)data->get_rows(); \ + for( int iy=pkg->start; iyend; ++iy ) { \ + type *row = rows[iy]; \ + for( int ix=0; ix> 8; */ \ - v = MAX(r_out, g_out); \ - v = MAX(v, b_out); \ - v += -HISTOGRAM_MIN * 0xffff / 100; \ - CLAMP(v, 0, HISTOGRAM_SLOTS - 1); \ - accum_v[v]++; \ +/* Value takes the maximum of the output RGB values */ \ + v = MAX(r_out, g_out); v = MAX(v, b_out); \ + ++accum_v[bclip(v -= hmin, 0, slots1)]; \ } \ \ - r += -HISTOGRAM_MIN * 0xffff / 100; \ - g += -HISTOGRAM_MIN * 0xffff / 100; \ - b += -HISTOGRAM_MIN * 0xffff / 100; \ - CLAMP(r, 0, HISTOGRAM_SLOTS - 1); \ - CLAMP(g, 0, HISTOGRAM_SLOTS - 1); \ - CLAMP(b, 0, HISTOGRAM_SLOTS - 1); \ - accum_r[r]++; \ - accum_g[g]++; \ - accum_b[b]++; \ + ++accum_r[bclip(r -= hmin, 0, slots1)]; \ + ++accum_g[bclip(g -= hmin, 0, slots1)]; \ + ++accum_b[bclip(b -= hmin, 0, slots1)]; \ row += components; \ } \ } \ } - - - VFrame *data = server->data; int w = data->get_w(); //int h = data->get_h(); @@ -1084,103 +929,96 @@ void HistogramUnit::process_package(LoadPackage *package) int *accum_v = accum[HISTOGRAM_VALUE]; int32_t r, g, b, y, u, v; int r_out, g_out, b_out; - int *lookup_r = plugin->preview_lookup[HISTOGRAM_RED]; - int *lookup_g = plugin->preview_lookup[HISTOGRAM_GREEN]; - int *lookup_b = plugin->preview_lookup[HISTOGRAM_BLUE]; - - switch(data->get_color_model()) - { - case BC_RGB888: - HISTOGRAM_HEAD(unsigned char) - r = (row[0] << 8) | row[0]; - g = (row[1] << 8) | row[1]; - b = (row[2] << 8) | row[2]; - HISTOGRAM_TAIL(3) - break; - case BC_RGB_FLOAT: - HISTOGRAM_HEAD(float) - r = (int)(row[0] * 0xffff); - g = (int)(row[1] * 0xffff); - b = (int)(row[2] * 0xffff); - HISTOGRAM_TAIL(3) - break; - case BC_YUV888: - HISTOGRAM_HEAD(unsigned char) - y = (row[0] << 8) | row[0]; - u = (row[1] << 8) | row[1]; - v = (row[2] << 8) | row[2]; - YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); - HISTOGRAM_TAIL(3) - break; - case BC_RGBA8888: - HISTOGRAM_HEAD(unsigned char) - r = (row[0] << 8) | row[0]; - g = (row[1] << 8) | row[1]; - b = (row[2] << 8) | row[2]; - HISTOGRAM_TAIL(4) - break; - case BC_RGBA_FLOAT: - HISTOGRAM_HEAD(float) - r = (int)(row[0] * 0xffff); - g = (int)(row[1] * 0xffff); - b = (int)(row[2] * 0xffff); - HISTOGRAM_TAIL(4) - break; - case BC_YUVA8888: - HISTOGRAM_HEAD(unsigned char) - y = (row[0] << 8) | row[0]; - u = (row[1] << 8) | row[1]; - v = (row[2] << 8) | row[2]; - YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); - HISTOGRAM_TAIL(4) - break; - case BC_RGB161616: - HISTOGRAM_HEAD(uint16_t) - r = row[0]; - g = row[1]; - b = row[2]; - HISTOGRAM_TAIL(3) - break; - case BC_YUV161616: - HISTOGRAM_HEAD(uint16_t) - y = row[0]; - u = row[1]; - v = row[2]; - YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); - HISTOGRAM_TAIL(3) - break; - case BC_RGBA16161616: - HISTOGRAM_HEAD(uint16_t) - r = row[0]; - g = row[1]; - b = row[2]; - HISTOGRAM_TAIL(3) - break; - case BC_YUVA16161616: - HISTOGRAM_HEAD(uint16_t) - y = row[0]; - u = row[1]; - v = row[2]; - YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); - HISTOGRAM_TAIL(4) - break; + int *preview_r = plugin->preview_lookup[HISTOGRAM_RED]; + int *preview_g = plugin->preview_lookup[HISTOGRAM_GREEN]; + int *preview_b = plugin->preview_lookup[HISTOGRAM_BLUE]; + + switch( data->get_color_model() ) { + case BC_RGB888: + HISTOGRAM_HEAD(unsigned char) + r = (row[0] << 8) | row[0]; + g = (row[1] << 8) | row[1]; + b = (row[2] << 8) | row[2]; + HISTOGRAM_TAIL(3) + break; + case BC_RGB_FLOAT: + HISTOGRAM_HEAD(float) + r = (int)(row[0] * 0xffff); + g = (int)(row[1] * 0xffff); + b = (int)(row[2] * 0xffff); + HISTOGRAM_TAIL(3) + break; + case BC_YUV888: + HISTOGRAM_HEAD(unsigned char) + y = (row[0] << 8) | row[0]; + u = (row[1] << 8) | row[1]; + v = (row[2] << 8) | row[2]; + YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); + HISTOGRAM_TAIL(3) + break; + case BC_RGBA8888: + HISTOGRAM_HEAD(unsigned char) + r = (row[0] << 8) | row[0]; + g = (row[1] << 8) | row[1]; + b = (row[2] << 8) | row[2]; + HISTOGRAM_TAIL(4) + break; + case BC_RGBA_FLOAT: + HISTOGRAM_HEAD(float) + r = (int)(row[0] * 0xffff); + g = (int)(row[1] * 0xffff); + b = (int)(row[2] * 0xffff); + HISTOGRAM_TAIL(4) + break; + case BC_YUVA8888: + HISTOGRAM_HEAD(unsigned char) + y = (row[0] << 8) | row[0]; + u = (row[1] << 8) | row[1]; + v = (row[2] << 8) | row[2]; + YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); + HISTOGRAM_TAIL(4) + break; + case BC_RGB161616: + HISTOGRAM_HEAD(uint16_t) + r = row[0]; + g = row[1]; + b = row[2]; + HISTOGRAM_TAIL(3) + break; + case BC_YUV161616: + HISTOGRAM_HEAD(uint16_t) + y = row[0]; + u = row[1]; + v = row[2]; + YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); + HISTOGRAM_TAIL(3) + break; + case BC_RGBA16161616: + HISTOGRAM_HEAD(uint16_t) + r = row[0]; + g = row[1]; + b = row[2]; + HISTOGRAM_TAIL(3) + break; + case BC_YUVA16161616: + HISTOGRAM_HEAD(uint16_t) + y = row[0]; + u = row[1]; + v = row[2]; + YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); + HISTOGRAM_TAIL(4) + break; } - } - else - if(server->operation == HistogramEngine::APPLY) - { - - - -#define PROCESS(type, components) \ -{ \ - for(int i = pkg->start; i < pkg->end; i++) \ - { \ - type *row = (type*)input->get_rows()[i]; \ - for(int j = 0; j < w; j++) \ - { \ - if ( plugin->config.split && ((j + i * w / h) < w) ) \ - continue; \ + break; } + case HistogramEngine::APPLY: { + +#define PROCESS(type, components) { \ + type **rows = (type**)input->get_rows(); \ + for( int iy=pkg->start; iyend; ++iy ) { \ + type *row = rows[iy]; \ + for( int ix=0; ixconfig.split && ((ix + (iy*w)/h) < w) ) \ + continue; \ row[0] = lookup_r[row[0]]; \ row[1] = lookup_g[row[1]]; \ row[2] = lookup_b[row[2]]; \ @@ -1189,47 +1027,36 @@ void HistogramUnit::process_package(LoadPackage *package) } \ } -#define PROCESS_YUV(type, components, max) \ -{ \ - for(int i = pkg->start; i < pkg->end; i++) \ - { \ - type *row = (type*)input->get_rows()[i]; \ - for(int j = 0; j < w; j++) \ - { \ - if ( plugin->config.split && ((j + i * w / h) < w) ) \ - continue; \ -/* Convert to 16 bit RGB */ \ - if(max == 0xff) \ - { \ +#define PROCESS_YUV(type, components, max) { \ + type **rows = (type**)input->get_rows(); \ + for( int iy=pkg->start; iyend; ++iy ) { \ + type *row = rows[iy]; \ + for( int ix=0; ixconfig.split && ((ix + (iy*w)/h) < w) ) \ + continue; \ + if( max == 0xff ) { /* Convert to 16 bit RGB */ \ y = (row[0] << 8) | row[0]; \ u = (row[1] << 8) | row[1]; \ v = (row[2] << 8) | row[2]; \ } \ - else \ - { \ + else { \ y = row[0]; \ u = row[1]; \ v = row[2]; \ } \ - \ YUV::yuv.yuv_to_rgb_16(r, g, b, y, u, v); \ - \ /* Look up in RGB domain */ \ r = lookup_r[r]; \ g = lookup_g[g]; \ b = lookup_b[b]; \ - \ /* Convert to 16 bit YUV */ \ YUV::yuv.rgb_to_yuv_16(r, g, b, y, u, v); \ - \ - if(max == 0xff) \ - { \ + if( max == 0xff ) { \ row[0] = y >> 8; \ row[1] = u >> 8; \ row[2] = v >> 8; \ } \ - else \ - { \ + else { \ row[0] = y; \ row[1] = u; \ row[2] = v; \ @@ -1239,33 +1066,24 @@ void HistogramUnit::process_package(LoadPackage *package) } \ } -#define PROCESS_FLOAT(components) \ -{ \ - for(int i = pkg->start; i < pkg->end; i++) \ - { \ - float *row = (float*)input->get_rows()[i]; \ - for(int j = 0; j < w; j++) \ - { \ - if ( plugin->config.split && ((j + i * w / h) < w) ) \ - continue; \ - float r = row[0]; \ - float g = row[1]; \ - float b = row[2]; \ - \ - r = plugin->calculate_level(r, HISTOGRAM_RED, 1); \ - g = plugin->calculate_level(g, HISTOGRAM_GREEN, 1); \ - b = plugin->calculate_level(b, HISTOGRAM_BLUE, 1); \ - \ - row[0] = r; \ - row[1] = g; \ - row[2] = b; \ - \ +#define PROCESS_FLOAT(components) { \ + float **rows = (float**)input->get_rows(); \ + for( int iy=pkg->start; iyend; ++iy ) { \ + float *row = rows[iy]; \ + for( int ix=0; ixconfig.split && ((ix + (iy*w)/h) < w) ) \ + continue; \ + float fr = row[0]; \ + float fg = row[1]; \ + float fb = row[2]; \ + row[0] = plugin->calculate_level(fr, HISTOGRAM_RED, 1); \ + row[1] = plugin->calculate_level(fg, HISTOGRAM_GREEN, 1); \ + row[2] = plugin->calculate_level(fb, HISTOGRAM_BLUE, 1); \ row += components; \ } \ } \ } - VFrame *input = plugin->input; //VFrame *output = plugin->output; int w = input->get_w(); @@ -1274,50 +1092,45 @@ void HistogramUnit::process_package(LoadPackage *package) int *lookup_g = plugin->lookup[1]; int *lookup_b = plugin->lookup[2]; int r, g, b, y, u, v; - switch(input->get_color_model()) - { - case BC_RGB888: - PROCESS(unsigned char, 3) - break; - case BC_RGB_FLOAT: - PROCESS_FLOAT(3); - break; - case BC_RGBA8888: - PROCESS(unsigned char, 4) - break; - case BC_RGBA_FLOAT: - PROCESS_FLOAT(4); - break; - case BC_RGB161616: - PROCESS(uint16_t, 3) - break; - case BC_RGBA16161616: - PROCESS(uint16_t, 4) - break; - case BC_YUV888: - PROCESS_YUV(unsigned char, 3, 0xff) - break; - case BC_YUVA8888: - PROCESS_YUV(unsigned char, 4, 0xff) - break; - case BC_YUV161616: - PROCESS_YUV(uint16_t, 3, 0xffff) - break; - case BC_YUVA16161616: - PROCESS_YUV(uint16_t, 4, 0xffff) - break; + switch( input->get_color_model() ) { + case BC_RGB888: + PROCESS(unsigned char, 3) + break; + case BC_RGB_FLOAT: + PROCESS_FLOAT(3); + break; + case BC_RGBA8888: + PROCESS(unsigned char, 4) + break; + case BC_RGBA_FLOAT: + PROCESS_FLOAT(4); + break; + case BC_RGB161616: + PROCESS(uint16_t, 3) + break; + case BC_RGBA16161616: + PROCESS(uint16_t, 4) + break; + case BC_YUV888: + PROCESS_YUV(unsigned char, 3, 0xff) + break; + case BC_YUVA8888: + PROCESS_YUV(unsigned char, 4, 0xff) + break; + case BC_YUV161616: + PROCESS_YUV(uint16_t, 3, 0xffff) + break; + case BC_YUVA16161616: + PROCESS_YUV(uint16_t, 4, 0xffff) + break; } + break; } } } - - - - HistogramEngine::HistogramEngine(HistogramMain *plugin, - int total_clients, - int total_packages) + int total_clients, int total_packages) : LoadServer(total_clients, total_packages) { this->plugin = plugin; @@ -1325,35 +1138,29 @@ HistogramEngine::HistogramEngine(HistogramMain *plugin, void HistogramEngine::init_packages() { - switch(operation) - { - case HISTOGRAM: - total_size = data->get_h(); - break; - case APPLY: - total_size = data->get_h(); - break; + switch(operation) { + case HISTOGRAM: + total_size = data->get_h(); + break; + case APPLY: + total_size = data->get_h(); + break; } - - //int package_size = (int)((float)total_size / get_total_packages() + 1); - //int start = 0; - - for(int i = 0; i < get_total_packages(); i++) - { + int start = 0; + for( int i=0,n=get_total_packages(); istart = total_size * i / get_total_packages(); - package->end = total_size * (i + 1) / get_total_packages(); + package->start = start; + package->end = total_size * (i+1)/n; + start = package->end; } // Initialize clients here in case some don't get run. - for(int i = 0; i < get_total_clients(); i++) - { + for( int i=0,n=get_total_clients(); iaccum[i], sizeof(int) * HISTOGRAM_SLOTS); + for( int j=0; jaccum[j], sizeof(int) * HISTOGRAM_SLOTS); } - } LoadClient* HistogramEngine::new_client() diff --git a/cinelerra-5.1/plugins/histogram/histogram.h b/cinelerra-5.1/plugins/histogram/histogram.h index 9aa4747a..00512438 100644 --- a/cinelerra-5.1/plugins/histogram/histogram.h +++ b/cinelerra-5.1/plugins/histogram/histogram.h @@ -60,9 +60,8 @@ public: // Value is only calculated for preview. void calculate_histogram(VFrame *data, int do_value); // Calculate the linear, smoothed, lookup curves - void tabulate_curve(int subscript, int use_value); - - + void tabulate_curve(int **table, int idx, int len, int use_value); + void tabulate_curve(int idx, int use_value); VFrame *input, *output; diff --git a/cinelerra-5.1/plugins/histogram/histogramwindow.C b/cinelerra-5.1/plugins/histogram/histogramwindow.C index 8acb53fc..3261fbc9 100644 --- a/cinelerra-5.1/plugins/histogram/histogramwindow.C +++ b/cinelerra-5.1/plugins/histogram/histogramwindow.C @@ -60,63 +60,34 @@ void HistogramWindow::create_objects() int margin = plugin->get_theme()->widget_border; int x = margin, y = margin, x1 = margin; - add_subwindow(mode_v = new HistogramMode(plugin, - x, - y, - HISTOGRAM_VALUE, - _("Value"))); + add_subwindow(mode_v = new HistogramMode(plugin, x, y, + HISTOGRAM_VALUE, _("Value"))); x += mode_v->get_w() + margin; - add_subwindow(mode_r = new HistogramMode(plugin, - x, - y, - HISTOGRAM_RED, - _("Red"))); + add_subwindow(mode_r = new HistogramMode(plugin, x, y, + HISTOGRAM_RED, _("Red"))); x += mode_r->get_w() + margin; - add_subwindow(mode_g = new HistogramMode(plugin, - x, - y, - HISTOGRAM_GREEN, - _("Green"))); + add_subwindow(mode_g = new HistogramMode(plugin, x, y, + HISTOGRAM_GREEN, _("Green"))); x += mode_g->get_w() + margin; - add_subwindow(mode_b = new HistogramMode(plugin, - x, - y, - HISTOGRAM_BLUE, - _("Blue"))); - - + add_subwindow(mode_b = new HistogramMode(plugin, x, y, + HISTOGRAM_BLUE, _("Blue"))); x = get_w() - margin - plugin->get_theme()->get_image_set("histogram_rgb_toggle")[0]->get_w(); - add_subwindow(parade_on = new HistogramParade(plugin, - this, - x, - y, - 1)); + add_subwindow(parade_on = new HistogramParade(plugin, this, + x, y, 1)); x -= parade_on->get_w() + margin; - add_subwindow(parade_off = new HistogramParade(plugin, - this, - x, - y, - 0)); - + add_subwindow(parade_off = new HistogramParade(plugin, this, x, y, 0)); x = x1; y += parade_on->get_h() + margin; - add_subwindow(canvas_title1 = new BC_Title(margin, - y, - "-10%")); - add_subwindow(canvas_title2 = new BC_Title(get_w() - get_text_width(MEDIUMFONT, "110%") - margin, - y, - "110%")); + add_subwindow(canvas_title1 = new BC_Title(margin, y, "-10%")); + x = get_w() - get_text_width(MEDIUMFONT, "110%") - margin; + add_subwindow(canvas_title2 = new BC_Title(x, y, "110%")); y += canvas_title2->get_h() + margin; x = x1; canvas_h = get_h() - y - yS(210); - - add_subwindow(low_input_carrot = new HistogramCarrot(plugin, - this, - x, - y + canvas_h)); + add_subwindow(low_input_carrot = new HistogramCarrot(plugin, this, x, y + canvas_h)); x = low_input_carrot->get_w() / 2 + x; canvas_w = get_w() - x - x; @@ -126,48 +97,27 @@ void HistogramWindow::create_objects() title3_x = x + (int)(canvas_w * (1.0 - HIST_MIN_INPUT) / FLOAT_RANGE); title4_x = x + (int)(canvas_w); - - - - - add_subwindow(canvas = new HistogramCanvas(plugin, - this, - x, - y, - canvas_w, - canvas_h)); + add_subwindow(canvas = new HistogramCanvas(plugin, this, + x, y, canvas_w, canvas_h)); // Canvas border - draw_3d_border(x - 2, - y - 2, - canvas_w + 4, - canvas_h + 4, - get_bg_color(), - BLACK, - MDGREY, - get_bg_color()); + draw_3d_border(x - 2, y - 2, canvas_w + 4, canvas_h + 4, + get_bg_color(), BLACK, MDGREY, get_bg_color()); // Calculate output curve with no value function - plugin->tabulate_curve(plugin->mode, 0); + plugin->tabulate_curve(plugin->preview_lookup, plugin->mode, 0x10000, 0); y += canvas->get_h(); x = margin; - add_subwindow(gamma_carrot = new HistogramCarrot(plugin, - this, - canvas->get_x() + - canvas->get_w() / 2 - - low_input_carrot->get_w() / 2 , - y)); - - add_subwindow(high_input_carrot = new HistogramCarrot(plugin, - this, - canvas->get_x() + - canvas->get_w() - - low_input_carrot->get_w() / 2, - y)); - y += low_input_carrot->get_h() + margin; + add_subwindow(gamma_carrot = new HistogramCarrot(plugin, this, + canvas->get_x() + canvas->get_w() / 2 - + low_input_carrot->get_w() / 2 , y)); + add_subwindow(high_input_carrot = new HistogramCarrot(plugin, this, + canvas->get_x() + canvas->get_w() - + low_input_carrot->get_w() / 2, y)); + y += low_input_carrot->get_h() + margin; // add_subwindow(title = new BC_Title(x, y, _("Input:"))); // x += title->get_w() + margin; @@ -271,20 +221,13 @@ int HistogramWindow::resize_event(int w, int h) // Canvas follows window size canvas_w = canvas_w + xdiff; canvas_h = canvas_h + ydiff; - canvas->reposition_window(canvas->get_x(), - canvas->get_y(), - canvas_w, - canvas_h); + canvas->reposition_window(canvas->get_x(), canvas->get_y(), + canvas_w, canvas_h); // Canvas border - draw_3d_border(canvas->get_x() - 2, - canvas->get_y() - 2, - canvas_w + 4, - canvas_h + 4, - get_bg_color(), - BLACK, - MDGREY, - get_bg_color()); + draw_3d_border(canvas->get_x() - 2, canvas->get_y() - 2, + canvas_w + 4, canvas_h + 4, + get_bg_color(), BLACK, MDGREY, get_bg_color()); low_input_carrot->reposition_window(low_input_carrot->get_x(), low_input_carrot->get_y() + ydiff); @@ -307,14 +250,9 @@ int HistogramWindow::resize_event(int w, int h) output->update(); // Output border - draw_3d_border(output->get_x() - 2, - output->get_y() - 2, - output->get_w() + 4, - output->get_h() + 4, - get_bg_color(), - BLACK, - MDGREY, - get_bg_color()); + draw_3d_border(output->get_x() - 2, output->get_y() - 2, + output->get_w() + 4, output->get_h() + 4, + get_bg_color(), BLACK, MDGREY, get_bg_color()); low_output_carrot->reposition_window(low_output_carrot->get_x(), low_output_carrot->get_y() + ydiff); @@ -458,9 +396,11 @@ void HistogramWindow::draw_canvas_mode(int mode, int color, int y, int h) // Draw histogram int max = 0, *accum = plugin->accum[mode]; if( accum ) { - for( int i=0; i 0 && i1 > i0 ? (double)m : 0; + m = v > 0 ? v*lin_scale + log(v)*log_scale : 0; canvas->set_color(BLACK); canvas->draw_line(x, y, x, y+h - m); diff --git a/cinelerra-5.1/plugins/theme_suv/data/expandpatch_checked.png b/cinelerra-5.1/plugins/theme_suv/data/expandpatch_checked.png index b83cb92d7116cda0a6057b7ad35d95b2802ffbe1..effbc91bfaaaf29838850af1f6fea6195e3bd2c9 100644 GIT binary patch delta 302 zcmV+}0nz@+0?z`FDu4d~{{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2jU4H4kQ)4C3>>}007)cL_t(I%cYaC4udcZL~YcM<7*h&AwwA$=)gDMN$!xCk|>m< z^R!gS3X}F?~Ygg@0Pq)eiLcRy35(mcT;? zsj66uLfr~YivpUr-T~BFr~AF1Z{@QPLUV~}n#9D(CoON=)&#ph?!{=ow0s2(AsmO9 z4dir&XVB+7ryW?f9J>P6pv$rxmXa&VmXtq-LPijVE!K;jh-)vsFDl^gGXTrEa~H-@874x3_+AEdT%j07*qoM6N<$f}LuH AP5=M^ delta 296 zcmV+@0oVS|0?7i9Dt|}-NB~HePQ5Jv000SaNLh0L01FcU01FcV0GgZ_00007bV*G` z2h|1*1tkywf(R)90013yMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HRA^-&M@dak?_?!z z00023NklS>t4NGXN*vzZy( z9p(-l|qr^!G diff --git a/cinelerra-5.1/plugins/theme_suv/data/expandpatch_checkedhi.png b/cinelerra-5.1/plugins/theme_suv/data/expandpatch_checkedhi.png index ed3d3d74327ad26fd543bcd2bdf806718f49b8fe..f122f7479bded5946610ca7cbb5cd459e9fd1d0c 100644 GIT binary patch delta 607 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 literal 2690 zcmeAS@N?(olHy`uVBq!ia0y~yU}^wjPYyPqh?Q1bJOcxlr>Bc!NX4zUcMkd{)Ye+T5kf>rE%lxK?^s_<%yy`;}83DK;$J zTfyY;hmpg9;Ul{O1LG0-1_l;^dIlx|q6Ck~162Z*b2t#C9APj}IncI`>_FR4%m54G zbqA($BF%94(`nDZ$kAcXz@nh=k3pcJ;Rmw=1JfgZLV_UW;BX<*YE1Vy;`1%K@(=FI zD(97-XLzpqkD(%@%!YyC*dt*B2B0zqpmQ03fdh0q12D)LfF5CB_@8xa+gbajI(L@} z7QMySUJ1UDd*GY5wzAcl{j%W$ubjK@81rhF{ym8Jb(Q6foCAXuTf<#u4u|6m8>$%? zUq~>N@hdRMG9P%y$g&`r;f8GkLkSPVZgzo&KE{Oa3``dc8SrXi>;P#}U?>D>Vo?BT zYG62G$gq2RHOQ(yM(id&sNAGpz+I|c)4keTAXuDJWoy&kBn*Bjq)U?#^JPZtvKX6K5Erzg!C{ihfEh&HsFRJSzJ$-?a z1QuN~!TY|qN3Fj8vk6#6F&r>uGFUn#Dm(6l@YXOv4u&~h{s-)@M19WI1eV9H3cyek zX$1NvfQ1QIE(7HW2sSXd097&x09A50xF`UX3pN7HKo>+cxW@S#i;@5^iOQ%jF*3|M zsGfk;;dqibC_?auI4)_@brFtTY<7{Zi-31=NaGMDP=%1L3n>d=^DYi)9Kv|25CRUz eA&o5T_g3`u#M^nyv+l?;0D-5gpUXO@geCydn}D7G diff --git a/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_dn.png b/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_dn.png index ce02a72be05dbc2c6cb7da0fb2f0a4f99d08e977..8b0df0a1022467d8846b896dd9fc39b24ff646c6 100644 GIT binary patch delta 4567 zcmV;|5h(8U2mK?EBYzAUdQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+P#@+lH52B zh5z#ua|Dv$dK_?zm>bOT=L1t&uCm?T_H@ToMy4c+;_?7IJgD6M&%clR7k`p!b1BzW zdMTd2)KibjN%OD2et&~c_xJuueC~y>?e617q)Dvj>$2+8Uw>)O-yV3+5ysbc*Pc7E zJp(;A-UEuwY?H0ei@Ynl?IAq__5C_2z17c49nVVV)A26l`L=%7^07_3cApzk1*Mgl zNMhU)#Pb{FS%JL1%D3|yrP42maGoVO4oTiC0gx}-dmp|34A2*l-)HW7^gqtN13&81 zF5h8U9*j8o>3@xoe-8eI__I5FtSElH!8r4W?L6OeRy$|EcBiR;Xn8!!yEi)a3>^oM z%YCfyseCi%^?o{^=G9M3zL;+CnW2Y>RgMcOtf1k9eUCFtmYCv>*d)d{qujQJje4A7 zc1rdMCswStq+!1qx5Io%;>TLTowwilW@ya30$pQZuz$cKfB12KcJp^W?i|B51m8Ze zVqMW(lx3LZ?3Z2`B%H@?`2zg@Jm&YG{0CRXg89PS*r59H8e-(|&9~&*S?HHJzCtLt zx}E`mh`BS134#TD36etzzQ$NX0LO-bl$A$GabSUvb6hMkCXo_djV;>TJX6E%8*?nt zn&Bo4k$#x=)QIi$4e{K=MeN6Hv|bFeH-)9)VLUv=oC`K`s400qws zpRgdDa@R=!Xi!b3YIn2llLyN-nILhmdFH^fTVox477Th;8F8mEAoUV+;abO7Q@9;d zIddW~T$!>~om%e$YnlGjG;b_F~bgc3^UMop`jeU2Rij3^^^!i6*Un-Ei*58`;khwSQ%} z0(T%abs|5fUHa;lhkRu*SfVArg;iPL?(KZrhu*AyjPA#PHBoMr%M4xASQjx($aXE{ z2R!b?3Gg+r{NWX<2sYVvTg+7!EYrvy`_)S0utpgyj4!EbhqhuX!a0v_j~wu^f~e+( zO_M9oVwjKsJ0I*v8gnmmO%fPVuLoY8iQbCJ1f(p?YEwI~SQKlz@q1$^6GJKnrsa86I*>wYURY;mm$6;PzGGEf1 zZf>%LXf_5X()%tN?-_Yu)(f#1$5whr0|p#Gi&k8UJBguWj^K<7h>W?S?SCO=u9~%g zNZi&^0JJB;N+~Fr>cQCXJh+ONbo`X&n7U6?Sx%~xu1bdzm8{jdHR!Y_V|d$N88cWC z>KF+3VKV~eXOIJuOIn+pYVknAh;W#h#?Lm|JY=F@ac}bEagqJ^u?u8=HV*={PKcx) zJYdXP&vkFYZ`VSeBw6@|dw-0OlWh*hNVUxFSR!L=Ly>kdCMhzBg3Mth(vJb3V%1}C z*R=@`UE=$-2iNc&%;w4)dV_W@Qflhfr@}yHsY!qvjwlH1?s@Q9riq0>6XI**5LNIa zaNquApW2LXnoJy$EnpQif$?A3dhbE=J(o$^-BDFLzd6gpkgHF&kAH>--d)*#8D!8w zzV1XzpA8WXqk`c~a{4Me57{L10R0i}<>ngq$4RK|ETe|GQH;7b0wzJa;o#8BmE%To zjA~hG;^(enns#Ta%m#k-f}9NGZt!P62viH@@b>!J*(H8GuRn5u6##pZ<%t9fGEg@M zf8YmY%7XrY&y!mAwSRy|ftla;!3;MYYhs72i9~o#Z$|T^LF6>+$Eom@qjOWf+*mIw9*RJ+7P=-%nUlal z*|~Inmh8Jfh_eB+oJzhkHtcJO9;DIDTwr*r6>mt_jr$%nu@NfJ2CseV+jLr#k3cVe(>iaWZJFfw8>a<=L@|EzSaBQ5D#Vt0%iI1AE_m z;ETGHZDg3^`P^JR`tM~Z)-W7G^omNSqL=IuoB2V&`s*eJSbvn;vxFc1z>VWpSz zUMRs2RXbqzxUOO3wg=nLuyi_)A>1s44arWZPjknf7J-i2T7tpCC|t~M?c=@DW;*$$ z;Mnm}P&H_6=xD=zUkH%r3Jn(pYnn+1*JT3hYY?9qQ$G+4l#sTxx?v93Aj(wnIr4b3`PrPY!pEt#o0+>!AN*YjylcK1OaeI*o`(|Wv}!~R zVMlb4K)C2C$PSkzxhZK6WY1{btP-=yn-KIYcCQvl?jxeU9FZZgbuMY`NEMg`A2Nb1 z5Rsx`{g8y53aJ{&7`wP2-omPwMjB8eO2{%CJAXn~Z!xQkA{&Gx?cVCyo) zr|o^wM%6QapH0`iZFo*NnE ztr?k4-izZ(xQLp7cQMQ{d4%JGN&&P06EVq>{mq5l_dflDkHe6wP$IEhrtUXurd6}O z0yNy=tA^fp&{D$6O7w@k=!pxyQAcnfG|g|I!dE1e{t9LV-?W=;4{Nol&UOqDCVx<} z*AP=dHNKK$w3LSWF|<+9w=pg?9SLl9{c01-eGWH6D10DJm}Ns+nWtLIhF)HlP_cv; zTciwVJCvFy0zpxP3!UU_?XY4e8NTEzqBUd$W;C_4iWNjwxCHWav*&X*u}uYO?kf7G zW%mP5|HZL*Y5)o%CaYmka+o}=dVi}U$YBWOY!5*S%FxmS{6o}YY#~86_`S?Qk!mRp zA+?6syO$fLyEf`$anh}F2Tgd83WE4I-DB?u?tthfjAz;4oO$a5phX;k3fbydlzE(E z9%r{H?+ev_d1ZO?`9U#?+@xGrvX$LrQ?`N}5W3OMZ*GQ+OxtR(|3W}&Kz~n2vI24z ziOvcv9!3b%z7ElCbYX8i#RjBq8Ydcshf(6(YVXk|Y6P>G+R-g?&Z{-xR8T=rnpcRRiM$bsz1YnNgNw7S z4z7YA_yOYN=%nZ(CH^lhw21NGxF7HCJ?`ECLcPp1t7`(#blXfN;$kMdD)zi0fMJ9X zLqKMhF(*k$c#f}o`1pDkk&SHR1B%Wo4X%lY{PjA`==Y8TZE6OVIIq|qj z7bJe?RNSu0mr>z@3D z!JNLb%ypV0NMI35kRU=q6(y8mBTB1IiiH&I$36T*u3sXTLaq`RITlcX2HEw4|H1EW zt^CwvGbtDcx?ddUV-)Dw1sXNS`95}>#tGnm2CnqBzfuQgK2J%nwYA6*Ft80=T(>o4 z54hX`2A>SslwHYBQ^@Cm_cQvYED*W{`qrAgwf1rP0Hmp_31Q--+?*DG)=z?goIa0K`Di<>i__4+kWaBMG*i%e@Y1<1cVT$K=CsG zp3f(`u0z|lsOuVC*J;5_0fQjWS1BdpI7SpjkWwN^l9zxEgABs}r4$~I2gY#wk@iv+O*bqLHfSOf8+7cv(s8#63W&HIk#DD zP!srmzaxqwuZeM=HprxW5I(b__7aS1Y^r2p*Xz}(74FkU*L8ZOrYUxdHhdZ}%Q%j+ zKI1sfe28S|``)RQRS>1rY^^W_UJ~A3+3jLJBOr2i^Btz|P`hngD5abr%;)5FT`vmj zs-{q{^s~pQf9o1bDW@s&J!a(-z}{oIW-WSd-uu9P=H;EW_Iza@gzfP5^SvKslWCEE zxL~%x@BQ614&9TV913;UrqZn%ScA9!zckLTkJ--*b$=AZH3NMKh`D8Ot-NbOZCSy6 z@$evh+rPc3oS4mO$*9=Q+|e zeLZF;r_ZuXr#W4M9nGTHm9!E?5wa{>b@E;5pfC)ziBU?(lT1ya@%SD^iX?ZPz zNz)VnW-x21og*M7M4G0XbHKY&re^w*a=)f9eMfS?_DmH;(bwmG2}TG3DW%TF+sWv? zK0?=T&BmKPLklLIk1WODE{)LrkDiYZ4Ch>H=bt^XA|b;t#PxbT28>V5+c000AmNkl@dP5j zGZ1!;x{n#y4ZZIh9^1Fa1fc-f=LB<}=L--s79GoAVg~{luC`5gynjMWFw8r-EhY$N zXop}>%&7X=q3XVR4hDSR_Yp1xGIp&6_p=b|N!{1uIF9SOUhZ^;rs!6dJuB=+#50dm{gr#(!Veb*#1Cyi>#KzVG+Yav>Phu1D&ftpLbqwJ+SH&h_W##|BXz zVIb(g=_%xyJZG>r0(qfAARuK714-l5e>xEDwUjp$P=|Q}(!HTZIW;26I)XxoK_D0> zN7N9jI)S%3qCCKo{gWP1$M+D-&mLy7Aga((BiH1S+IpZ0K7ZAker~HEx&TgCp(4gw z5!J%bg2=j9H}R*ia=O~NrE_Wiyl;xTd>gsO?DtdqK03qq7w&Ko%9b{}(7=ImrdNYE}6{gnN>6%@ou^RsM z_4V?*uWYyurl%@TIBiRvD@^&P3}>F{-VSu3I@w7G6#qydc%q{8wR@%J4g(9Na#tXy zH=0xt$0G^BLX3@&q1uA3Jxzu^73e09I7uIBq;bTvYRnVu7mZXZ#AqFHsxXrD9WmO? zktyM)B7X@-EhHQ(6&!&)c|OAGNKbZF;e$OrRWMz~L=S3qpI9*<208N{I@smTe|_`8HJ-Nd z6AWv~yO8|kT@=;cqn8I*gaiwh>CK$Ud(+!NlPmau?!J20D^%=1fl=>RIWL>-s3~>Z YAB2ECVLuM(!2kdN07*qoM6N<$g3*rFZvX%Q diff --git a/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_hi.png b/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_hi.png index a0fa6805f743d607695740442c97c33ee2cae157..c985fef6f4c553d2a61bd07d4e4d3606ec6ad5b3 100644 GIT binary patch delta 3671 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 diff --git a/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_up.png b/cinelerra-5.1/plugins/theme_suv/data/new_bigbutton_up.png index 886ac2371294117624ebf6b357cd65f508da31fb..97011927fbf5f1c56b4446558b87f0c6a210e59b 100644 GIT binary patch delta 1253 zcmVaB^>EX>4U6ba`-PAZ2)IW&i+q+U=HYk|QS! zhW~Sl905rPiQ~|GROJRaeqJ#4*fW!4w|4)e%1uFIA%xH)XovCFpELY{hf0nisd+9r zM?9&d!WA8lx2NouV%qI~gwGhg%EM!TA(Ewe`)T#)SIG5a!hd}Yx?bhM&j|Z5bO!DQ zWv#px>(5SZ&$gV>F;vE_lZ)H4tJm?g9mVa+sb01(k8Q5s;aQLjQR<3?gn0-_M9XqK zkXx;&1ucs~k3`T{(Xd7LEg>K;+q=JGd=Ah{kng?lIr@*@r{Hrva`_a?d}4&ow*#c# z2Y-k7IUODz@qg<8HlDw1=hQj7&pB?pt0^O*`D9cK_voxSP`nUw+0!zLp(^^eOF{8i zV*~OYTf9&j6=G1Cff9A9G->R2qXrif4~A>Z+*r2E!KiSP#VM^qlMVE`IAAp%0r-;e z!x!4?mc3ph$I6|c$^>JCDgRi)zYYFO33Ij;B8vWq6@UEVm7;KCky|aa0EFh@raQp* za`4Be{6VUMpzbg`Hdy0zGjS<>{8Hs%;@T~^M##JHOPLM4lV4bB%}rKHFoOO70>IATdv zvzmI)qJK3@PFZu#me(a$O)QyOHZ!+k)y0#mXE%2*UJDn&9jGN2D_%;el|#is6}Bq$ zDCQ5gWU(YAL16&e~26Z7rC&|{SI;g=)Q9MhFV|WxweVj zPT`7a6r8?6!;wc`*Eg;5ufE@g-iF?W-iF?W-iF?W{{M#X*P(>J0lm?jU$)t&EC2uj zgnwy6Lr_UWLm+T+Z)Rz1WdHzpoPCi!NW(xJ#a~lJD;0-!5Ov5k&SHR1 zB%Wo4X%lY{PjA`==Y8TZE6OVIIq|qj7bJe#tGnm z2CnqBzfuQgK1r{&wa5`Lunk;Xw>4!CxZD8-pA6ZQUCB>V$mfCgGy0}15V{5W)|$Pw z_Hp_Eq^Yaq4RCM>j1?$*-Q(T8oe#bJd#2Uj4~$`Qu?4Uw3Xvf&F60Rt6E_%E0%VW? z002ixL_t(&-tEsZ5dbg<1Td(&_iqSXbl?&P=_FGJygEXWfg%}1MC6YJ3zz~sO!HBL P00000NkvXXu0mjfP1adM delta 70 zcmX@awTp3r^5oSldP-N>IhbXbKKBH^W?*1&_jGX#skrs_yrCe20SAl0ik08j^GyED aVk}~rz{K&%Z^ja!A_h-aKbLh*2~7Y_s~4XD diff --git a/cinelerra-5.1/plugins/theme_suv/data/tumblepatch_bottom.png b/cinelerra-5.1/plugins/theme_suv/data/tumblepatch_bottom.png index 3d79ddf05cad409f7739476815f70f4e2af59408..fd0a5f4561a91964ae45dfaae843acd5251ddc91 100644 GIT binary patch delta 378 zcmV-=0fqkl0mB23Qhx~)4I~Twi2CpV00B@*L_t(I%axSPY63wJgue=TIA0Y8CoHOMC?&?dRj zp|I4aLf5;`@N+Kk4fp?LxoyLTAy)39=;rSV*XwmB*l0A$C`Ux)dOKTQE|*vHl*-1&(FwN9yJT64EEC@!1QH$!LwRF8<*C9 Y0R_0!is{*OjsO4v07*qoM6N<$f^@{KYybcN delta 180 zcmV;l089VF1O5S!Qhx;*3}7TW9&K_#%IBdtw%&W7AlwPk(NGi-1^^mxjB)I-^)?lDf`-Kzc!%tui0)+j%1i}T7Qhx~)4I>3raX~Nu00K`*L_t(I%Y~FZQyVc5hM(2xz6}0X6#N7_ zYFfg?RVb1gN}QRbq=%MYMXH^ys*++N zX(T2kr9=vW7$YG@Qi`Ow+t)-&2|opi2qJ=+VK(G3>~MyW)qmr%;Z%payS2NF`v@zF z0`EOlRZ-V9P2KYK+gIwkrK%e0x}>T+-h0G3#5oYzL3Y58u)3~k+m@rFBNmI#09;>x zVLm^mogGm(EoE8aeTj3j=NS{=RM`l-xVU&%+r?tR{P>tz+tM@*zVLWg;E=(z8E#bP zoTDsD>bhn&n}2bBe$Job>gtN)`JAR1?7PAvuE2>P$N@ODdvLWqIwX3J`|;`#ZRrfI0ElG1w$=Rh2W9DpOVD2jLW zEPaWIAtGeWlx4X;7jejb8De&5o49q>zZ3P|H|0z;L5F)#0D)`<|}rczAgDBkae| zAG~chbX`XXJ(@C>+1qwgyD>)kzGt)9uv)FSzrTM6TP~Np{CeSa{kj7NR1-PtP&Vvf zc~lreV063P^7i(|dcEfE?hb(4+gnyIFRWi**=)CTT}MocY931n2r`bZX@gH6O0$wv zChCwZ?38tVPuF*ZJ`!U@H4&%dYaCaqx>r2DdWwmZ6EQ|&h{QO|KFb*}M8+B#zX37) VfFyVEVpsqG002ovPDHLkV1iZGJy8Gv delta 500 zcmV3AzbQ2c)jut|WutJRJaS&p2~b7oG4tX8Xtw;+Uo5Q0BNj1e);KXcB) zT8H8rC_R+Y892s>5JCn{!7)D0(RUbQ3`J3Za}Lfqgb>(nw|{xhIY&_xV2sU_q-*In zm=FR|N>o*a^?D5e*laeastQs{2q8Y8k;FN0nwgXmN-4B$JF8RMwopnzO8J@Tv!rxd zud*y5gn&{CP1AgBNYgY>NGTh9&cPUi!{P8N?07uF7z5{Ah5}C?rW?HXaLz$% z4XriK=kr(C>2$(4j?h}eIS23kGfT{YAp}@!p|!>^3~jhxujsn&LuTLi7={5_YglV@ zh9SnebP-aQFt`bUJ~1wje0X0o=QRyWQ??em$z zi)lCZD5L`$6OqR!h1Obg6qrPi!Usj>ZU9gRwEIj0d++B8&GWzsJ3((=3|t{QsApQ< z1^>Ob02s||_0N{AN{6H%v0gUcH|+wz7$ZN!$K#Yg(BTfcPcD{Ny*2n$xo1~zLZUI4 jd#!9Ffn??P^{eXw20jbRxqgb^-JHTz|jy>0NCxm zkoZ-h3T$&gFW_>y?Bx6X9_$)Nm?5=rZ7RI_;(5`*@@j zL_w;{)h*kkl&GqT6xl9Su}?}V+vc3dowiYJmOO3a!lB)0B8>VtY`F%xa{_IV8y^Zw zJpPA6fZ=fX7kB@fu{WDdFWA#)Q~-pPyC}Z7-tua-y14%Q@|*$AMm!@b*W1hCVzKDt z{Ch9WZ)0LTHy7-5X8vt?ls)Wl-o6S9LYo)7ery?fh@ z9F6ztUrUrS*^r=C$_5`~ld)Si$6wveIbVq_6`b-1I`p7^u`R?7pUJz