X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginfclient.C;h=644bd52744b450c81f388ee53ccc6aa6a35dbdb7;hb=9db053d413fde01439cc72ec2109913dfda2ec7b;hp=1bea7dd04ba1564c7fbbdfd748409e9c15f604c6;hpb=3ec3a9cc6afc6561311686b3ec597ee3c1d80d6f;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/pluginfclient.C b/cinelerra-5.1/cinelerra/pluginfclient.C index 1bea7dd0..644bd527 100644 --- a/cinelerra-5.1/cinelerra/pluginfclient.C +++ b/cinelerra-5.1/cinelerra/pluginfclient.C @@ -68,7 +68,7 @@ void PluginFClientConfig::copy_from(PluginFClientConfig &that) } } -void PluginFClientConfig::interpolate(PluginFClientConfig &prev, PluginFClientConfig &next, +void PluginFClientConfig::interpolate(PluginFClientConfig &prev, PluginFClientConfig &next, int64_t prev_frame, int64_t next_frame, int64_t current_frame) { copy_from(prev); @@ -76,6 +76,7 @@ void PluginFClientConfig::interpolate(PluginFClientConfig &prev, PluginFClientCo void PluginFClientConfig::initialize(const char *name) { + delete ffilt; ffilt = PluginFFilter::new_ffilter(name); const AVOption *opt = 0; void *obj = ffilt->filter_config(); @@ -154,7 +155,7 @@ PluginFClientReset:: int PluginFClientReset::handle_event() { - av_opt_set_defaults(fwin->ffmpeg->config.filter_config()); + fwin->ffmpeg->config.initialize(fwin->ffmpeg->name); if( fwin->ffmpeg->config.update() > 0 ) fwin->draw(); fwin->ffmpeg->plugin->send_configure_change(); @@ -271,7 +272,7 @@ void PluginFClientWindow::update(PluginFClient_Opt *opt) *(sp=str) = 0; if( opt ) opt->ranges(sp); range->update(str); - while( units->total_items() ) units->remove_item(0); + while( units->total_items() ) units->del_item(0); ArrayList opts; int n = !opt ? 0 : opt->units(opts); for( int i=0; i &opts) if( strlen(opts[i]->name) < strlen(opt->name) ) opts[i] = opt; break; } - if( i < 0 ) + if( i < 0 ) opts.append(opt); } return opts.size(); @@ -909,7 +910,7 @@ int PluginFVClient::process_buffer(VFrame **frames, int64_t position, double fra color_model_to_pix_fmt(colormodel); if( pix_fmt <= AV_PIX_FMT_NONE || pix_fmt >= AV_PIX_FMT_NB ) pix_fmt = AV_PIX_FMT_RGBA; - + AVFrame *frame = 0; if( ret >= 0 && !(frame = av_frame_alloc()) ) { fprintf(stderr, "PluginFVClient::process_buffer: av_frame_alloc failed\n");