X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fplugins%2Fhistogram%2Fhistogram.h;h=0051243855f9f8413fcf569d10edde6fb184b26e;hb=232ae3c6972c1740b6e1890ccce1264f2bb311f5;hp=6a5d527bc100d8ecb5728a36c3da4e532d156501;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/histogram/histogram.h b/cinelerra-5.1/plugins/histogram/histogram.h index 6a5d527b..00512438 100644 --- a/cinelerra-5.1/plugins/histogram/histogram.h +++ b/cinelerra-5.1/plugins/histogram/histogram.h @@ -60,13 +60,14 @@ 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; HistogramEngine *engine; + HistStripeEngine *stripe_engine; + int *lookup[HISTOGRAM_MODES]; // No value applied to this int *preview_lookup[HISTOGRAM_MODES]; @@ -80,8 +81,42 @@ public: int point_y_offset; int w, h; int parade; + VFrame *fframe; + int64_t last_position; + int last_frames; +}; + +enum { ADD_TEMP, ADD_FFRM, ADD_FFRMS, ADD_TEMPS, SUB_TEMPS }; + +class HistStripePackage : public LoadPackage +{ +public: + HistStripePackage(); + int y0, y1; +}; + +class HistStripeUnit : public LoadClient +{ +public: + HistStripeUnit(HistStripeEngine *server, HistogramMain *plugin); + void process_package(LoadPackage *package); + HistStripeEngine *server; + HistogramMain *plugin; }; +class HistStripeEngine : public LoadServer +{ +public: + HistStripeEngine(HistogramMain *plugin, int total_clients, int total_packages); + void process_packages(int operation); + void init_packages(); + LoadClient *new_client(); + LoadPackage *new_package(); + HistogramMain *plugin; + int operation; +}; + + class HistogramPackage : public LoadPackage { public: