TuttleOFX  1
TurboJpegReaderPlugin.hpp
Go to the documentation of this file.
00001 #ifndef _TUTTLE_PLUGIN_TURBOJPEG_READER_PLUGIN_HPP_
00002 #define _TUTTLE_PLUGIN_TURBOJPEG_READER_PLUGIN_HPP_
00003 
00004 #include "TurboJpegReaderDefinitions.hpp"
00005 
00006 #include <tuttle/plugin/context/ReaderPlugin.hpp>
00007 
00008 namespace tuttle {
00009 namespace plugin {
00010 namespace turboJpeg {
00011 namespace reader {
00012 
00013 struct TurboJpegReaderProcessParams
00014 {
00015         std::string            filepath;
00016         ETurboJpegOptimization optimization;
00017         bool                   fastUpsampling;
00018 };
00019 
00020 /**
00021  * @brief TurboJpeg plugin
00022  */
00023 class TurboJpegReaderPlugin : public ReaderPlugin
00024 {
00025 public:
00026     TurboJpegReaderPlugin( OfxImageEffectHandle handle );
00027 
00028 public:
00029         TurboJpegReaderProcessParams getProcessParams( const OfxTime time ) const;
00030 
00031         void changedParam( const OFX::InstanceChangedArgs &args, const std::string &paramName );
00032         bool getRegionOfDefinition( const OFX::RegionOfDefinitionArguments& args, OfxRectD& rod );
00033         void getClipPreferences( OFX::ClipPreferencesSetter& clipPreferences );
00034 
00035         void render( const OFX::RenderArguments &args );
00036 
00037 public:
00038         OFX::ChoiceParam*    _optimization;   ///< TurboJpeg SIMD optimization
00039         OFX::BooleanParam*   _fastUpsampling; ///< TurboJpeg fast upsampling for U,V channels
00040         
00041 };
00042 
00043 }
00044 }
00045 }
00046 }
00047 
00048 #endif