Add OFX plugin support and related infrastructure

This commit extends the OFX plugin support in Olive by:

- Initializing and scanning for OFX plugins
- Updating PluginNode to handle OFX plugin parameters and inputs
- Adding necessary methods and properties for OFX plugin integration
- Enhancing NodeFactory to include OFX plugin nodes
- Refactoring and renaming OliveInstance to OlivePluginInstance
- Introducing new classes for parameter handling (ParamInstance)
- Adding PluginJob for rendering OFX plugins
- Adjusting CMakeLists.txt files to include new source files
This commit is contained in:
2025-11-09 17:03:56 +08:00
parent 26e6924cdf
commit 8a7b6cf869
23 changed files with 545 additions and 90 deletions
+24
View File
@@ -19,7 +19,9 @@
#ifndef CURRENT_H
#define CURRENT_H
#include "pluginSupport/OliveHost.h"
#include "render/videoparams.h"
#include "render/job/pluginjob.h"
class Current {
public:
@@ -55,10 +57,32 @@ public:
{
return true;
}
std::shared_ptr<olive::plugin::OliveHost> pluginHost()
{
return myHost;
}
void setPluginHost(std::shared_ptr<olive::plugin::OliveHost> host)
{
myHost = host;
}
std::shared_ptr<OFX::Host::ImageEffect::PluginCache> pluginCache()
{
return plugin_cache_;
}
void setPluginCache(std::shared_ptr<OFX::Host::ImageEffect::PluginCache> cache)
{
plugin_cache_ = cache;
}
private:
static Current current;
olive::VideoParams currentVideoParams_;
olive::AudioParams currentAudioParams_;
std::shared_ptr<olive::plugin::OliveHost> myHost;
std::shared_ptr<OFX::Host::ImageEffect::PluginCache> plugin_cache_;
};