TuttleOFX  1
tuttle::plugin::ImageProcessor Class Reference

Base class that can be used to process images of any type. More...

#include <ImageProcessor.hpp>

Inheritance diagram for tuttle::plugin::ImageProcessor:
Collaboration diagram for tuttle::plugin::ImageProcessor:

Public Member Functions

 ImageProcessor (OFX::ImageEffect &effect, const EImageOrientation imageOrientation)
 ctor
virtual ~ImageProcessor ()
void setNoMultiThreading ()
void setNbThreads (const unsigned int nbThreads)
void setNbThreadsAuto ()
virtual void preProcess ()
 called before any MP is done
virtual void postProcess ()
 called before any MP is done
virtual void setup (const OFX::RenderArguments &args)
virtual void setupAndProcess (const OFX::RenderArguments &args)
 fetch output and inputs clips
void multiThreadFunction (const unsigned int threadId, const unsigned int nThreads)
 overridden from OFX::MultiThread::Processor. This function is called once on each SMP thread by the base class
virtual void multiThreadProcessImages (const OfxRectI &windowRoW)=0
 this is called by multiThreadFunction to actually process images, override in derived classes
OfxRectI translateRoWToOutputClipCoordinates (const OfxRectI &windowRoW) const
virtual void process ()
 called to process everything

Protected Attributes

OFX::ImageEffect_effect
 effect to render with
OFX::RenderArguments _renderArgs
 render arguments
OFX::Clip_clipDst
 Destination image clip.
boost::scoped_ptr< OFX::Image_dst
OfxRectI _dstPixelRod
OfxPointI _dstPixelRodSize
OfxPointI _renderWindowSize
EImageOrientation _imageOrientation

Private Attributes

unsigned int _nbThreads

Detailed Description

Base class that can be used to process images of any type.

Definition at line 29 of file ImageProcessor.hpp.


Constructor & Destructor Documentation

virtual tuttle::plugin::ImageProcessor::~ImageProcessor ( ) [inline, virtual]

Definition at line 61 of file ImageProcessor.hpp.


Member Function Documentation

void tuttle::plugin::ImageProcessor::multiThreadFunction ( const unsigned int  threadId,
const unsigned int  nThreads 
) [inline, virtual]

overridden from OFX::MultiThread::Processor. This function is called once on each SMP thread by the base class

Implements OFX::MultiThread::Processor.

Definition at line 140 of file ImageProcessor.hpp.

References _renderArgs, multiThreadProcessImages(), OFX::RenderArguments::renderWindow, OfxRectI::y1, and OfxRectI::y2.

Here is the call graph for this function:

virtual void tuttle::plugin::ImageProcessor::multiThreadProcessImages ( const OfxRectI windowRoW) [pure virtual]

this is called by multiThreadFunction to actually process images, override in derived classes

Implemented in tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::colorCubeViewer::ColorCubeViewerProcess< View >, tuttle::plugin::colorSpaceKeyer::ColorSpaceKeyerProcess< View >, tuttle::plugin::histogram::HistogramProcess< View >, tuttle::plugin::histogramKeyer::HistogramKeyerProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::nlmDenoiser::NLMDenoiserProcess< View >, tuttle::plugin::text::TextProcess< View, Functor >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::colorTransfer::ColorTransferProcess< View >, tuttle::plugin::ramp::RampProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::anisotropicFilter::diffusion::AnisotropicDiffusionProcess< View >, tuttle::plugin::colorWheel::ColorWheelProcess< View >, tuttle::plugin::exr::reader::EXRReaderProcess< View >, tuttle::plugin::checkerboard::CheckerboardProcess< View >, tuttle::plugin::anisotropicFilter::tensors::AnisotropicTensorsProcess< View >, tuttle::plugin::constant::ConstantProcess< View >, tuttle::plugin::ocio::colorspace::OCIOColorSpaceProcess< View >, tuttle::plugin::warp::WarpProcess< View >, tuttle::plugin::colorCube::ColorCubeProcess< View >, tuttle::plugin::colorGradient::ColorGradientProcess< View, ColorGradientFunctor >, tuttle::plugin::ocio::lut::OCIOLutProcess< View >, tuttle::plugin::lens::LensDistortProcess< View >, tuttle::plugin::colorBars::ColorBarsProcess< View >, tuttle::plugin::colorSuppress::ColorSuppressProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::pushPixel::PushPixelProcess< View >, tuttle::plugin::jpeg2000::reader::Jpeg2000ReaderProcess< View >, tuttle::plugin::merge::MergeProcess< View, Functor >, tuttle::plugin::jpeg2000::writer::Jpeg2000WriterProcess< View >, tuttle::plugin::openImageIO::writer::OpenImageIOWriterProcess< View >, tuttle::plugin::basicKeyer::BasicKeyerProcess< View >, tuttle::plugin::print::PrintProcess< View >, tuttle::plugin::openImageIO::reader::OpenImageIOReaderProcess< View >, tuttle::plugin::quality::DiffProcess< View >, tuttle::plugin::fade::FadeProcess< View >, tuttle::plugin::exr::writer::EXRWriterProcess< View >, tuttle::plugin::png::reader::PngReaderProcess< View >, tuttle::plugin::localmaxima::LocalMaximaProcess< SView, DView >, tuttle::plugin::imageStatistics::ImageStatisticsProcess< View >, tuttle::plugin::floodFill::FloodFillProcess< View >, tuttle::plugin::seExpr::SeExprProcess< View >, tuttle::plugin::png::writer::PngWriterProcess< View >, tuttle::plugin::colorTransform::ColorTransformProcess< View >, tuttle::plugin::ctl::CTLProcess< View >, tuttle::plugin::idKeyer::IdKeyerProcess< View >, tuttle::plugin::lut::LutProcess< View >, tuttle::plugin::sobel::SobelProcess< SView, DView >, tuttle::plugin::bitDepth::BitDepthProcess< SView, DView >, tuttle::plugin::blur::BlurProcess< View >, tuttle::plugin::convolution::ConvolutionProcess< View >, tuttle::plugin::av::writer::AVWriterProcess< View >, tuttle::plugin::debugImageEffectApi::DebugImageEffectApiProcess< View >, tuttle::plugin::av::reader::AVReaderProcess< View >, tuttle::plugin::jpeg::writer::JpegWriterProcess< View >, tuttle::plugin::turboJpeg::writer::TurboJpegWriterProcess< View >, tuttle::plugin::component::ComponentProcess< SView, DView >, tuttle::plugin::thinning::ThinningProcess< View >, tuttle::plugin::crop::CropProcess< View >, tuttle::plugin::flip::FlipProcess< View >, tuttle::plugin::pinning::PinningProcess< View >, tuttle::plugin::resize::ResizeProcess< View >, tuttle::plugin::viewer::ViewerProcess< View >, tuttle::plugin::dummy::DummyProcess< View >, tuttle::plugin::colorspace::ColorSpaceProcess< View >, tuttle::plugin::move2D::Move2DProcess< View >, tuttle::plugin::mathOperator::MathOperatorProcess< View >, tuttle::plugin::dpx::reader::DPXReaderProcess< View >, tuttle::plugin::dpx::writer::DPXWriterProcess< View >, tuttle::plugin::imagemagick::reader::ImageMagickReaderProcess< View >, tuttle::plugin::jpeg::reader::JpegReaderProcess< View >, tuttle::plugin::colorGradation::ColorGradationProcess< View >, tuttle::plugin::swscale::SwscaleProcess, tuttle::plugin::imagemagick::writer::ImageMagickWriterProcess< View >, tuttle::plugin::turboJpeg::reader::TurboJpegReaderProcess< View >, tuttle::plugin::gamma::GammaProcess< View >, and tuttle::plugin::raw::reader::RawReaderProcess< View >.

Referenced by multiThreadFunction().

virtual void tuttle::plugin::ImageProcessor::postProcess ( ) [inline, virtual]

called before any MP is done

Reimplemented in tuttle::plugin::swscale::SwscaleProcess.

Definition at line 72 of file ImageProcessor.hpp.

References tuttle::plugin::OfxProgress::progressEnd().

Referenced by process().

Here is the call graph for this function:

virtual void tuttle::plugin::ImageProcessor::preProcess ( ) [inline, virtual]
virtual void tuttle::plugin::ImageProcessor::process ( ) [inline, virtual]

called to process everything

Definition at line 166 of file ImageProcessor.hpp.

References _nbThreads, _renderArgs, OFX::MultiThread::Processor::multiThread(), postProcess(), preProcess(), OFX::RenderArguments::renderWindow, OfxRectI::x1, OfxRectI::x2, OfxRectI::y1, and OfxRectI::y2.

Referenced by setupAndProcess().

Here is the call graph for this function:

void tuttle::plugin::ImageProcessor::setNbThreads ( const unsigned int  nbThreads) [inline]

Definition at line 65 of file ImageProcessor.hpp.

References _nbThreads.

void tuttle::plugin::ImageProcessor::setNbThreadsAuto ( ) [inline]

Definition at line 66 of file ImageProcessor.hpp.

References _nbThreads.

void tuttle::plugin::ImageProcessor::setNoMultiThreading ( ) [inline]

Definition at line 64 of file ImageProcessor.hpp.

References _nbThreads.

Referenced by tuttle::plugin::av::reader::AVReaderProcess< View >::AVReaderProcess(), tuttle::plugin::av::writer::AVWriterProcess< View >::AVWriterProcess(), tuttle::plugin::quality::DiffProcess< View >::DiffProcess(), tuttle::plugin::dpx::reader::DPXReaderProcess< View >::DPXReaderProcess(), tuttle::plugin::dpx::writer::DPXWriterProcess< View >::DPXWriterProcess(), tuttle::plugin::exr::reader::EXRReaderProcess< View >::EXRReaderProcess(), tuttle::plugin::exr::writer::EXRWriterProcess< View >::EXRWriterProcess(), tuttle::plugin::floodFill::FloodFillProcess< View >::FloodFillProcess(), tuttle::plugin::imagemagick::reader::ImageMagickReaderProcess< View >::ImageMagickReaderProcess(), tuttle::plugin::imagemagick::writer::ImageMagickWriterProcess< View >::ImageMagickWriterProcess(), tuttle::plugin::imageStatistics::ImageStatisticsProcess< View >::ImageStatisticsProcess(), tuttle::plugin::jpeg2000::reader::Jpeg2000ReaderProcess< View >::Jpeg2000ReaderProcess(), tuttle::plugin::jpeg2000::writer::Jpeg2000WriterProcess< View >::Jpeg2000WriterProcess(), tuttle::plugin::jpeg::reader::JpegReaderProcess< View >::JpegReaderProcess(), tuttle::plugin::jpeg::writer::JpegWriterProcess< View >::JpegWriterProcess(), tuttle::plugin::openImageIO::reader::OpenImageIOReaderProcess< View >::OpenImageIOReaderProcess(), tuttle::plugin::openImageIO::writer::OpenImageIOWriterProcess< View >::OpenImageIOWriterProcess(), tuttle::plugin::png::reader::PngReaderProcess< View >::PngReaderProcess(), tuttle::plugin::png::writer::PngWriterProcess< View >::PngWriterProcess(), tuttle::plugin::print::PrintProcess< View >::PrintProcess(), tuttle::plugin::raw::reader::RawReaderProcess< View >::RawReaderProcess(), tuttle::plugin::resize::ResizeProcess< View >::ResizeProcess(), tuttle::plugin::seExpr::SeExprProcess< View >::SeExprProcess(), tuttle::plugin::swscale::SwscaleProcess::SwscaleProcess(), tuttle::plugin::text::TextProcess< View, Functor >::TextProcess(), tuttle::plugin::turboJpeg::reader::TurboJpegReaderProcess< View >::TurboJpegReaderProcess(), tuttle::plugin::turboJpeg::writer::TurboJpegWriterProcess< View >::TurboJpegWriterProcess(), and tuttle::plugin::viewer::ViewerProcess< View >::ViewerProcess().

virtual void tuttle::plugin::ImageProcessor::setup ( const OFX::RenderArguments args) [inline, virtual]

Reimplemented in tuttle::plugin::colorCubeViewer::ColorCubeViewerProcess< View >, tuttle::plugin::colorSpaceKeyer::ColorSpaceKeyerProcess< View >, tuttle::plugin::histogram::HistogramProcess< View >, tuttle::plugin::histogramKeyer::HistogramKeyerProcess< View >, tuttle::plugin::nlmDenoiser::NLMDenoiserProcess< View >, tuttle::plugin::text::TextProcess< View, Functor >, tuttle::plugin::colorTransfer::ColorTransferProcess< View >, tuttle::plugin::ramp::RampProcess< View >, tuttle::plugin::normalize::NormalizeProcess< View >, tuttle::plugin::anisotropicFilter::diffusion::AnisotropicDiffusionProcess< View >, tuttle::plugin::colorWheel::ColorWheelProcess< View >, tuttle::plugin::exr::reader::EXRReaderProcess< View >, tuttle::plugin::anisotropicFilter::tensors::AnisotropicTensorsProcess< View >, tuttle::plugin::checkerboard::CheckerboardProcess< View >, tuttle::plugin::constant::ConstantProcess< View >, tuttle::plugin::warp::WarpProcess< View >, tuttle::plugin::ocio::colorspace::OCIOColorSpaceProcess< View >, tuttle::plugin::colorCube::ColorCubeProcess< View >, tuttle::plugin::ocio::lut::OCIOLutProcess< View >, tuttle::plugin::lens::LensDistortProcess< View >, tuttle::plugin::colorBars::ColorBarsProcess< View >, tuttle::plugin::colorGradient::ColorGradientProcess< View, ColorGradientFunctor >, tuttle::plugin::pushPixel::PushPixelProcess< View >, tuttle::plugin::colorSuppress::ColorSuppressProcess< View >, tuttle::plugin::merge::MergeProcess< View, Functor >, tuttle::plugin::jpeg2000::reader::Jpeg2000ReaderProcess< View >, tuttle::plugin::jpeg2000::writer::Jpeg2000WriterProcess< View >, tuttle::plugin::basicKeyer::BasicKeyerProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::print::PrintProcess< View >, tuttle::plugin::exr::writer::EXRWriterProcess< View >, tuttle::plugin::png::reader::PngReaderProcess< View >, tuttle::plugin::fade::FadeProcess< View >, tuttle::plugin::quality::DiffProcess< View >, tuttle::plugin::localmaxima::LocalMaximaProcess< SView, DView >, tuttle::plugin::png::writer::PngWriterProcess< View >, tuttle::plugin::floodFill::FloodFillProcess< View >, tuttle::plugin::imageStatistics::ImageStatisticsProcess< View >, tuttle::plugin::ImageFilterProcessor, tuttle::plugin::seExpr::SeExprProcess< View >, tuttle::plugin::colorTransform::ColorTransformProcess< View >, tuttle::plugin::ctl::CTLProcess< View >, tuttle::plugin::idKeyer::IdKeyerProcess< View >, tuttle::plugin::blur::BlurProcess< View >, tuttle::plugin::convolution::ConvolutionProcess< View >, tuttle::plugin::sobel::SobelProcess< SView, DView >, tuttle::plugin::ImageGilProcessor< View >, tuttle::plugin::ImageGilProcessor< DView >, tuttle::plugin::bitDepth::BitDepthProcess< SView, DView >, tuttle::plugin::av::reader::AVReaderProcess< View >, tuttle::plugin::jpeg::writer::JpegWriterProcess< View >, tuttle::plugin::turboJpeg::writer::TurboJpegWriterProcess< View >, tuttle::plugin::component::ComponentProcess< SView, DView >, tuttle::plugin::thinning::ThinningProcess< View >, tuttle::plugin::crop::CropProcess< View >, tuttle::plugin::flip::FlipProcess< View >, tuttle::plugin::pinning::PinningProcess< View >, tuttle::plugin::resize::ResizeProcess< View >, tuttle::plugin::debugImageEffectApi::DebugImageEffectApiProcess< View >, tuttle::plugin::viewer::ViewerProcess< View >, tuttle::plugin::dummy::DummyProcess< View >, tuttle::plugin::dpx::writer::DPXWriterProcess< View >, tuttle::plugin::jpeg::reader::JpegReaderProcess< View >, tuttle::plugin::colorGradation::ColorGradationProcess< View >, tuttle::plugin::colorspace::ColorSpaceProcess< View >, tuttle::plugin::move2D::Move2DProcess< View >, tuttle::plugin::mathOperator::MathOperatorProcess< View >, tuttle::plugin::dpx::reader::DPXReaderProcess< View >, tuttle::plugin::imagemagick::reader::ImageMagickReaderProcess< View >, tuttle::plugin::ImageGilFilterProcessor< SView, DView >, tuttle::plugin::ImageGilFilterProcessor< View >, tuttle::plugin::swscale::SwscaleProcess, tuttle::plugin::turboJpeg::reader::TurboJpegReaderProcess< View >, and tuttle::plugin::raw::reader::RawReaderProcess< View >.

Definition at line 74 of file ImageProcessor.hpp.

References _clipDst, _dst, _dstPixelRod, _dstPixelRodSize, OFX::Clip::fetchImage(), OFX::getImageEffectHostDescription(), OFX::Clip::getPixelRod(), OFX::Clip::name(), tuttle::quotes(), OFX::RenderArguments::renderScale, OFX::RenderArguments::time, OfxPointI::x, OfxRectI::x1, OfxRectI::x2, OfxPointI::y, OfxRectI::y1, and OfxRectI::y2.

Referenced by setupAndProcess().

Here is the call graph for this function:

OfxRectI tuttle::plugin::ImageProcessor::translateRoWToOutputClipCoordinates ( const OfxRectI windowRoW) const [inline]

Field Documentation

Destination image clip.

Definition at line 35 of file ImageProcessor.hpp.

Referenced by ImageProcessor(), and setup().

Definition at line 38 of file ImageProcessor.hpp.

Referenced by setup().

effect to render with

Reimplemented from tuttle::plugin::OfxProgress.

Definition at line 33 of file ImageProcessor.hpp.

Referenced by setupAndProcess().


The documentation for this class was generated from the following file: