void BasicExamplePluginFactory::describe(OFX::ImageEffectDescriptor& desc) { // basic labels desc.setLabels("Gain", "Gain", "Gain"); desc.setPluginGrouping("OFX"); // add the supported contexts, only filter at the moment desc.addSupportedContext(eContextFilter); desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextPaint); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setOverlayInteractDescriptor( new BasicExampleOverlayDescriptor); }
/** * @brief Override this to describe the writer. * You should call the base-class version at the end like this: * GenericWriterPluginFactory<YOUR_FACTORY>::describe(desc); **/ void GenericWriterDescribe(OFX::ImageEffectDescriptor &desc) { desc.setPluginGrouping(kWriterGrouping); #ifdef OFX_EXTENSIONS_TUTTLE desc.addSupportedContext(OFX::eContextWriter); #endif desc.addSupportedContext(OFX::eContextGeneral); // OCIO is only supported for float images. //desc.addSupportedBitDepth(eBitDepthUByte); //desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsTiles(false); desc.setTemporalClipAccess(false); // say we will be doing random time access on clips desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setRenderThreadSafety(OFX::eRenderInstanceSafe); }
void InvertPluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels(kPluginName, kPluginName, kPluginName); desc.setPluginGrouping(kPluginGrouping); desc.setPluginDescription(kPluginDescription); // add the supported contexts desc.addSupportedContext(eContextFilter); desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextPaint); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); }
void CrossFadeExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels("Cross Fade", "Cross Fade", "Cross Fade"); desc.setPluginGrouping("OFX"); // Say we are a transition context desc.addSupportedContext(eContextTransition); desc.addSupportedContext(eContextGeneral); // Add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); }
void SwitchPluginFactory::describe(OFX::ImageEffectDescriptor &desc) { // basic labels desc.setLabels(kPluginName, kPluginName, kPluginName); desc.setPluginGrouping(kPluginGrouping); desc.setPluginDescription(kPluginDescription); // add the supported contexts desc.addSupportedContext(eContextGeneral); desc.addSupportedContext(eContextFilter); // add supported pixel depths desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); // set a few flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); #ifdef OFX_EXTENSIONS_NUKE // Enable transform by the host. // It is only possible for transforms which can be represented as a 3x3 matrix. desc.setCanTransform(true); #endif }
/** * @brief Function called to describe the plugin main features. * @param[in, out] desc Effect descriptor */ void AVReaderPluginFactory::describe( OFX::ImageEffectDescriptor& desc ) { avtranscoder::preloadCodecsAndFormats(); avtranscoder::Logger::setLogLevel( AV_LOG_QUIET ); desc.setLabels( "TuttleAVReader", "AVReader", "Audio Video reader" ); desc.setPluginGrouping( "tuttle/image/io" ); std::vector<std::string> supportedExtensions( avtranscoder::getInputExtensions() ); // Hack: Add basic video container extensions // as some versions of LibAV doesn't declare properly all extensions... supportedExtensions.push_back("mov"); supportedExtensions.push_back("avi"); supportedExtensions.push_back("mpg"); supportedExtensions.push_back("mkv"); supportedExtensions.push_back("flv"); supportedExtensions.push_back("m2ts"); // sort / unique std::sort(supportedExtensions.begin(), supportedExtensions.end()); supportedExtensions.erase( std::unique(supportedExtensions.begin(), supportedExtensions.end()), supportedExtensions.end() ); desc.setDescription( "Video reader based on AvTranscoder library\n\n" "Supported extensions: \n" + boost::algorithm::join( supportedExtensions, ", " ) ); // add the supported contexts desc.addSupportedContext( OFX::eContextReader ); desc.addSupportedContext( OFX::eContextGeneral ); // add supported pixel depths desc.addSupportedBitDepth( OFX::eBitDepthUByte ); desc.addSupportedBitDepth( OFX::eBitDepthUShort ); desc.addSupportedBitDepth( OFX::eBitDepthFloat ); // add supported extensions desc.addSupportedExtensions( supportedExtensions ); desc.setPluginEvaluation( 30 ); // plugin flags desc.setRenderThreadSafety( OFX::eRenderInstanceSafe ); desc.setHostFrameThreading( false ); desc.setSupportsMultiResolution( false ); desc.setSupportsMultipleClipDepths( true ); desc.setSupportsMultipleClipPARs( true ); desc.setSupportsTiles( kSupportTiles ); }
void NoiseExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) { desc.setLabels("Noise", "Noise", "Noise"); desc.setPluginGrouping("OFX"); desc.addSupportedContext(eContextGenerator); desc.addSupportedBitDepth(eBitDepthUByte); desc.addSupportedBitDepth(eBitDepthUShort); desc.addSupportedBitDepth(eBitDepthFloat); desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(true); desc.setSupportsTiles(true); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setRenderTwiceAlways(false); }
void LensCalibrationPluginFactory::describe(OFX::ImageEffectDescriptor& desc) { //Plugin Labels desc.setLabels( "LensCalibration", "LensCalibration", "openMVG LensCalibration"); //Plugin grouping desc.setPluginGrouping("openMVG"); //Plugin description desc.setPluginDescription( "LensCalibration estimates the best distortion parameters " "according to the couple camera/optics of a dataset." "\n" "The plugin supports video file & folder containing images or " "image sequence." ); //Supported contexts desc.addSupportedContext(OFX::eContextFilter); desc.addSupportedContext(OFX::eContextGeneral); desc.addSupportedContext(OFX::eContextPaint); //Supported pixel depths desc.addSupportedBitDepth(OFX::eBitDepthUByte); desc.addSupportedBitDepth(OFX::eBitDepthUShort); desc.addSupportedBitDepth(OFX::eBitDepthFloat); //Flags desc.setSingleInstance(false); desc.setHostFrameThreading(false); desc.setSupportsMultiResolution(false); desc.setSupportsTiles(false); desc.setTemporalClipAccess(false); desc.setRenderTwiceAlways(false); desc.setSupportsMultipleClipPARs(false); desc.setOverlayInteractDescriptor( new LensCalibrationOverlayDescriptor); }