TuttleOFX
1
|
Base class that can be used to process images of any type. More...
#include <ImageProcessor.hpp>
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 |
Base class that can be used to process images of any type.
Definition at line 29 of file ImageProcessor.hpp.
tuttle::plugin::ImageProcessor::ImageProcessor | ( | OFX::ImageEffect & | effect, |
const EImageOrientation | imageOrientation | ||
) | [inline] |
ctor
Definition at line 47 of file ImageProcessor.hpp.
References _clipDst, _renderArgs, OFX::eFieldNone, OFX::ImageEffect::fetchClip(), OFX::RenderArguments::fieldToRender, kOfxImageEffectOutputClipName, OFX::RenderArguments::renderScale, OFX::RenderArguments::renderWindow, OFX::RenderArguments::time, OfxPointD::x, OfxRectI::x1, OfxRectI::x2, OfxPointD::y, OfxRectI::y1, and OfxRectI::y2.
virtual tuttle::plugin::ImageProcessor::~ImageProcessor | ( | ) | [inline, virtual] |
Definition at line 61 of file ImageProcessor.hpp.
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.
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().
virtual void tuttle::plugin::ImageProcessor::preProcess | ( | ) | [inline, virtual] |
called before any MP is done
Reimplemented in tuttle::plugin::nlmDenoiser::NLMDenoiserProcess< View >, tuttle::plugin::invert::InvertProcess< View >, tuttle::plugin::pushPixel::PushPixelProcess< View >, tuttle::plugin::sobel::SobelProcess< SView, DView >, and tuttle::plugin::raw::reader::RawReaderProcess< View >.
Definition at line 69 of file ImageProcessor.hpp.
References _renderWindowSize, tuttle::plugin::OfxProgress::progressBegin(), OfxPointI::x, and OfxPointI::y.
Referenced by process().
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().
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().
virtual void tuttle::plugin::ImageProcessor::setupAndProcess | ( | const OFX::RenderArguments & | args | ) | [inline, virtual] |
fetch output and inputs clips
Definition at line 103 of file ImageProcessor.hpp.
References _effect, _renderArgs, _renderWindowSize, OFX::ImageEffect::abort(), process(), tuttle::plugin::OfxProgress::progressEnd(), OFX::RenderArguments::renderWindow, setup(), OfxPointI::x, OfxRectI::x1, OfxRectI::x2, OfxPointI::y, OfxRectI::y1, and OfxRectI::y2.
Referenced by tuttle::plugin::jpeg2000::reader::Jpeg2000ReaderPlugin::render(), tuttle::plugin::nlmDenoiser::NLMDenoiserPlugin::render(), tuttle::plugin::swscale::SwscalePlugin::render(), tuttle::plugin::pushPixel::PushPixelPlugin::render(), tuttle::plugin::pinning::PinningPlugin::render(), tuttle::plugin::warp::WarpPlugin::render(), tuttle::plugin::text::TextPlugin::render_if(), tuttle::plugin::merge::MergePlugin::render_if(), tuttle::plugin::colorGradient::ColorGradientPlugin::renderFunctor(), and tuttle::plugin::bitDepth::BitDepthPlugin::setupDestView().
OfxRectI tuttle::plugin::ImageProcessor::translateRoWToOutputClipCoordinates | ( | const OfxRectI & | windowRoW | ) | const [inline] |
Definition at line 160 of file ImageProcessor.hpp.
References _dstPixelRod, and tuttle::translateRegion().
Referenced by tuttle::plugin::sobel::SobelProcess< SView, DView >::multiThreadProcessImages(), and tuttle::plugin::ImageGilProcessor< DView >::setup().
OFX::Clip* tuttle::plugin::ImageProcessor::_clipDst [protected] |
Destination image clip.
Definition at line 35 of file ImageProcessor.hpp.
Referenced by ImageProcessor(), and setup().
boost::scoped_ptr<OFX::Image> tuttle::plugin::ImageProcessor::_dst [protected] |
Definition at line 36 of file ImageProcessor.hpp.
Referenced by tuttle::plugin::swscale::SwscaleProcess::multiThreadProcessImages(), tuttle::plugin::ImageGilProcessor< DView >::setup(), and setup().
OfxRectI tuttle::plugin::ImageProcessor::_dstPixelRod [protected] |
Definition at line 37 of file ImageProcessor.hpp.
Referenced by tuttle::plugin::ImageGilProcessor< DView >::setup(), setup(), and translateRoWToOutputClipCoordinates().
Definition at line 38 of file ImageProcessor.hpp.
Referenced by setup().
OFX::ImageEffect& tuttle::plugin::ImageProcessor::_effect [protected] |
effect to render with
Reimplemented from tuttle::plugin::OfxProgress.
Definition at line 33 of file ImageProcessor.hpp.
Referenced by setupAndProcess().
Definition at line 40 of file ImageProcessor.hpp.
Referenced by tuttle::plugin::ImageGilProcessor< DView >::getCustomView(), and tuttle::plugin::ImageGilProcessor< DView >::getView().
unsigned int tuttle::plugin::ImageProcessor::_nbThreads [private] |
Definition at line 43 of file ImageProcessor.hpp.
Referenced by process(), setNbThreads(), setNbThreadsAuto(), and setNoMultiThreading().
render arguments
Definition at line 34 of file ImageProcessor.hpp.
Referenced by ImageProcessor(), multiThreadFunction(), tuttle::plugin::pushPixel::PushPixelProcess< View >::preProcess(), process(), and setupAndProcess().
Definition at line 39 of file ImageProcessor.hpp.
Referenced by tuttle::plugin::sobel::SobelProcess< SView, DView >::preProcess(), preProcess(), and setupAndProcess().